Turbo Pascal-да программалау
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Есептің қойылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
2. Қолданылған әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4
2.1 Қосалқы программалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.2 Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.3 Жолдық айнымалылар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.4 Сұрыптау алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.4.1 Таңдау арқылы сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.4.2 Айырбаспен сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2.5 Іздеу алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
2.5.1 Сызықты іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
2.5.2 Тосқауылы бар іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
3. Есептің алгоритмі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .14
4. Бағдарламаның баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .17
4.1. Жалпы мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..17
4.2.Қолданылған техникалық жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ..
4.3.Шақыру және жіктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
4.4.Функциялдық тағайындалуы (қолдануы) ... ... ... ... ... ... ... ... ... ... ...17
4.5. Логикалық құрылымның баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ...17
4.6. Блок схема ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .19
Қортынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .21
Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...22
1. Есептің қойылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
2. Қолданылған әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4
2.1 Қосалқы программалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.2 Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.3 Жолдық айнымалылар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.4 Сұрыптау алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.4.1 Таңдау арқылы сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.4.2 Айырбаспен сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2.5 Іздеу алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
2.5.1 Сызықты іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..10
2.5.2 Тосқауылы бар іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
3. Есептің алгоритмі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .14
4. Бағдарламаның баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .17
4.1. Жалпы мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..17
4.2.Қолданылған техникалық жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ..
4.3.Шақыру және жіктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
4.4.Функциялдық тағайындалуы (қолдануы) ... ... ... ... ... ... ... ... ... ... ...17
4.5. Логикалық құрылымның баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ...17
4.6. Блок схема ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .19
Қортынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .21
Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...22
Паскаль тілі ХХ ғасырдың 60-шы жылдарының аяғы мен 70-ші жылдарының басында Швейцарлық жоғарғы политехникалық мектептің Информатика Институның директоры, профессор Никлаус Вирт тарапынан студенттерді программалау тілі бастамаларына үйрету үшін ойлап табылды. Автор тілді алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдың құрметіне Паскаль деп атап, тіл атауын үнемі бас әріппен жазылуын сұраған.
Ал Паскаль тілінің трансляторының бірінші нұсқасы 1970 жылы Н.Вирттың шәкірттерімен PDP-11 машинасы үшін жасалды. Кейіннен тілдің көптеген нұсқалары жарық көрді.
Соның ішінде, 1983 жылы американдық Borland корпорациясының талантты қызметкері, Н.Вирттың шәкірті Андерсон Хейлсбергтің жасаған жаңа үлгісі – Turbo Pascal программалаушылар арасында үлкен сұранысқа ие болды. Оның бұл нұсқасы CP/M операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS жүйесіне ауыстырылғалы бері пайдалану қарқыны артты.
Turbo Pascal –дың жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Қазіргі таңда миллиондаған програмистер Паскаль тілін күрделі және үлкен проектілер үшін пайдаланғанмен, ол түп негізінде оқушыларды жаңа заманғы программалауды қыр-сырына үйрету үшін ойлап табылған болатын. Және де қазіргі таңда бұл тіл программалауда алғашқы қадамын жасаушыларға ең ыңғайлы тіл болып табылады.
Turbo Pascal тілінде біз массивтермен, файлдармен, процедуралармен және басқа да операциялармен жұмыс істей аламыз.
Ал Паскаль тілінің трансляторының бірінші нұсқасы 1970 жылы Н.Вирттың шәкірттерімен PDP-11 машинасы үшін жасалды. Кейіннен тілдің көптеген нұсқалары жарық көрді.
Соның ішінде, 1983 жылы американдық Borland корпорациясының талантты қызметкері, Н.Вирттың шәкірті Андерсон Хейлсбергтің жасаған жаңа үлгісі – Turbo Pascal программалаушылар арасында үлкен сұранысқа ие болды. Оның бұл нұсқасы CP/M операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS жүйесіне ауыстырылғалы бері пайдалану қарқыны артты.
Turbo Pascal –дың жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Қазіргі таңда миллиондаған програмистер Паскаль тілін күрделі және үлкен проектілер үшін пайдаланғанмен, ол түп негізінде оқушыларды жаңа заманғы программалауды қыр-сырына үйрету үшін ойлап табылған болатын. Және де қазіргі таңда бұл тіл программалауда алғашқы қадамын жасаушыларға ең ыңғайлы тіл болып табылады.
Turbo Pascal тілінде біз массивтермен, файлдармен, процедуралармен және басқа да операциялармен жұмыс істей аламыз.
1. Фаронов В.В. Turbo Pascal 7.0. Начальный курс: Учебное пособие.-
Москва.:Нолидж, 1998
2. Культин Н.Б. Turbo Pascal в задачах и решениях.-
СПб.:БХВ-Петербург, 2003
3. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках Паскаль и Си. Методические указания к лабораторным работам по курсу “Языки и технология программирования”.- Алматы: КазНТУ, 2000
4. Шелест В. Программирование. – Санкт-Петербург, BHV, 2001.
5. Бондарев В.М., Гублинский В.И., Качко Е.Г. Основа Программирования – Ростов Н/Д: Феникс, 1997.
6. Н.Ы. Омарова, К.У. Тұрмағамбетова, К.Н. Нүриденова. Паскаль тiлiнде программалау негiздерi. Алматы, “Бiлiм”, 1996.
7. Шаметов Ералы Бақтайұлы. Паскаль тiлiн үйренейiк. Шымкент, 1993.
Москва.:Нолидж, 1998
2. Культин Н.Б. Turbo Pascal в задачах и решениях.-
СПб.:БХВ-Петербург, 2003
3. Муртазина А.У., Тусупова Б.Б. Основы программирования на языках Паскаль и Си. Методические указания к лабораторным работам по курсу “Языки и технология программирования”.- Алматы: КазНТУ, 2000
4. Шелест В. Программирование. – Санкт-Петербург, BHV, 2001.
5. Бондарев В.М., Гублинский В.И., Качко Е.Г. Основа Программирования – Ростов Н/Д: Феникс, 1997.
6. Н.Ы. Омарова, К.У. Тұрмағамбетова, К.Н. Нүриденова. Паскаль тiлiнде программалау негiздерi. Алматы, “Бiлiм”, 1996.
7. Шаметов Ералы Бақтайұлы. Паскаль тiлiн үйренейiк. Шымкент, 1993.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 19 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 19 бет
Таңдаулыға:
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ
БIЛIМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛIГI
Қ. И. Сәтбаев атындағы
ҚАЗАҚ ҰЛТТЫҚ ТЕХНИКАЛЫҚ УНИВЕРСИТЕТI
Ақпараттық Технoлогиялар Институты
Техникалық кибернетика кафедрасы
1
2 КУРСТЫҚ ЖОБАҒА ТҮСIНIК
Орындаған:Байырша Әсет
Тексерген: Муртазина Ә.Ө.
1
3 Алматы 2005
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Есептің
қойылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ..4
2. Қолданылған
әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... 4
2.1 Қосалқы
программалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... .
2.2
Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ..
2.3 Жолдық
айнымалылар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... .
2.4 Сұрыптау
алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... .4
2.4.1 Таңдау арқылы
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
2.4.2 Айырбаспен
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
. 2.5 Іздеу
алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... 10
2.5.1 Сызықты
іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... .10
2.5.2 Тосқауылы бар
іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .1
1
3. Есептің
алгоритмі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 14
4. Бағдарламаның
баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... 17
4.1. Жалпы
мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ...17
4.2.Қолданылған техникалық
жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ...
4.3.Шақыру және
жіктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ..
4.4.Функциялдық тағайындалуы
(қолдануы) ... ... ... ... ... ... ... ... ... ... ... 17
4.5. Логикалық құрылымның
баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... 17
4.6. Блок схема
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ..
... ... ... ... ...19
Қортынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... ..2 0
Қолданылған
әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ...21
Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... .22
Кіріспе
Паскаль тілі ХХ ғасырдың 60-шы жылдарының аяғы мен 70-ші жылдарының
басында Швейцарлық жоғарғы политехникалық мектептің Информатика Институның
директоры, профессор Никлаус Вирт тарапынан студенттерді программалау тілі
бастамаларына үйрету үшін ойлап табылды. Автор тілді алғашқы арифметикалық
есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдың құрметіне
Паскаль деп атап, тіл атауын үнемі бас әріппен жазылуын сұраған.
Ал Паскаль тілінің трансляторының бірінші нұсқасы 1970 жылы Н.Вирттың
шәкірттерімен PDP-11 машинасы үшін жасалды. Кейіннен тілдің көптеген
нұсқалары жарық көрді.
Соның ішінде, 1983 жылы американдық Borland корпорациясының талантты
қызметкері, Н.Вирттың шәкірті Андерсон Хейлсбергтің жасаған жаңа үлгісі –
Turbo Pascal программалаушылар арасында үлкен сұранысқа ие болды. Оның бұл
нұсқасы CPM операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS
жүйесіне ауыстырылғалы бері пайдалану қарқыны артты.
Turbo Pascal –дың жоғарғы деңгейлі логикалық құрылымы әр түрлі
есептерді дәл шешуге көмегін тигізеді. Turbo Pascal жүйесінде қарапайым
есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың
сан қырлы жұмыстары жүргізіледі.
Қазіргі таңда миллиондаған програмистер Паскаль тілін күрделі және
үлкен проектілер үшін пайдаланғанмен, ол түп негізінде оқушыларды жаңа
заманғы программалауды қыр-сырына үйрету үшін ойлап табылған болатын. Және
де қазіргі таңда бұл тіл программалауда алғашқы қадамын жасаушыларға ең
ыңғайлы тіл болып табылады.
Turbo Pascal тілінде біз массивтермен, файлдармен, процедуралармен және
басқа да операциялармен жұмыс істей аламыз.
1. Есептің қойылымы
2.Қолданылған әдістер
2.1. Қосалқы программалар
Программада белгілі бір қайталанатын іс-әрекеттердің атау бойынша бөлек
жазып, атауы арқылы бір немесе бірнеше рет іске қосуға болатын программаның
бөлігін қосалқы программа деп атайды.
Турбо Паскаль тілінде қосалқы программаның екі түрі қолданылады:
• Процедура
• Функция
Әрбір қосалқы программаның атауы болады және олар айнымалыларды
сипаттау бөлімінде құрылып, операторлық жақшаларда орналасқан командалар
жиынынан тұруы мүмкін.
Қосалқы программаларды біз көбіне үлкен көлемді программаларды жазған
кезде қолданамыз. Себебі, өте үлкен көлемді программаларды жазған кезде
оларды міндетті түрде бірнеше рет орындалатын әрекеттер болады да, осындай
жағдайда программаны бөліктерге бөлмеу орындалатын бірдей әрекеттерді
бірнеше рет қайта жазу қиынға соқтырады. Программалау тілдерінің бәрінде
дерлік структуралы мүмкіндіктері бар. Осындай механизмдер бар тілдерді
процедуралы-бағытталған деп атайды Олардың қатарына Турбо Паскаль тіліде
жатады.
2.3.1. Процедура
Турбо Паскаль программалау тілінде процедураның жалпы құрылымы:
Procedure proc-name (а1,b1, . . .:type1; a2,b2, . . .:type2);
Begin
Процедураның негізгі бөлігі
End;
Мұндағы: proc_name – процедура атауы. Атау әріптен басталып, бос орын
қалдырылмай жазылады.
a1,b1,a2,b2 – негізгі программамен байланысқа қолданылатын айнымалылар
тізегі.
type1,type2 – айнымалылар типі.
Begin – процедура басы.
end; - процедура соңы.
2.3.2.Функция
Турбо Паскаль программалау тілінде функцияның жалпы құрылымы:
Function func_name (a1,a2,. . .:type1):type2;
Begin
Функцияның негізгі бөлігі
End;
Мұндағы: func_name – Атау әріптен басталатын, бос орын қалдырылмай
жазылатын функция атауы;
a1,a2 – Негізгі программамен байланысқа қолданылатын айнымалылар;
type1 – айнымалылар типі;
type2 – функцияның типі;
Begin – функцияның басы;
End; - функцияның соңы.
2.2.Файлдар
Файлды қолдануға дайындау және жабу
Бұл топтағы амалдарға: Assign, Reset, Rewrite, Close
процедуралары
жатады.
Assign (JF, Tanba) – процедурасы, файл типті JF айнымалысын
сыртқы жады құрылғысындағы, нақтылы Tanba файлымен тікелей
байланыстырады. Процедураның екінші параметрі - Tanba, тіркесті
өрнек – файлдың толық атауы: MS-DOS амалданушылық жүйесіне сәйкес
белгіленуі тиісті, мысалы:
Assign(f1, ‘C:\Stud\Data.doc’);
Assign - процедурасы, программа денесінде, f1 файлына
қолданылатын басқа амалдардың (Reset, Rewrite, Read, Write т.б.),
файл типті f1 айнымалысының атауы арқылы сыртқы жады құрылғысындағы
нақтылы - Data.doc файлымен тікелей жұмыс істеуіне мүмкіндік
береді.
Reset(JF) және Rewrite(JF); - процедуралары JF атаулы файлды,
қолдануға дайындайды (файл типті JF айнымалысы, Assign – процедурасы
арқылы анықталған деп есептеледі). Бұл процедуралар орындалғаннан
кейін, сыртқы жады құрылғылардағы нақтылы файл қолдануға
дайындалады. Файлдың кезекті көрсеткіші, JF файлының ең бірінші
(нөлінші) элементіне орналастырылады.
Reset(JF) - процедурасы, JF атаулы файлды, деректерді тек
енгізуге, дайындап ашады. Егер де, JF – файлы, сыртқы жады
құрылғысында әлі құрылмаған болса, онда Reset – процедурасы JF
файлын аша алмайды, ал программаның орындалуы тоқтатылады.
Rewrite (JF) – процедурасы, JF атаулы файлға, деректерді тек
жазып – сақтауға, дайындап ашады. Егер де, JF файлы, сыртқы жады
құрылғысында әлі құрылмаған болса, онда Rewrite - процедурасы, JF
файлын таба алмаса да, жаңадан ашып дайындайды. Ал, JF файлы
бұрыннан бар болса, ескі деректер толық жойылып, файл жаңартылады.
Close (JF) – процедурасы, файл типті JF айнымалысымен жұмыс
істуді доғарады, сыртқы жады құрылғысындағы нақты файлдың деректері,
дұрыс сақталуы үшін, файл жабылады.
Мәліметтер жазылатын файл программа алгоритмінде Assign командасын
жазу арқылы ашылады. Мысалы программада деректер Result.txt файлына
жазылуы тиіс болса ол үшін мынадай команда жазуымыз керек:
Assign (dd, ‘Result.txt’);
Rewrite(dd);
Команда нәтижесінде мәліметтер жалған аты dd болатын Result.txt
файлында сақталады. Бұл файл осы команданы жазу нәтижесінде, компьютер
жадында дәл осындай атты басқа файл болмаған жағдайда пайда болады, ал егер
программа жазылардан алдын Result.txt файлы болған болса, бұл файлдың
ішіндегі мәліметтер өшіріледі де, олардың орнына программадан енгізілген
мәліметтер жазылады.
2.3. Жолдық айнымалылар
Курстық жұмыста файлдармен жұмыстармен жұмыс істегендіктен,
оларға мәліметтер жазу үшін “жолдық” – String типі қолданылды. Паскаль
тілінде ұзындығы алдын-ала анықтау қиын жолдарға String типі көп
қолданылады. Ол көбінесе бір өлшемді array [0..n] of CHAR массивіне ұқсас,
бірақ та символдар жолының артықшылығы жолдағы символдар саны 0-ден n
айнымалысына дейін өзгереді, мұнда n – жолдағы символдардың максималды
саны. n мәні String[n] типінің анықталуымен баяндалады және 255-тен
аспайтын кез-келген реттік тұрақты сан бола алады. Егер сипатталуда n
көрсетілмесе, мұндай жағдайда жол ұзындығы ең мүмкіндікті алады, яғни
n=255 жолдың кез-келген символына кіру бір өлшемді массив элементтері
сияқты жүзеге асырылады.
2.4 Сұрыптау алгоритмдерi
Бұл айтылған пікірлердің барлығы программалаудың ең бір қажетті
мүмкіндіктері сұрыптау мен іздеуге арналған. Сұрыптау мен іздеуді кез-
келген программада қолдануға болады.Олардың мүмкіндіктері шексіз. Осы
мүмкіндіктерді пайдалана отырып, программа алгоритімін қарапайым жолмен
жеңілдетуге болады. Негізінен сұрыптау мен іздеудің түрлері өте көп.
Кез-келген күнделікті жағдайда біз сұрыптау және іздеу
үрдістерімен жұмыс жасаймыз. Әр адамда неліктен деген сұрақ туады. Жауап
өте қарапайым. Себебі бұл үрдістермен жұмыс жасау өте ыңғайлы. Тіпті
өзіміздің күнделікті қолданып жүрген персоналды компьютерімізде сол
принциппен жұмыс істейді. Олар сіз енгізген мәліметтерді сұрыптап қояды
да, сіз соларды іздегенде лезде тауып бере қояды. Сұрыптау мен іздеу
тәсілдерін қарапайым студент те, кәсіпқой программистте қолдана алады.
Жалпы алғанда кез-келген программа сұрыптаудан басталады. Ал тез сұрыптап
қажет элементті табу үшін сұрыптау және іздеу тәсілдерін жетік білген жөн.
Сондықтан сұрыптау мен іздеу тәсілдерін қарастырып көрейік.
Сұрыптаудың ең қарапайым есебi массив элементтерiнiң өсу не кему
ретiмен орналастыру болып табылады. Басқа есеп болып, берiлген белгiлер
бойынша массив элементтерiн реттеу. Әдетте мұндай белгi ретiнде аргументi
массив элементтерi болып табылатын белгiлi функция мәнi болып табылады. Бұл
функцияны реттеушi функция деп атау қабылданған.
Сұрыптаудың әр түрлi тәсiлдерi бар. Әрбiр тәсiлдi N бүтiн сандардан
өспелi массивтi сұрыпттау мысалында көрсетемiз.
1 2.4.1 Таңдау арқылы сұрыптау
Тізбектегі массивті қарастырып, осы массивтiң максималды элементiн
тауып, оны соңғы элемент (N номерлi) орнымен ауыстырылады. Содан кейiн
максималды элемент N-1 орынға дейiн iзделiп, сол N-1 орынға қойылады және
т.с.с. Максимум емес, минимум элемент iзделiп, оны бiрiншi, екiншi және
т.с.с. орынға қоюға болады. Сонымен қатар бұл әдiстiң модификацияланған
түрi – бiр мезетте максимум және минимум элементтердi iздеу қолданылады.
Бұл жағдайда сыртқы цикл
дың қадамдар саны N div 2.
Мысалы: a массивiнiң N бүтiн сандарының өсуi бойынша таңдау арқылы
сұрыптау.
Program Sort_Tandau1;
Var a:array[1..20] of integer;
N,i,m,k,x : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=n downto 2 do { k – max-ты iздеуге қажеттi элементтер саны }
begin
m:=1; { m - max орны}
For i:=2 to k do
if A[i]A[m] then m:=i;
{ m және k номерлi элементтердi орындарымен ауыстырамыз}
x:=a[m]; a[m]:=a[k]; a[k]:=x;
end;
for i:=1 to n do
write(a[i],' '); {реттелген массив}
end.
Мысалы: Жоғарыдағы есеп, бiрақ бiр мезеттегi max пен min таңдау
арқылы.
Program Sort_Tandau2;
Var a :array[1..10] of integer;
N,i,m,k,x,p : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=1 to n div 2 do { k - max және min жұбының орны }
Begin
m:=k; { m - max орны }
p:=k; { p – min орны }
{max және min k-дан n-k+1 элементтер арасында iзделедi }
For i:=k+1 to n-k+1 do
if a[i]a[m] then m:=i
else if a[i]a[p] then p:=i;
{ p және k номерлi элементтердi орындарымен ауыстырамыз }
x:=a[p]; a[p]:=a[k]; a[k]:=x;
if m=k then m:=p;
{егер max k орында тұрса, ендi ол p орында тұр }
{ m және n-k+1 номерлi элементтердi орындарымен ауыстырамыз }
x:=a[m]; a[m]:=a[n-k+1]; a[n-k+1]:=x;
end;
for i:=1 to n do write(a[i],' '); {реттелген массив}
end.
2 2.4.2 Айырбастау арқылы сұрыптау
Бұл әдіс а массивтiң көршiлес жұптары тексерiлуiнде құрылған. Егер
олар керектi реттiлiкте болмаса, онда көршiлес элементтер жұбын
орындарымен ауыстырамыз. Мұндай бiр өтуден кейiн N номерi орынында максимал
элемент орналасады (бiрiншi көпiршік “қалқып” шықты). Келесi өту N-1
элементке дейiн қарастыру керек және т.с.с. Барлығы N-1 өту қажет болады.
Мысалы: a массивiнiң N бүтiн сандарының өсуi бойынша айырбастау арқылы
сұрыптау. (Негiзгi вариант)
Program Sort_Auis1;
Var a:array[1..20] of integer;
N,i,k,x : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=n-1 downto 1 do { k – салыстырылатын жұптар саны }
For i:=1 to k do
If a[i]a[i+1] then
{көршiлес элементтердi орындарымен ... жалғасы
БIЛIМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛIГI
Қ. И. Сәтбаев атындағы
ҚАЗАҚ ҰЛТТЫҚ ТЕХНИКАЛЫҚ УНИВЕРСИТЕТI
Ақпараттық Технoлогиялар Институты
Техникалық кибернетика кафедрасы
1
2 КУРСТЫҚ ЖОБАҒА ТҮСIНIК
Орындаған:Байырша Әсет
Тексерген: Муртазина Ә.Ө.
1
3 Алматы 2005
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Есептің
қойылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ..4
2. Қолданылған
әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... 4
2.1 Қосалқы
программалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... .
2.2
Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ..
2.3 Жолдық
айнымалылар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... .
2.4 Сұрыптау
алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... .4
2.4.1 Таңдау арқылы
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
2.4.2 Айырбаспен
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
. 2.5 Іздеу
алгоритмдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... 10
2.5.1 Сызықты
іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... .10
2.5.2 Тосқауылы бар
іздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .1
1
3. Есептің
алгоритмі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 14
4. Бағдарламаның
баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... 17
4.1. Жалпы
мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ...17
4.2.Қолданылған техникалық
жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ...
4.3.Шақыру және
жіктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ..
4.4.Функциялдық тағайындалуы
(қолдануы) ... ... ... ... ... ... ... ... ... ... ... 17
4.5. Логикалық құрылымның
баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... 17
4.6. Блок схема
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ..
... ... ... ... ...19
Қортынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... ..2 0
Қолданылған
әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ...21
Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... .22
Кіріспе
Паскаль тілі ХХ ғасырдың 60-шы жылдарының аяғы мен 70-ші жылдарының
басында Швейцарлық жоғарғы политехникалық мектептің Информатика Институның
директоры, профессор Никлаус Вирт тарапынан студенттерді программалау тілі
бастамаларына үйрету үшін ойлап табылды. Автор тілді алғашқы арифметикалық
есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдың құрметіне
Паскаль деп атап, тіл атауын үнемі бас әріппен жазылуын сұраған.
Ал Паскаль тілінің трансляторының бірінші нұсқасы 1970 жылы Н.Вирттың
шәкірттерімен PDP-11 машинасы үшін жасалды. Кейіннен тілдің көптеген
нұсқалары жарық көрді.
Соның ішінде, 1983 жылы американдық Borland корпорациясының талантты
қызметкері, Н.Вирттың шәкірті Андерсон Хейлсбергтің жасаған жаңа үлгісі –
Turbo Pascal программалаушылар арасында үлкен сұранысқа ие болды. Оның бұл
нұсқасы CPM операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS
жүйесіне ауыстырылғалы бері пайдалану қарқыны артты.
Turbo Pascal –дың жоғарғы деңгейлі логикалық құрылымы әр түрлі
есептерді дәл шешуге көмегін тигізеді. Turbo Pascal жүйесінде қарапайым
есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың
сан қырлы жұмыстары жүргізіледі.
Қазіргі таңда миллиондаған програмистер Паскаль тілін күрделі және
үлкен проектілер үшін пайдаланғанмен, ол түп негізінде оқушыларды жаңа
заманғы программалауды қыр-сырына үйрету үшін ойлап табылған болатын. Және
де қазіргі таңда бұл тіл программалауда алғашқы қадамын жасаушыларға ең
ыңғайлы тіл болып табылады.
Turbo Pascal тілінде біз массивтермен, файлдармен, процедуралармен және
басқа да операциялармен жұмыс істей аламыз.
1. Есептің қойылымы
2.Қолданылған әдістер
2.1. Қосалқы программалар
Программада белгілі бір қайталанатын іс-әрекеттердің атау бойынша бөлек
жазып, атауы арқылы бір немесе бірнеше рет іске қосуға болатын программаның
бөлігін қосалқы программа деп атайды.
Турбо Паскаль тілінде қосалқы программаның екі түрі қолданылады:
• Процедура
• Функция
Әрбір қосалқы программаның атауы болады және олар айнымалыларды
сипаттау бөлімінде құрылып, операторлық жақшаларда орналасқан командалар
жиынынан тұруы мүмкін.
Қосалқы программаларды біз көбіне үлкен көлемді программаларды жазған
кезде қолданамыз. Себебі, өте үлкен көлемді программаларды жазған кезде
оларды міндетті түрде бірнеше рет орындалатын әрекеттер болады да, осындай
жағдайда программаны бөліктерге бөлмеу орындалатын бірдей әрекеттерді
бірнеше рет қайта жазу қиынға соқтырады. Программалау тілдерінің бәрінде
дерлік структуралы мүмкіндіктері бар. Осындай механизмдер бар тілдерді
процедуралы-бағытталған деп атайды Олардың қатарына Турбо Паскаль тіліде
жатады.
2.3.1. Процедура
Турбо Паскаль программалау тілінде процедураның жалпы құрылымы:
Procedure proc-name (а1,b1, . . .:type1; a2,b2, . . .:type2);
Begin
Процедураның негізгі бөлігі
End;
Мұндағы: proc_name – процедура атауы. Атау әріптен басталып, бос орын
қалдырылмай жазылады.
a1,b1,a2,b2 – негізгі программамен байланысқа қолданылатын айнымалылар
тізегі.
type1,type2 – айнымалылар типі.
Begin – процедура басы.
end; - процедура соңы.
2.3.2.Функция
Турбо Паскаль программалау тілінде функцияның жалпы құрылымы:
Function func_name (a1,a2,. . .:type1):type2;
Begin
Функцияның негізгі бөлігі
End;
Мұндағы: func_name – Атау әріптен басталатын, бос орын қалдырылмай
жазылатын функция атауы;
a1,a2 – Негізгі программамен байланысқа қолданылатын айнымалылар;
type1 – айнымалылар типі;
type2 – функцияның типі;
Begin – функцияның басы;
End; - функцияның соңы.
2.2.Файлдар
Файлды қолдануға дайындау және жабу
Бұл топтағы амалдарға: Assign, Reset, Rewrite, Close
процедуралары
жатады.
Assign (JF, Tanba) – процедурасы, файл типті JF айнымалысын
сыртқы жады құрылғысындағы, нақтылы Tanba файлымен тікелей
байланыстырады. Процедураның екінші параметрі - Tanba, тіркесті
өрнек – файлдың толық атауы: MS-DOS амалданушылық жүйесіне сәйкес
белгіленуі тиісті, мысалы:
Assign(f1, ‘C:\Stud\Data.doc’);
Assign - процедурасы, программа денесінде, f1 файлына
қолданылатын басқа амалдардың (Reset, Rewrite, Read, Write т.б.),
файл типті f1 айнымалысының атауы арқылы сыртқы жады құрылғысындағы
нақтылы - Data.doc файлымен тікелей жұмыс істеуіне мүмкіндік
береді.
Reset(JF) және Rewrite(JF); - процедуралары JF атаулы файлды,
қолдануға дайындайды (файл типті JF айнымалысы, Assign – процедурасы
арқылы анықталған деп есептеледі). Бұл процедуралар орындалғаннан
кейін, сыртқы жады құрылғылардағы нақтылы файл қолдануға
дайындалады. Файлдың кезекті көрсеткіші, JF файлының ең бірінші
(нөлінші) элементіне орналастырылады.
Reset(JF) - процедурасы, JF атаулы файлды, деректерді тек
енгізуге, дайындап ашады. Егер де, JF – файлы, сыртқы жады
құрылғысында әлі құрылмаған болса, онда Reset – процедурасы JF
файлын аша алмайды, ал программаның орындалуы тоқтатылады.
Rewrite (JF) – процедурасы, JF атаулы файлға, деректерді тек
жазып – сақтауға, дайындап ашады. Егер де, JF файлы, сыртқы жады
құрылғысында әлі құрылмаған болса, онда Rewrite - процедурасы, JF
файлын таба алмаса да, жаңадан ашып дайындайды. Ал, JF файлы
бұрыннан бар болса, ескі деректер толық жойылып, файл жаңартылады.
Close (JF) – процедурасы, файл типті JF айнымалысымен жұмыс
істуді доғарады, сыртқы жады құрылғысындағы нақты файлдың деректері,
дұрыс сақталуы үшін, файл жабылады.
Мәліметтер жазылатын файл программа алгоритмінде Assign командасын
жазу арқылы ашылады. Мысалы программада деректер Result.txt файлына
жазылуы тиіс болса ол үшін мынадай команда жазуымыз керек:
Assign (dd, ‘Result.txt’);
Rewrite(dd);
Команда нәтижесінде мәліметтер жалған аты dd болатын Result.txt
файлында сақталады. Бұл файл осы команданы жазу нәтижесінде, компьютер
жадында дәл осындай атты басқа файл болмаған жағдайда пайда болады, ал егер
программа жазылардан алдын Result.txt файлы болған болса, бұл файлдың
ішіндегі мәліметтер өшіріледі де, олардың орнына программадан енгізілген
мәліметтер жазылады.
2.3. Жолдық айнымалылар
Курстық жұмыста файлдармен жұмыстармен жұмыс істегендіктен,
оларға мәліметтер жазу үшін “жолдық” – String типі қолданылды. Паскаль
тілінде ұзындығы алдын-ала анықтау қиын жолдарға String типі көп
қолданылады. Ол көбінесе бір өлшемді array [0..n] of CHAR массивіне ұқсас,
бірақ та символдар жолының артықшылығы жолдағы символдар саны 0-ден n
айнымалысына дейін өзгереді, мұнда n – жолдағы символдардың максималды
саны. n мәні String[n] типінің анықталуымен баяндалады және 255-тен
аспайтын кез-келген реттік тұрақты сан бола алады. Егер сипатталуда n
көрсетілмесе, мұндай жағдайда жол ұзындығы ең мүмкіндікті алады, яғни
n=255 жолдың кез-келген символына кіру бір өлшемді массив элементтері
сияқты жүзеге асырылады.
2.4 Сұрыптау алгоритмдерi
Бұл айтылған пікірлердің барлығы программалаудың ең бір қажетті
мүмкіндіктері сұрыптау мен іздеуге арналған. Сұрыптау мен іздеуді кез-
келген программада қолдануға болады.Олардың мүмкіндіктері шексіз. Осы
мүмкіндіктерді пайдалана отырып, программа алгоритімін қарапайым жолмен
жеңілдетуге болады. Негізінен сұрыптау мен іздеудің түрлері өте көп.
Кез-келген күнделікті жағдайда біз сұрыптау және іздеу
үрдістерімен жұмыс жасаймыз. Әр адамда неліктен деген сұрақ туады. Жауап
өте қарапайым. Себебі бұл үрдістермен жұмыс жасау өте ыңғайлы. Тіпті
өзіміздің күнделікті қолданып жүрген персоналды компьютерімізде сол
принциппен жұмыс істейді. Олар сіз енгізген мәліметтерді сұрыптап қояды
да, сіз соларды іздегенде лезде тауып бере қояды. Сұрыптау мен іздеу
тәсілдерін қарапайым студент те, кәсіпқой программистте қолдана алады.
Жалпы алғанда кез-келген программа сұрыптаудан басталады. Ал тез сұрыптап
қажет элементті табу үшін сұрыптау және іздеу тәсілдерін жетік білген жөн.
Сондықтан сұрыптау мен іздеу тәсілдерін қарастырып көрейік.
Сұрыптаудың ең қарапайым есебi массив элементтерiнiң өсу не кему
ретiмен орналастыру болып табылады. Басқа есеп болып, берiлген белгiлер
бойынша массив элементтерiн реттеу. Әдетте мұндай белгi ретiнде аргументi
массив элементтерi болып табылатын белгiлi функция мәнi болып табылады. Бұл
функцияны реттеушi функция деп атау қабылданған.
Сұрыптаудың әр түрлi тәсiлдерi бар. Әрбiр тәсiлдi N бүтiн сандардан
өспелi массивтi сұрыпттау мысалында көрсетемiз.
1 2.4.1 Таңдау арқылы сұрыптау
Тізбектегі массивті қарастырып, осы массивтiң максималды элементiн
тауып, оны соңғы элемент (N номерлi) орнымен ауыстырылады. Содан кейiн
максималды элемент N-1 орынға дейiн iзделiп, сол N-1 орынға қойылады және
т.с.с. Максимум емес, минимум элемент iзделiп, оны бiрiншi, екiншi және
т.с.с. орынға қоюға болады. Сонымен қатар бұл әдiстiң модификацияланған
түрi – бiр мезетте максимум және минимум элементтердi iздеу қолданылады.
Бұл жағдайда сыртқы цикл
дың қадамдар саны N div 2.
Мысалы: a массивiнiң N бүтiн сандарының өсуi бойынша таңдау арқылы
сұрыптау.
Program Sort_Tandau1;
Var a:array[1..20] of integer;
N,i,m,k,x : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=n downto 2 do { k – max-ты iздеуге қажеттi элементтер саны }
begin
m:=1; { m - max орны}
For i:=2 to k do
if A[i]A[m] then m:=i;
{ m және k номерлi элементтердi орындарымен ауыстырамыз}
x:=a[m]; a[m]:=a[k]; a[k]:=x;
end;
for i:=1 to n do
write(a[i],' '); {реттелген массив}
end.
Мысалы: Жоғарыдағы есеп, бiрақ бiр мезеттегi max пен min таңдау
арқылы.
Program Sort_Tandau2;
Var a :array[1..10] of integer;
N,i,m,k,x,p : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=1 to n div 2 do { k - max және min жұбының орны }
Begin
m:=k; { m - max орны }
p:=k; { p – min орны }
{max және min k-дан n-k+1 элементтер арасында iзделедi }
For i:=k+1 to n-k+1 do
if a[i]a[m] then m:=i
else if a[i]a[p] then p:=i;
{ p және k номерлi элементтердi орындарымен ауыстырамыз }
x:=a[p]; a[p]:=a[k]; a[k]:=x;
if m=k then m:=p;
{егер max k орында тұрса, ендi ол p орында тұр }
{ m және n-k+1 номерлi элементтердi орындарымен ауыстырамыз }
x:=a[m]; a[m]:=a[n-k+1]; a[n-k+1]:=x;
end;
for i:=1 to n do write(a[i],' '); {реттелген массив}
end.
2 2.4.2 Айырбастау арқылы сұрыптау
Бұл әдіс а массивтiң көршiлес жұптары тексерiлуiнде құрылған. Егер
олар керектi реттiлiкте болмаса, онда көршiлес элементтер жұбын
орындарымен ауыстырамыз. Мұндай бiр өтуден кейiн N номерi орынында максимал
элемент орналасады (бiрiншi көпiршік “қалқып” шықты). Келесi өту N-1
элементке дейiн қарастыру керек және т.с.с. Барлығы N-1 өту қажет болады.
Мысалы: a массивiнiң N бүтiн сандарының өсуi бойынша айырбастау арқылы
сұрыптау. (Негiзгi вариант)
Program Sort_Auis1;
Var a:array[1..20] of integer;
N,i,k,x : integer;
Begin
write('Массив элементтерiнiң саны');
read(N);
For i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(a[i]);
For k:=n-1 downto 1 do { k – салыстырылатын жұптар саны }
For i:=1 to k do
If a[i]a[i+1] then
{көршiлес элементтердi орындарымен ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz