Паскаль программалау тілі

Автор работы: Пользователь скрыл имя, 03 Марта 2014 в 13:43, реферат

Описание работы

Қазіргі кезде Паскаль аты программалау тілдерінде – тіл аты ретінде кеңінен қолданылады. Паскаль программалау тілі ХVII ғасырда өмір сүрген француз ғалымы Блез Паскальдің құрметіне аталып отыр.
Блез Паскаль 1623 жылы Франция мемлекетінің Клермон – Ферран қаласында дүниеге келген. Ол жастайынан – ақ білімділігі, алғырлығы, зеректігімен, әсіресе математика саласына бейімдігімен баршаның көзіне түсті. 1662 жылы Блез Паскаль қайтыс болған соң, әлем білген қайталанбас аса дарынды математиктердің бірі болып тарихқа кірді. Ол математика ғылымының дамуына үлес қоса отырып, математика ғылымының бір саласы – ықтималдар теориясының ірге тасын қалады.

Файлы: 1 файл

Паскаль тілі.docx

— 107.06 Кб (Скачать файл)

Паскаль программалау тілі

 

Қазіргі кезде Паскаль аты программалау тілдерінде – тіл аты ретінде кеңінен қолданылады. Паскаль программалау тілі ХVII ғасырда өмір сүрген француз ғалымы Блез Паскальдің құрметіне аталып отыр.  
Блез Паскаль 1623 жылы Франция мемлекетінің Клермон – Ферран қаласында дүниеге келген. Ол жастайынан – ақ білімділігі, алғырлығы, зеректігімен, әсіресе математика саласына бейімдігімен баршаның көзіне түсті. 1662 жылы Блез Паскаль қайтыс болған соң, әлем білген қайталанбас аса дарынды математиктердің бірі болып тарихқа кірді. Ол математика ғылымының дамуына үлес қоса отырып, математика ғылымының бір саласы – ықтималдар теориясының ірге тасын қалады.  
Осы жоғарғы деңгейлі программалау тілдерінің бірі – Паскаль тілінің құрастырушысы Швейцария мемлекетінің Цюрих информатикалық институтының профессоры, жоғарғы политехникалық мектептің оқымысты адамы – Никлаус Вирт ( 1968-1971). 
Паскаль тілі жөніндегі алғашқы дерек 1971 жылы пайда болды, содан бері бұл жыл тілдің дүниеге келген жылы болып табылады. Ол Алго 60 тілінің жетілдірілген түрі болып табылады. 1983 жылы Паскаль тілі Халықаралық стандартқа: ISO:7185:1983 болып енгізілді. 
Қазіргі кезде Паскаль тілінің кеңейтілген ондаған диалектісі бар. Оның ішінде IBM PS –ге үйлесімді дербес компьютерлер жұмыс істей алатын Турбо Паскаль диалектісінің варианттары да жеткілікті. Келесі қатарда оның соңғы (7.0) вариантымен жұмыс істеу тәсілдері қарастырылған. Бұл вариант Турбо Паскальдың алғашқы варианттарымен де үйлесімді.  
Бейсик тілі сияқты Паскаль тілі оқып үйренуге жеңіл, түрлі саналық инфорциямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған тілдердің бірі.  
Паскаль тілінің мынадай ерекшеліктері бар:  
• Тілдің қарапайымдылығы оны тез арада жете меңгеруге мүмкіндік береді; 
• Тіл алгоритмді сақтап құрылған. Мұнда программаны бірте – бірте дамыту арқылы жеке блоктар түрінде құруға болады. Ол программалау тілін үйрену үшін өте қажет; 
• Деректердің құрылысына қарай сандық, белгілік және екілік информациямен жұмыс жүргізуге және күрделі алгоритмді бағдарлама жасауға қызмет етеді; 
• Тілге дамытылған берілгендер типтері енгізілген. Олар өңделетін берілгендер элементтерін толық сәйкестендіріліп сипаттауға және жаңа берілгендер типтерін енгізуге мүмкіндік береді; 
• Жүйелік бағдарламалауда кеңінен қолдануына оның өте тиімді бағдарламалау құру мүмкіндігі септігін тигізді; 
• Мұнда кішігірім жеңіл программалармен бірге күрделі құрылымды программаларды құруға болады.  
 
1.2 Турбо Паскальда жұмысты бастау. 
 
Турбо Паскальдың интегралдық ортасы пайдаланушының сұраныстарын операциялық жүйесіз-ақ қамтамасыз етеді. 
Интегралдық ортаға кіру. DOS-тың командалық қатарында C:\TP\TURBO EXAMPLE1.PAS (ТР-әдеттегі Турбо Паскаль директориясының атауы), деп теріп, Enter пернесін басу керек. Бір сәттен кейін экранның жоғарғы бөлігінде Example1.pas жазуы бар Текстік Редактор терезесі пайда болады. Егер программа аты көрсетілмесе бос терезе жиегінде Noname00.pas- стандартты атауы тұрады. 
Редактордың терезеде терілетін программа мәтінін қабылдауға немесе бұрынғы бар программаны редакциялауға дайындығын жанып-өшіп тұратын курсор арқылы білуге болады. Редактордың шықпай-ақ, программаны компиляциялау немесе орындау командасын бере аламыз. 
Белсенді терезе. ТР интегралдық ортасы бірнеше тереземен жұмыс жасауға мүмкіндік береді. Егер ортада бірнеше терезе ашылған болса, онда біреуі ғана, яғни қос жиекті терезе белсенді деп есептелінеді. Жоғарғыдағы әрекеттердің барлығы белсенді тереземен орындалады. F6 пернесін басып, кез-келген терезені белсенді етуге болады. 
Белсенді терезеде программа мәтінін көру. Егер терезеге программа мәтіні симаса, онда оны PgDn («алға»), PgUp («кейін қарай»)пернелерін басу арқылы парақтап көруге болады. 
Программаны сақтау. Терілген (редакцияланған) программа белсенді терезеден F2 пернесін басу арқылы файлға сақталады. Егер файлға атау берілмеген болса, онда ТР файл атауын енгізуді сұрайды. F2пернесін әрдайым басып отырған жөн. 
Программаны компиляциялау. F9 не ALT+F9 пернесін басылғанда компилятор программаны тексереді. Егер қате табылса, әдетте терезе шекарасында, хабарлама шығады. Ал қате жоқ болса “Compile successful. Press any key” хабарламасы шығады. 
Программаны орындау. Программаны орындау командасы Ctrl+F9 пернелер комбинациясымен іске асады. Нәтиже ALT+F5 пернелері арқылы көрінеді (редактор терезесі «ашылады»). Редакторға қайта өту үшін кез-келген литерлік перне шертілуі керек. 
Көшірме алу. Жұмыс соңында дискіде файл көшірмесін алған дұрыс. ALT+ F пернелерін шертіп, пайда болған “File” мәзірінен “save as …” қатары таңдалынып, Enter шертілген соң, файлдың толық атауын теру керек. Мысалы a:\Example1.pas деп, теріп Enter пернесі басылса, белсенді терезе мазмұны көшірмесі дискетке жазылады. 
Файлды ашу. ТР-да дискіде сақталған программа мәтінін редактор терезесіне шығару (файлды ашу) F3 пернесін шерту арқылы орындалады. Алдымен енгізу өрісі бар сұхбат терезесі пайда болады. Мысалы, сақталған Example1.pas файлын ашу үшін a:\Example1.pas теріп, Enter пернесін басу керек. 
Жаңа экранды ашу. ALT+F пернелерін басып, File мәзірінен New қатарын таңдалынған жағдайда жаңа экранда бос файл Nonamexx атымен пайда болады. Мұндағы «хх»-цифрлар. 
Тексті баспаға шығару. Принтерді іске қосып, “File” мәзіріндегі “Print” қатары таңдалса, белсенді терезе мазмұны қағаз бетіне басылып шығады. 
Турбо Паскальдан шығу. ALT+Х пернелерін басу арқылы орындалады. Егер ашылған терезе мазмұндарын сақтау ұмытылса, оны сақтау туралы хабарлама шығады.

 

МАЗМҰНЫ 
 
Паскаль тілінің негізі. 
1.1. Паскаль тілінің алфавиті. Деректер типтері 
1.2. Стандарт функциялар. Өрнектер 
1.3. Паскаль тіліндегі программаның негізгі құрылымы 
 
Паскаль тілінің операторлары 
2.1. Меншіктеу, мәліметтерді енгізу, шығару операторлары. Сызықтық программа  
2.2. Шартты оператор 
2.3. Таңдау операторы 
2.4. Қайталау операторы (цикл 
2.5. Goto операторы 
2.6. Символдық (жолдық) айнымалылар. Оларға қолданылатын операторлар 
2.7. Процедура және функция 
 
Құрылымдық типтер. 
3.1. Массив 
3.2. Жиын. Жиынға қолданылатын операциялар 
3.3. Жазулар. With операторы 
3.4. Файл 
 
Кіріспе: 
 
Өзекілігі: Қазіргі кезде көптеген программалар қолданылады. Солардың ішінде Паскаль программалау тілдері.  
 
Мәселе: Ақпарат қоғамға байланысты программалау тілдерін оқу  
процесіне енгізу және мәселесі туындайды. 
 
Мақсаты:  
Программалау тілдерін оқу процесінде пайдалану. 
 
Міндеттері: 
1) Паскаль. Программалау тілін теориалық тұрғыдан зерттеу. 
2) Паскаль. Программалау тілінде программа құру үлгілерін көрсету. 
 
Зерттеу объектісі: Паскаль. Программалау тілі. 
 
Зерттеу пәні: Информатика. 
 
Болжам: Паскаль. Программалау тілінде программа құра білу  
адамдардың жоғарғы дәрежелерде ақпарат құзіреттілігін  
қалыптастыруға мүмкіндік жасайды.  
 
Ғылымға пайдасы: 
Паскаль. Программалау тілі есептерді тез шығаруға көмектеседі.  
Және де бұл программаларды боллашақта мамандарға пайдалануға ұсынылады. 
 
Құрылымы: Кіріспе, 4- бөлім, қорытындыдан тұрады. Соңында пайдаланылған әдебиеттер тізімі көрсетілген. 
 
 
Программалау тілдері 
 
Компьютерге түсінікті командалар тізбегі арқылы жазылған алгоритм – программа деп, ал программа құру процесі программалау деп аталады. 
Программалау тілі – ЭЕМ-де шешілетін әртүрлі есептердің программасын компьютерге түсінікті формада жазу тәсілі болып табылады. 
Программалау тілдері жоғарғы және төменгі деңгейлі тілдер болып бөлінеді. Қолданбалы мазмұнды есептерді шешуге бағытталған, командалардың мол жиынтығынан тұратын табиғи тілге ұқсас прогрммалау тілі – жоғарғы деңгейлі программалау тілі деп аталады. Қазіргі кезде олардың бірнеше түрі бар. Жоғарғы деңгейлі программалау тілдерінің бірі – Паскаль тілі. Оның алғашқы вариантын 1971 ж. Швейцария ғалымы Никлаус Вирт жарыққа шығарған болатын. Автор атақты француз математигі Блез Паскальдың (1623-1662 ж) құрметіне жаңа программалау тіліне оның атын берді. Паскаль тілі оқып үйренуге жеңіл, алгоритм құрылымы сақталған, қолданушыға ыңғайлы тіл болып қана қойған жоқ, сонымен қатар көптеген күрделі есептерді шешу үшін қолданылатын қуатты программалау тілі болып табылады. 
Паскаль тілінің бірнеше баламалары бар. Қазіргі кезде кең қолданылатыны – Турбо Паскаль7.0 баламасы. Кез-келген Паскаль программа жеке атынан және .pas кеңейтілуінен тұратын текстік файл болып табылады. Паскаль тілінде құрылған программаны мәшинелік тілге аудару үшін компилятор қолданылады. Турбо Паскаль жүйесі ТР бумасында жазылады. Программаны жүктеу файлы: turbo.exe, ол әдетте BIN ішкі бумасында орналасады (мысал: C:TPBIN turbo.exe) 
Паскальдағы кез-келген деректер, яғни айнымалылар, тұрақтылар, функция мәндері және өрнектер, өздерінің типтері арқылы сипатталады. Тип аталған объектінің қабылдайтын мәндерінің жиынын және деректердің компьютер жадысында ішкі өрнектелу форматын анықтайды.  
Көптеген программалау тілдерінде, сонымен қатар Паскальда программада  
қолданылатын шамалар жөніндегі барлық ақпарат программаның сипаттау бөлімінде міндетті түрде көрсетілуі қажет. Сипаттау бөлімдері төмендегідей бөлімдерден тұрады: 
1. Таңбалар бөлімі 
2. Тұрақтылар бөлімі 
3. Типтер бөлімі 
4. Айнгымалылар бөлімі 
5. Процедура мен функциялар бөлімі 
 
 
Паскаль тілінің негізі. 
1.1. Паскаль тілінің алфавиті. Деректер типтері. 
Барлық программалау тілдерінің өз алфавиті болады. Алфавит – программада пайдаланылатын түрлі символдар (әріптер, цифрлар, таңбалар, белгілер).  
Паскаль тілінің алфавиті: 
1. Латын алфавитінің бас (A-Z) және кіші (a-z) әріптері және _ астын сызу белгісі. 
2. Араб цифрлары: 0 – 9 
3. Арнайы символдар: а) арифметикалық операция белгілері: +, -, *, / 
б) қатынас операцияларының белгілері: =, <> (тең емес), >, >=, <, <= 
в) тыныс белгілері: ; : . , .. 
г) қосарлы символдар: {}, [], (), (* *), (. .) 
д) меншіктеу белгісі: : = 
е) символдар: @, $, #, ^ 
4. Қызметші сөздер: and, begin, if, then, else, end …ыыы

 

1 Файлдардың түрлері 
 
Осыған дейін, біз мәліметтерді пернетақтадан негізіп, оларды экранға шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кетеьін. Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге пайдалану үшін немесе жңа мәліметтерді алу үшін, оларды есте сақтап қалу керек. Ондай тәсілдердің ьірі мынадай: нәтиже экранға шыққан соң қолға қаламсап (қарындаш) және бір бет қағаз алып, бұл мәліметтерді жазып алу. "Дербес компьютерлер” дәуірінің басында оларды "үй тапсырмасы” деп атаған да, шын мәнінде солай болған. Қазіргі кездегі дербес компьютерлердің барлығы ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған. Қызметтеріне қарай оларды: магниттік ақпарат тасымалдаушылар немесе жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы тасымалдаушыларда ұйымдастырылады, бұл жағдайда біз алған нәтижелерді солардың жадында сақтаймыз. Барлық мәліметтер осы тасымалдаушыларда файлдар түрінде сақталады.  
    Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы жадының ат қойылған аймағы (бөлігі). 
    File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен қатар ақпаратты сақтау деген мағынаны білдіреді. 
    Borland Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады: 
файлдың типі бойынша (оның логикалық құрылымына ) 
файл элементтеріне қатынау тәсілі бойынша 
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді: 
мәтіндік файл; 
типтік файл; 
типтік емес файл. 
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз. 
Қатынау тәсілі бойынша файлдар келесідей бөлінеді: 
Тікелей қатынау файлдары 
Кезекпен қатынау файлдары 
 
Олардың айырмашылығы тікелей қатынау файлдарында арнайы 
процедуралар  және функцияларды  пайдалана отырып, мәліметтерді, олардың файлдағы орнына тәуелсіз, оқуға немесе жазуға болады, ал кезекпен қатынау файлында оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның алдындағы мәліметтердің барлығын оқуға тура келеді. Мәтіндік файлдар кезекпен қатынау файлдарына жатады, ал типтік файлдар тікелей қатынау файлдарыа жатады. 
2. Мәтіндік файлға мәліметтер жазу.  
Бір өлшемді массив. 
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес, сан, әріп және басқа пернетақта символдары түрінде (ASCII кодында) беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады, оңай өзгереді және оларды кез келген мәтіндік редактордың, соның ішінде Borland Pascal ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей 2.1.2.-ні  қара, мәтінді теру кезінде жаңа жолды енгізу үшін "Enter” пернесін басу керек, осы кезде арнайы код гинерацияланады—ол жол соңы коды, ал файлды сыртқы сақтау құрылғысына жазған кезде де арнайы код гинерацияланады—ол файл соңы коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді. 
    Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп, оларды "mayFile.in” атты мәтіндік типтегі файлға жазу керек. 
    Есепті кезеңдерге бөлейік: 
пернетақтадан мәліметтерді енгізу 
оларды   "mayFile.in” атты файлға жазу керек. 
 
Бірінші кезеңді орындау үшін: 
пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету керек 
Сан мөлшерін білген соң, параметрлі циклді қолдану арқылы массив элементтеріне осы сандардың нақты мәндерін меншіктейміз 
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз. Айталық, санымыз 100-ден көп емес және олар басқа да процедураларда қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында сипаттаймыз. 
рrogram Misal_F1; 
                                                var 
                                                San: array [1..100] of integer; 
                                                                      i, SanMolcher: integer; 
 
Мәліметтерді енгізу процедурасы  келесі түрде болады: 
procedure init; begin readln (SanMolcheri); 
                                   for i:=1 to SanMolcheri do 
                                   begin 
                                     write ("San[",i,”]=’); 
                                     readln(San[i]); 
                                   end; 
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес, сондықтан ол қызмет атқармай-ақ қойсын. 
                           procedure work ; 
                              begin  
                              end; 
       Енді екіншісі кезеңді қарастырайық, яғни мәліметтерді «mayFile.in» атты мәтіндік типтегі файлға жазу керек. Алдымен өз файлмызды байланыстыратын, айналымның атауын беру керек.Айталық, ол айналымның атауы FileOut болсын, содан кейін біз оны мәтіндік файл ретінде сипаттаумыз керек. Бұл айнымалыны шығару процедурасында пайдаланатын болғандықтан, оны жергілікті айнымалы ретінде сипаттаймыз: 
                            var 
                            FileOut: text; 
Одан кейін біз программаға, "мәтіндік” типтегі FileOut атты айнымалының, біздің "mayFile. in” атты нақты файлмызды белгілейтінін көрсетуіміз керек. Ол үшін assign(Name Var, Name File)процедурасы қолданылады. Name Var—бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына File Out сөзін жазасыз. NameFile—бұл біз жұмыс істейтін файлдың аты, біздің жағдайда”mayFile.in”. 
    Файл аты мен оның кеңейтілуінен  басқа орналасқан орнына қарай сипатталатыны да белгілі. Мысалы,”c,\bp\bin\MyFile.in”. Ал егер толық аты берілмеген жағдайда, үнсіз келісім бойынша сіздің программаңыз  орналасқан ағымдағы каталог қолданылады. Енді сіз берілген файлды ашып, оған мәліметтер жазылатындығын көрсетуіңіз керек. Ол үшін rewrite (Name Var)процедурасы қолданылады. Мұндағы, Name Var-бұл файлды белгілеу  үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына  FileOut   атауы жазылады.  rewrite( 
Name Var) процедурасы—файлды жазу үшін ашады және көрсеткішті файлдың басына орналастырады. 
    Енді мәліметтерді файлға жазуға бәрі дайын. Ол үшін бұрынан белгілі Write() және Write() процедураларын қолданамыз. Жазулар экранға емес файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни, жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдында, бізді файлмен байланыстыратын assign() процедурасындағы айнымалы атуын көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады. Жаңа  жолға көшу болмайтындықтан,Write() процедурасын қолданып, бастапқыда файлға  SanMolcheri айнымалысын мәнін жазамыз да, содан кейін параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жазу керек. Ол Close() процедурасының көмегімен орындалады.  
Close(Name Var) процедурасы—файлдың соңына, файл соңы белгісін жазып, оны жабады. Егер файл Close() процедурасымен жабылмаған болса, онда мәліметтер сақталынбайды.  
 
 
 
    Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып көрелік: 
 
procedure exi; 
                                                var 
                                                FileOut:text; 
                                                begin 
                                                assing(FileOut,`mayFile.in`); 
                                                rewrite(FileOut); 
                                                write(FileOut, SanMolcheri); 
                                                  for i=1 to SanMolcheri do 
                                                    write(FileOut,San[i]); 
                                                    close(FileOut); 
                                                    end; 
негізі программаның мәтіні өзгеріссіз қалады 
begin 
                                                            init; 
                                                            work; 
                                                            exi; 
                                                            end. 
Осы программаны ‘Misal_F1’ атымен дискіге жазып, оны орындауға жіберіңіз. Программа жұмысын аяқтағаннан кейін, BP редакторының көмегімен біздің программамыз құрған `mayFile.in` файлын ашып, оның мазмұнын көріңіз. Өкінішке орай сандар файлда бос орынсыз тіркесіп жазылған болып шығады. Мұндай жазбадан қандай сандар жазылғанын анықтау қиындық тудырады. Бұл жағдайды қалай түзетуге болады?    
Ол үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі бар: 
а.әрбір мәнді бос орын (``)белгісі арқылы бөліп жазу 
в.әрбір мәнді жаңа жолға жазу (баған бойынша). 
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (``) белгісін қоямыз. 
write(FileOut, SanMolcheri,``); 
    for i:= to SanMolcheri do 
          write(FileOut,San[i],``); 
екінші жағдай үшін, writeln() процедурасын қолданамыз: 
            writeln(FileOut,SanMolcheri); 
              for i=1 to SanMolcheri do 
                  writeln(FileOut, San[i] ); 
Тапсырма 
1.Енгізілетін мәліметтер `mayFile1.in` атауымен берілген файлға, бір жолға және бос орын арқылы жазылатындай етіп , Misal_F1 программасын өзгерту керек. Жаңа программаны Misal_F2 атымен сақтаңыз. 
2. Misal_F1 программасында берілген мәліметтер  `mayFile2.in` файлына әрбір мәлімет жаңа жолдан жазылатындай етіп, өзгерту керек. Жаңа програманы Misal_F3 атымен сақтаңыз. 
3.Пернетақтадан 20 жол мәтін енгізіп, оны шығу файлына жазатын, Misal_F4 атауымен сақталатын программа жазыңыз. 
 
 
3. Мәтіндік файлға мәліметтер жазу. 
Екі өлшемді массив. 
    Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды үйреніңіздер. Write()- процедурасын пайдаланып мәліметтерді бір жолға, ал writeln()—процедурасын пайдаланып оларды бағанға жазуды көрдік. Осы білгендерімізді пайдаланып, келесі есепті шешіп көрелік: 
    Пернетақтадан, өлшемі 100х100, элементтері бүтін сан болатын, екі өлшемді массив енгізіледі. Осы массивті элементтерінің орналасу реті бойынша, `МayFile5.in` атымен, мәтіндік файл  түрінде жазатын, программа жазу керек. 
Бұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі негізгі кезеңнен тұрады:  
1.Пернетақтадан мәліметтерді енгізу 
2.Оларды атауы `МayFile5.in` болатын, файлға жазу керек.  
Бірінші кезеңді орындау үшін : 
Пернетақтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу; 
Массив өлшемдерін біле отырып параметрлі цикл операторын қолданып массив элементтеріне нақты мәндерді меншіктеу. 
Мәліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға болады. Ал мәліметтерді өңдеу процедурасы өзгеріссіз қалатындықтан, Misal_F1программасындағыдай болады. 
Массив элементтерін  `МayFile5.in` файлына жазу процедурасының қандай болатындығын қарастыралық: 
procedure exi; 
                                                     var 
                                               FileOut: text; 
                                                     begin 
                                          {нақтылы файлмен айнымалы арасындағы байланыс} 
           assing (FileOut,`mayFile.in`); 
           {файлды жазуға дайындау} 
           rewrite(FileOut);  
           {массив өлшемдерiн жазу және курсорды жаңа жолға көшiру} 
           writeln(FileOut, JolSany,``, BaganSany); 
           for i=1 to JolSany do 
               begin 
           {массив элементтерiн бос орын арқылы жолға жазу} 
                    for j=1 to BaganSany do 
                    write(FileOut,San[i,j],``); 
                {j-циклiн аяақтаған соң, курсорды жаңа жолға көшiру} 
           writeln(Fileout); 
             end; 
          {файлды жабу} 
          close(FileOut); 
               end; 
Негiзгi программа мәтiнiнiң өзгерiсiз қалатындығын айтпаса да болады. Осы  программаны Misal_F5 атымен сактаңыз. Программаны iске қосудың алдымен, келесi әрекеттердi: 
КурсордыExi процедурасын сипаттайтын жолдың басына қойыңыз; 
Негiзгi менюдi Debug iшкi менюiн ашыңыз; 
Add brekpoint… әрекетiн тандаңыз; 
Enter пернесiн басыңыз. 
Экранға Add brekpoint… (тоқтату нүктесiн қосу) сұхбат терезесi шығады  (2.8-сурет).”Line number” (жол нөмері)өрісінде, курсор тұрған жолдвң нөмірін көрсетіп тұрады, ол Exi  процедурасын сипаттайтын жолдың басын көрсетеді. 
"Ok” батырмасын (сұхбат терезесіндегі) немесе "Enter”  пернесін басыңыз. 
Редактор терезесіндегі бұл жол басқа түспен бөлінеді. Енді Ctrl+F9 пернелерін басу арқылы программаны іске қосыңыз. Пернетақтадан бастапқы мәндерді енгізіңіз. Мәліметтерді енгізген соң программа жұмысын тоқтатады және компьютердің экранында қайтадан редактор  терезесі шығады. Яғни, біз өзіміздің әрекеттеріміз арқылы программа жұмысын көрсетілген жолда тоқтатуға нұсқау бердік. Жұмысты қайтадан жалғастырву үшін  "Ctrl+F9” пернелерін басуымыз керек немесе F7 пернесін пайдаланған тиімді және Exi процедурасының қалай жұмыс істейтінін бақылап көре аламыз. 
    Бұл әрекеттер, программаның жеке бөліктерімен жұмыс жасағанда (жүріп өткенде) тиімді, себебі үлкен өлшемді программаларды толығымен жүріп өту жалықтырады және керек емес. Олай болса, программалаудың құрылымдылық тәсілін (1.5 тақырып) қолдай отырып бізде бары: 
Жеке модульдермен "жұмыс істеу” (программалау) мүмкіндігі. 
Бір деңгейдегі "ойша” машиналардың тәуелсіздігі, программаның жекеленген  бөліктерін, программаш\ның басқа бөліктеріне әсер етпей тәуелсіз жетілдіруге мүмкіндік береді. Э. Дейкстр атап өткендей: "... программаны жетілдіру, бір түрдегі (ойша) машиналардың басқа қолайлы машиналарға ауысуынан туындайды”. 
Құрылымдылық программаның жеке бөліктерімен жұмыс жасау. 
Процедура мәтінімен жүріп өткенде құрама операторлардың жұмысына көңіл бөліңіз. 
 
                                                 begin  
                                  {массив элементтерiн бос орын аркылы жолга жазу} 
                                  forj:=1 to BaganSany do 
                                  write (FileOut, San[i,j],``); 
                                  {j-цикл аякталган сон, курсорды жана жолга кошiру} 
                              writeln(FileOut); 
                                 end; 
Тоқтату нүктесін алып тастау үшін, келесі әрекеттерді орындаймыз: 
Негізгі менюді бес\лсенділеңіз; 
Негізгі менюден Debug   ішкі менюін ашыңыз; 
 Breakpoints пернесін басыңыз. 
Enter пернесін басыңыз. 
Экранда программаға қойылған барлық тоқтату нүктелерінің тізімі көһрсетілген,  Breakpoints… (тоқтату нүктелері) сұхбат терезесі (2.9-сурет) шығады. 
Қажетті элементті белгілеңіз; 
 "Delete” (сұхбат терезесінен) батырмасын немесе  "D” (пернетақтадан) пернесін басыңыз. 
Белгіленген тоқтату нүктесі тізімнен алынып тасталады. Егер сіз барлық тоқтату нүктесін алып тастағыңыз келсе--   "Clear all” батырмасын басу керек.  
Тапсырма 
Егер exi ішкі программасындағы  write және  writeln процедураларындағы бірінші параметр  FileOut көрсетілмесе San массиві қайда жазылған болар еді? 
Егер осы параметр тек  writeln процедурасында көрсетілмеген болса не өзгереді? 
  
 
 
4. Мәтiндiк файлдан мәлiметтердi оқу 
Өткен тақырыптарда сіздер, мәліметтерді мәтіндік файлға жазуды үйреніңіздер. Енді оларды қайтадан файлдан қалай оқуға болатынын қарастырамыз. 
    Ол үшін `mayFile1/in`  файлын пайдаланамыз. Мәліметтерді файлға жазу кезіндегідей, біздің файлмызды байланыстыратын айнымалыға атау беруіміз керек. Айталық, ол атау Fileln болсын, содан кейін біз оны мәтіндік файл ретінде сипаттауымыз керек. Бұл айнымалыны біз енгізу процедурасында пайдаланатын болғандықтан, сол процедураның жергілікті айнымалысы ретінде сипаттаймыз. 
                                                           var 
      Filelnt:text; 
Одан кейін біз программада, "мәтіндік типті ” Fileln айнымалысы, біздің 
`mayFile1.in` атауымен берілген нақтылы файлмызды белгілейтіндігін көрсетуіміз керек. Ол үшін assing(NameVar,NameFile)-процедурасын қолданады. 
Енді файлдан мәліметтерді оқу үшін, берілген файлды ашуымыз керек. Ол үшін, reset(NameVar)—процедурасында қолданады, мұндағы  NameVar-сіздің файлды белгілеуге берген айнымалыңыздың атауы, біздің жағдайымызда, ол NameVar-Fileln. Reset(NameVar)-процедурасы, мәліметтерді оқуға файлды ашады және курсорды файлдың басына орналастырадв. Егер ондай жоқ болса, қателік туралы хабарлама  береді.      Енді мәліметтерді файлдан оқуға барлығы дайын болды. Ол үшін өзімізге бұрынан таныс  Read() және  Readln() процедураларын пайдаланамыз. Мәліметтерді оқу пернетақтадан емес, файлдан жүзеге асу үшін, мәліметтерді оқудың жолын көсетеміз. Яғни, жақшалардың ішіне, assing()- процедурасының көмегімен біздің файлмызды байланыстырып тұрған, айнымалының атауын көрсетеміз. 
 `MayFile.in`файлындағы бірінші сан, файлдағы барлық сандардардың мөлшерін көрсетеді. Сондықтан, алдымен файлдан 
Sanau айнымалысының мәнін оқытамыз,содан кейін параметрлі циклді қолданып, файлдағы сандардың мәндерін оқимыз. Мәліметтер толық оқылып болған соң, өзімізге таныс Close() процедурасын пайдаланып, файлды жабу керек.  
    Енді, мәліметтерді фйалдан оқу процедурасы қандай болатындығын көрелік:  
procedure lnit; 
                                                     var 
                                                     i:byte; 
                                                     Fileln:text; 
                                                     begin 
                                                         assing(fileln,`mayFile1.in`); 
     reset(Fileln); 
                  readln(Fileln,Sanau); 
                       for i:=1 to Sanau do 
                           read(Fileln,San[i]); 
     close(Fileln); 
                                                     end; 
Дәл осындай, егер өлшемдері белгілі болса, мәліметтерді екі өлшемді массивтен оқу да онша қиыншылық туғызбайды. `MayFile.in5` файлынан мәліметтерді оқитын программадан үзінді мысалға келтірейік: 
procedure lnit; 
                                                     var 
                                                     i,j:byte; 
                                                    {айнымалы атауын мәтiндiк файл түрiнде сипаттау} 
                                                    Fileln  :text; 
                                                    begin 
                                                   {айнымалыны нақтылы файл атымен байланыстыру} 
                                                   assing(Fileln,`mayFile5.in`); 
                                                  {файлды оқуға ашу} 
                                                 reset(File); 
                                                 {массив өлшемдерiн оқу, курсорды жаңа жолға көшiру} 
                                                 readln(Fileln,JolSany,BaganSany); 
                                                 {массив элементтерiн жол және баған бойынша оқу} 
                                                 for:=1 to JolSany do 
                                             read(Fileln,San[i,j]); 
                                            {файлды жабу} 
                                            close(Fileln); 
                                            end; 
Мынаған көңіл аударыңыз, массив элементтерін оқу кезінде, Readln() процедурасын қолданбай, тек қана Read() процедурасы қолданылды. Бұл мүмкін еді, себебі массив элементтерін оқу үшін оның өлшемдері алдын ала белгілі болды. Егер мәтіндік файлдағы элементтер жазбалар саны алдын ала белгісіз болса, онда қайталану саны белгісіз цикл операторларын қолдануға тура келеді. 
Тапсырма 
Бір өлшемді массивті құрайтын `MayFile.in` файлынан мәліметтерді оқып, оларды компьютре экранына шығаратын программа жазыңыз және оны  `MayFile6.pas` атымен сақтаңыз. 
Екі өлшемді массивті құрайтын  `MayFile5.in` файлынан мәліметтерді оқып, оларды компьютер экранына программа жазып және оны  `MayFile7.ipas` атымен сақтаңыз. 
MayFile6.pas` программасын пайдаланып, `MayFile2.in` файлынан мәліметерді оқыңыз. Алынған нәтижені  1 тапсырма нәтижесімен салыстырыңыз. Нәтижені түсіндіріңіз. 
BP мәтіндік редакторын пайдаланып  `MayFile1.in`,  `MayFile2.in` және  `MayFile5.in` файлдарындағы массив өлшемдерін немесе жазбалар саные көрсететін жолды алып тастаңыз.

 

1 Файлдардың түрлері  
 
Осыған дейін, біз мәліметтерді пернетақтадан негізіп, оларды экранға шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кетеьін. Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге пайдалану үшін немесе жңа мәліметтерді алу үшін, оларды есте сақтап қалу керек. Ондай тәсілдердің ьірі мынадай: нәтиже экранға шыққан соң қолға қаламсап (қарындаш) және бір бет қағаз алып, бұл мәліметтерді жазып алу. “Дербес компьютерлер” дәуірінің басында оларды “үй тапсырмасы” деп атаған да, шын мәнінде солай болған. Қазіргі кездегі дербес компьютерлердің барлығы ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған. Қызметтеріне қарай оларды: магниттік ақпарат тасымалдаушылар немесе жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы тасымалдаушыларда ұйымдастырылады, бұл жағдайда біз алған нәтижелерді солардың жадында сақтаймыз. Барлық мәліметтер осы тасымалдаушыларда файлдар түрінде сақталады.  
Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы жадының ат қойылған аймағы (бөлігі).  
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен қатар ақпаратты сақтау деген мағынаны білдіреді.  
Borland Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады:  
файлдың типі бойынша (оның логикалық құрылымына )  
файл элементтеріне қатынау тәсілі бойынша  
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:  
мәтіндік файл;  
типтік файл;  
типтік емес файл.  
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.  
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:  
Тікелей қатынау файлдары  
Кезекпен қатынау файлдары

Олардың айырмашылығы тікелей қатынау файлдарында арнайы  
процедуралар және функцияларды пайдалана отырып, мәліметтерді, олардың файлдағы орнына тәуелсіз, оқуға немесе жазуға болады, ал кезекпен қатынау файлында оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның алдындағы мәліметтердің барлығын оқуға тура келеді. Мәтіндік файлдар кезекпен қатынау файлдарына жатады, ал типтік файлдар тікелей қатынау файлдарыа жатады.  
2. Мәтіндік файлға мәліметтер жазу.  
Бір өлшемді массив.  
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес, сан, әріп және басқа пернетақта символдары түрінде (ASCII кодында) беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады, оңай өзгереді және оларды кез келген мәтіндік редактордың, соның ішінде Borland Pascal ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей 2.1.2.-ні қара, мәтінді теру кезінде жаңа жолды енгізу үшін “Enter” пернесін басу керек, осы кезде арнайы код гинерацияланады—ол жол соңы коды, ал файлды сыртқы сақтау құрылғысына жазған кезде де арнайы код гинерацияланады—ол файл соңы коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.  
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп, оларды “mayFile.in” атты мәтіндік типтегі файлға жазу керек.  
Есепті кезеңдерге бөлейік:  
пернетақтадан мәліметтерді енгізу  
оларды “mayFile.in” атты файлға жазу керек.

Бірінші кезеңді орындау үшін:  
пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету керек  
Сан мөлшерін білген соң, параметрлі циклді қолдану арқылы массив элементтеріне осы сандардың нақты мәндерін меншіктейміз  
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз. Айталық, санымыз 100-ден көп емес және олар басқа да процедураларда қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында сипаттаймыз.  
рrogram Misal_F1;  
var  
San: array [1..100] of integer;  
i, SanMolcher: integer;

Мәліметтерді енгізу процедурасы келесі түрде болады:  
procedure init; begin readln (SanMolcheri);  
for i:=1 to SanMolcheri do  
begin  
write (“San[“,i,”]=’);  
readln(San[i]);  
end;  
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес, сондықтан ол қызмет атқармай-ақ қойсын.  
procedure work ;  
begin  
end;  
Енді екіншісі кезеңді қарастырайық, яғни мәліметтерді «mayFile.in» атты мәтіндік типтегі файлға жазу керек. Алдымен өз файлмызды байланыстыратын, айналымның атауын беру керек.Айталық, ол айналымның атауы FileOut болсын, содан кейін біз оны мәтіндік файл ретінде сипаттаумыз керек. Бұл айнымалыны шығару процедурасында пайдаланатын болғандықтан, оны жергілікті айнымалы ретінде сипаттаймыз:  
var  
FileOut: text;  
Одан кейін біз программаға, “мәтіндік” типтегі FileOut атты айнымалының, біздің “mayFile. in” атты нақты файлмызды белгілейтінін көрсетуіміз керек. Ол үшін assign(Name Var, Name File)процедурасы қолданылады. Name Var—бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына File Out сөзін жазасыз. NameFile—бұл біз жұмыс істейтін файлдың аты, біздің жағдайда”mayFile.in”.  
Файл аты мен оның кеңейтілуінен басқа орналасқан орнына қарай сипатталатыны да белгілі. Мысалы,”c,\bp\bin\MyFile.in”. Ал егер толық аты берілмеген жағдайда, үнсіз келісім бойынша сіздің программаңыз орналасқан ағымдағы каталог қолданылады. Енді сіз берілген файлды ашып, оған мәліметтер жазылатындығын көрсетуіңіз керек. Ол үшін rewrite (Name Var)процедурасы қолданылады. Мұндағы, Name Var-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына FileOut атауы жазылады. rewrite(  
Name Var) процедурасы—файлды жазу үшін ашады және көрсеткішті файлдың басына орналастырады.  
Енді мәліметтерді файлға жазуға бәрі дайын. Ол үшін бұрынан белгілі Write() және Write() процедураларын қолданамыз. Жазулар экранға емес файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни, жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдында, бізді файлмен байланыстыратын assign() процедурасындағы айнымалы атуын көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады. Жаңа жолға көшу болмайтындықтан,Write() процедурасын қолданып, бастапқыда файлға SanMolcheri айнымалысын мәнін жазамыз да, содан кейін параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жазу керек. Ол Close() процедурасының көмегімен орындалады.  
Close(Name Var) процедурасы—файлдың соңына, файл соңы белгісін жазып, оны жабады. Егер файл Close() процедурасымен жабылмаған болса, онда мәліметтер сақталынбайды.

Информация о работе Паскаль программалау тілі