Туре тип атауы тип мәндері
Мазмұны
Кіріспе
1. Turbo Pascal бағдарламалау тілінің негізі, даму тенденциясы;
1.1 Turbo Pascal бағдарламалау тілі, негізгі элементтері, құрылымы;
2.1 Файлдардың түрлері
2.1.1 Мәтіндік файлға мәліметтер жазу. Бір өлшемді массив.
2.1.2 Мәтіндік файлға мәліметтер жазу. Екі өлшемді массив
2.1.3 Мәтiндiк файлдан мәлiметтердi оқу
2.1.4 Мәтiндiк файлдан мэлiметтердi оку (жалғасы)
2.1.5 Типті файл. Типті файлдарға мәліметті жазу
2.1.6 Типті файлдан мәліметтерді оқу
2.1.7Әртүрлі базалық типтерді біріктіру. Жазба типі
2.1.8 Сыртқы кітапханалар. Модульдер
2.1.9 Модуль құрылымы
2.2 Turbo Pascal-дағы жолдық қатарлар
2.2.1 Жолдық қатарлар
2.2.2 Жолдық процедуралар мен фукнциялар
2.2.3 Жолдық қатарларға программа құру
2.2.4 Жолдық қатарлар мен амалдар орындау
2.3 Turbo Pascal-дағы көмекші бағдарламалар
2.3.1КӨМЕКШІ БАҒДАРЛАМАЛАР ЖӘНЕ ОЛАРДЫҢ ҚҰРЫЛЫМЫ.
2.3.2 Көмекші программа құрылымы
2.3.3 Процедуралар. Процедураның құрылымы
2.4 Қайталану командалары
FOR циклдік операторы ( Үшін циклі ).
WHILI ... DO ЦИКЛДІК ( ӘЗІРШЕ ЦИКЛІ ).
REPEAT ... UNTIL ЦИКЛДІК ОПЕРАТОРЫ ( Дейін ).
3. Міндетті орта білім беру мектептеріндегі 7-11 сыныптардағы геометриялық
курсының есептерін, Turbo Pascal көмегімен программалау;
3.1 Геометриялық есептердің Turbo Pascal бағдарламалау тілі көмегімен
шешілуі;
Қорытынды
Қолданылған әдебиеттер тізімі
КІРІСПЕ
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның тұңғыш
нұсқасын 1970 жылы швейцрия физигі Niklaus Wirth ұсынған.Автор тілді
алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез
Паскальдің құрметіне Паскаль деп атап , тіл атауын үнемі бас әріппен
жазылуын сұраған.Кейінен тілдің көптеген нұсқалары жарық көреді.
Turbo Pascal – оның тұңғыш нұсқасын жоғарғы деңгейлі программалау
жүйесі . 1970 жылы швейцрия физигі Niklaus Wirth ұсынған. Тілді алғашқы
арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез
Паскальдің құрметіне автор деп паскаліия ғалымы Никлаус Вирт жасаған
Паскаль программалау тілінен тарайды. Қарапайым Паскальді өңдеудегі А.
Хейлсбергтің еңбегінің нәтижесінде Turbo Pascal қазіргі заман талабына
сай, қуатты программалау жүйесіне айналды. Turbo Pascal – жоғарғы деңгейлі
программалау жүйесі. Оның логикалық құрылымы әр түрлі есептерді дәл шешуге
көмегін тигізеді. Бейсик тілі сияқты, Паскаль оқып-үйренуге жеңіл, түрлі
салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде
көп тараған тілдердің бірі. Оның ыңғайлылығы:
• тілге дамытылған берілгендер типтері енгізілген. Олар өңделетін
берілгендер элементтерін толық сәйкестендіріп сипаттауға және жаңа
берілгендер типтерін енгізуге мүмкіндік береді;
• мұнда кішігірім жеңіл программалармен бірге күрделі құрылымды
программаларды құру да мүмкін;
• тіл синтаксисі қиын емес; нұсқаулардың (операторлардың) саны
мүмкіндігінше азайтылған, т.б.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан
бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Жоғарғы деңгейлі программалау тілдерінің бірі − Паскаль. Қазіргі кезде
Паскаль тілінің кеңейтілген ондаған диалектісі бар, оның ішінде IBM PC-ге
үйлесімді дербес компьютерлер жұмыс істей алатын Турбо Паскаль
диалектісінің варианттары да жеткілікті.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап,
күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Паскаль тілі бұрын құрылған (Фортран, Алгол және т.б.) программалау
тілдерінен маңызды ерекшелігі ол құрылымдық программалау идеясын өмірге
біртіндеп енгізу. Бұл тілде жазылған программа компьютерде орындалу
барысында алдымен трансляцияланады (машина тiлiне аударылады), объектiк
программаға түрлендіріледі де содан кейiн ғана орындалады. Осы сәтте
компьютерде программаның екі нұсқacы болады, оның бiрiншiсi - алгоритмдiк
тiлдегi алғашқы түпнұсқасы, ал екiншiсi - объектiк кодтағы жазылған
программа. Есеп нәтижесін машиналық кодта жазылған программа арқылы аламыз,
ал программаны түзету қажет болғанда, оның алгоритмдiк тiлде жазылған
алғашқы нұcқacы өңделеді.
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын, кең
таралған стандартты оқу тіліне айналды.
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
барысында компьютерге бастапқы мәліметтер енгізіледі, оларды қалай
өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға
шығарылатыны айтылады.
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды теру,
түзету арнайы мәтіндік редакторлар атқарылады. Программа алдындағы азат жол
немесе бос орын саны өз қалауымызша алынады. Бір қатарда бірнеше команда
немесе оператор орналаса алады, олар бір - бірімен нүктелі үтір (;) арқылы
ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, ол
түзету жеңіл, әрі оқуға ыңғайлы.
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеші бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
табылады. Орындалатын іс - әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, бірақ атқарылатын операторлар (командалар)
тізбегі жеке - жеке жолдарға жазылып біткен соң end түйінді сөзімен
аяқталады.
1. TURBO PASCAL БАҒДАРЛАМАЛАУ ТІЛІНІҢ НЕГІЗІ, ДАМУ ТЕНДЕНЦИЯСЫ
Паскаль тiлiн 1968-1971 жылдары швейцариялык. ғалым Никлаус Вирт оқып
- үйренуге қолайлы программалау тілі ретінде ұсынған болатын. Бұл тілдің
стандарты кейiнiрек бекiтiлдi, ол сол кездері кең таралған АЛГОЛ, ФОРТРАН,
БЕЙСИК тiлдерiне қарағанда жетiлдiрiлген, жұмыс iстeyгe ыңғайлы тiл болды.
Паскаль тiлi өзінің қарапайымдылығының және тиiмдiлiгiнің арқасында дүние
жүзіне тез таралды. Қазiргi кезде барлық дербес компьютерлер осы тілде
жұмыс iстей алады. Паскаль тiлiнде жазылған программаның дұрыстығын
компьютерде тексеру және жiберiлген қатенi тузету оңай.
Бұл тілде жазылған программа компьютерде орындалу барысында алдымен
трансляцияланады (машина тiлiне аударылады), объектiк программаға
түрлендіріледі де содан кейiн ғана орындалады. Осы сәтте компьютерде
программаның екі нұсқacы болады, оның бiрiншiсi - алгоритмдiк тiлдегi
алғашқы түпнұсқасы, ал екiншiсi - объектiк кодтағы жазылған программа. Есеп
нәтижесін машиналық кодта жазылған программа арқылы аламыз, ал программаны
түзету қажет болғанда, оның алгоритмдiк тiлде жазылған алғашқы нұcқacы
өңделеді.
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын, кең
таралған стандартты оқу тіліне айналды.
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
барысында компьютерге бастапқы мәліметтер енгізіледі, оларды қалай
өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға
шығарылатыны айтылады.
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды теру,
түзету арнайы мәтіндік редакторлар атқарылады. Программа алдындағы азат жол
немесе бос орын саны өз қалауымызша алынады. Бір қатарда бірнеше команда
немесе оператор орналаса алады, олар бір - бірімен нүктелі үтір (;) арқылы
ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, ол
түзету жеңіл, әрі оқуға ыңғайлы.
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеші бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
табылады. Орындалатын іс - әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, бірақ атқарылатын операторлар (командалар)
тізбегі жеке - жеке жолдарға жазылып біткен соң end түйінді сөзімен
аяқталады.
Program BASTAU:
Сипаттау бөлімі
Begin
Операторлар бөлімі
End
Операторлар бөлімінде командалар ретімен орналасады. Олардың кейбірі
шартқа байланысты атқарылса, ал кейбір қайталанатын цикл немесе қосымша
программа түрінде орындалады. Операторлар бөлімінде орнатылатын негізгі
әрекеттерді қарастырайық.
Деректер - сан мәндері мен мәтін түріндегі сөз тіркесін мән ретінде
қабылдай алатын тұрақтылар, айнымалылар т.б. осы тәрізді құрылымдар немесе
солардың адрестері.
Дерек енгізу - бастапқы деректерді пернетақтадан, дискіден немесе
еңгізу - шығару порттарынан еңгізу арқылы жүзеге асады.
Операциялар немесе амалдар - берілген және есептелген мәндердің
меншіктеу, соларды өңдеу, салыстыру операцияларын орындайды.
Шартты түрде атқарьшу белгілі бір көрсетілген шарттың орындалуына
байланысты, командалар жиыны атқарылады, әйтпесе олар аттап өтіледі немесе
басқа командалар жиыны орындалады.
Цикл - белгілі бір шарттар орындалған жағдайда көрсетілген командалар
жиынын бірнеше рет қайталанып атқарылады. Қайталау саны бүтін санмен
беріледі.
Көмекші программа - алдын ала қандай да бір атаумен атымен атымен
аталған командалар тобы. Олар программаның кез келген жерінен оның атауын
көрсету арқылы шақырылып атқарыла береді.
Түсініктеме - программа жолдары соңында немесе оның түйінді сөздері
арасында қазақша (орысша) түсінік беретін пішінді жақшаға алынып жазылған
сөз тіркесітері. Олар программа операторларының орындалуына ешқандай әсер
етпейді.
Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері
Паскаль тіліндегі алдын ала келісілген типтердің біріне тән болуы тиіс.
Мәліметтердің немесе шамалардың типі деп, олардың қабылдай алатын
мәндерінің және олармен орындауға болатын амалдардың жиының анықтауды
айтады, яғни тип дегеніміз - шамалардың қабылдайтын мәндеріне берілетін
сипаттама.
Мәліметтердің әр типі тек өзіне ғана сәйкес келетін операциялар жиынын
орындата алады. Мысалы, 1 мен 2 мәндері бүтін сандар типіне жатады, оларды
қосуға, азайтуға, көбейтуге және бөлуге болады.АJI, ІВМ және РС мәндері
сөз тіркесі типіне жатады, бұларды біріктіріп жазуға ғана болады (ІВМ
РС). Қосуға, азайтуға, көбейтуге, бөлуге болмайды. Кез келген тұрақты,
айнымалы функция немесе өрнек өзіне тән бір типпен ғана сипатталады.
Паскаль тілінде шамалардың типін көрсету міндетті болып табылады. Сондықтан
программа алдына оның сипаттау бөлімінде пайдаланылатын барлық шама
атаулары және оның типтері көрсетілуі қажет.
Паскаль тілінде пайдаланылатын барлық типтер скалярлық (қарапайым)
және құрылымдық (структуралық) болып үлкен екі топқа бөлінеді. Скалярлық
(қарапайым) типке шамалардың стандартты типі және жасанды тип
(тағайындалған) жатады. Стандартты типтерге:
• Бүтін - INTEGER;
• Нақты - REAL;
• Логикалық - BOOLEAN;
• Тіркестік - (STRING);
• Мәтіндік (ТЕХТ) тәрізді типтер жатады.
Құрылымдық типтері жиымдар - ARRAҮ, жазбалар - RECORD, жиындар - SET
және файлдар - FILE түрлеріне бөлінеді.
Бұлардан өзге типтер программаның типтері сипаттау бөлігінде анықталуы
қажет. Тұрақты сандардың типін олардың сыртқы пішініне қарап - ақ ажыратуға
болады, ал айнымалылар мен функциялар типтері программаның сипаттау
бөлімінде көрсетіледі.
Ол үшін type түйінді сөзі қолданылып, жазылу пішімін былай көрсетуге
болады:
Туре тип атауы =тип мәндері;
Логикалық шамалар екілік сандар жүйесіне сәйкес 1 және О деген
мәндерді ғана қабылдайды. Мұндағы 1 тексерілетін белгілі бір шарттың -
логикалық тұжырымның орындалатынын, яғни ақиқат екенін, ал О сол шарттың
орындалмайтынын - тұжырымның жалған екенін көрсетеді. Бұл екі мән
программада ағылшын тіліндегі айтылуына сәйкес true (1) және false (О)
болып жазылады.
Символдық шамалар апострофқа алынған бір символды ғана мән ретінде
қабылдай алады, мысалы, 'R','Л','%'тағы басқа. Бірақ әрбір таңбаны оның
кодына байланысты реттелген бүтін сандармен де өрнектеу мүмкіндігі бар.
Мәліметтердің қарапайым түрлерін стандартты типтер деп атау
қалыптасқан. Стандартты типтердің real түрінен өзгелері реттелген деп
аталады, өйткені оларды бүтін сан арқылы өрнектей отырып өсуі не кемуі
бойынша реттеп орналастыруға болады.
Стандартты типтер. Паскаль тілінде төмендегі қарапайым типтер
пайдаланылады:
• Бүтін типтер - SHORTINT, INTEGER, LONGINT, ВУТЕ, WORD;
• Нақты тип - REAL, SINGLE, DOUВLE, EXTENDED, СОМР;
• Логикалық - BOOLEAN;
• Симводық - CНAR;
• Ауқымды (диапозонды) тип;
• Саналатын тип;
Паскаль тілінің программасы блоктардан құрылады. қандай да бір блок
ішінде басқа да кішігірім блоктар орналасуы мүмкін. Блоктар екі бөлімнен
тұрады, олардың алғашқысы - мәліметтерді сипаттау бөлімі, ал екіншісі.- сол
мәліметтерді пайдаланып, әр түрлі іс - әрекеттерді (операцияларды,
амалдарды) атқару бөлімі.
Мәліметтерді сипаттау бөлімінің болуы міндетті емес, ал екінші негізгі
бөлімінің болуы міндетті. Басқа блокқа кірмейтін блок негізгі (глобальді)
блок болып саналады. Ал блок ішіндегі блок - жергілікті (локальді) блок деп
аталады.
Негізгі блок - негізгі программа блогы, сондықтан ол басқа блоктарға
кірмеуі тиіс. Жергілікті блоктарға процедуралар мен функциялар кіреді, олар
кейбір программаларда болмауы да мүмкін.
Программалардың негізг объектілері болып саналатын айнымалы, тұрақты
және oлapдың типтері орналасқан блогына байланысты басты немесе жергілікті
деп аталады. Программа объектілерінің де жұмыс істеу, ықпал ету аймағы сол
өздері орналасқан блокпен шектеледі. Блоктық құрылым программа мәтінін
тиянақты түрде қатесіз құрастыруға мүмкіндік береді.
Турбо Паскаль программасының тақырыбын (атауын) жазбай кетуге де
болады, бірақ жалпы Паскаль тілінің стандарты бойынша программада тақырып
болуы қажет.
Сонымен Паскаль тіліндегі кез келген программаның тақырыбы, одан кейін
сипаттау бөлімі және begin және end сөздерімен қоршалған операторлар бөлімі
болуы керек.Сипаттау бөлімі толық жағдайда,7 бөліктен тұрады, олар:
1) Программамен байланысатын кітапханалық модульдер атауларының
тізімі (ол uses түйінді сөзімен басталады);
2) Белгілерді (lаbеl) сипаттау;
3) Тұрақтыларды (const) сипаттау;
4) Мәліметтер типтерін (true) анықтау;
5) Айнымалыларды (var) сипатгау;
6) Процедураларды (procedure) сипатгау;
7) Функцияларды (function) сипатгау;
Берілген мәндерді айнымалыға беру ушін меншіктеу операторы пайдалануға
болады. Мысалы, А:= -15; ВЕС:=16,4; тағы басқалар. Бірақ бұл жағдайда
программада жалпылық қасиет болмайды, яғни ол тек көрсетілген мәндер үшін
ғана есептеу жұмысын жүргізіп, қалған кез - келген мәндер үшін дұрыс нәтиже
бермейді. Программаны дұрыс әрі әмбебап етіп жасay үшін айнымалылардың
мәндері өзгерілетін түрде жасалып oлap пернетақтадан енгізілуі қажет,
мұндайда программа айнымалының әр түрлі мәндері үшін дұрыс жұмыс атқара
алады.
Паскаль тілінде мәліметтерді енгізу және шығару үшін, яғни адам мен
компьютер арасында мәлімет алмасу мақсатында алдын ала анықталған Input,
Output файлдары қолданылады. Программа берілген мәндерді Input файлынан
алады да, алынған нәтижені Output файлына орналастырады. Стандартты енгізу
файлы болып пернетақта, ал шығару файлы болып дисплей экраны саналады. Ол
үшін енгізу операторы пайдаланылады.
Паскаль тілінде мәлімет енгізетін READ ( READ - ағылшынша оқy )
операторының жалпы турі (пішімі) төмендегідей:
READ (а1, а2 ... ап);
READLN (а1, а2, ... , ап);
READLN;
Мұндағы а1, а2, ..., аn - айнымалы атаулары, оларды енгізу
операторының параметрлері деп те атайды. Алғашқы оператор көрсетілген
айнымалылардың мәндері пернелер арқылы араларына бір бос орын қалдыру
арқылы енгізілген соң, курсорды келесі қатарға көшірмейді. Ал readln ( read
lіnе - қатарды оқу деген сөздің қысқартылуы) алдыңғы оператордағыдай
пернетақтадан мәндер енгізілгеннен кейін курсорды келесі қатарға көшіріп
жібереді. Соңғы қатарда жазылған параметрсіз оператор ешбір мән енгізбей,
тек курсорды келесі қатарға көшіруді ғана атқарады.
Енгізілетін айнымалылардың мәндері integer, reаl, char немесе stгіпg
(сөз тіркесі) типтеріне жатуы мүмкін. Логикалық айнымалылардын мәндері өз
типтеріне сәйкес Паскаль тілінің ережесі бойынша енгізіледі. Егер ол шарт
бұзылса (мысалы, а1 типі integer болса, ал енгізгенде сhаг типтес мән
терілсе), онда экранға енгізу-шығару қатесі шығады, оның пішімі мынадай
болып келеді:
ІО error ХХ,
мұндағы ХХ - бүтін сан түріндегі қaтенің сипатына сәйкес коды.
READ операторы орындалtанда параметрлер өздеріне сәйкес мәндері
қабылдайды, бұл міндет INPUT енгізу файлы арқылы жүзеге асырылады.
Параметрлер жаңа мән қабылдағанда, оларда бұрын орналасқан (жазылған) ескі
мән өшіріліп, орнына жаңа мәндер жазылып отырылады да, прогрaмма
параметрдің жаңа мәні бойынша жұмыс атқарады.
Мысал.
var
І: real;
J: integer;
К: cҺar;
begin
Read (І, J, К);
...
Программаға мынадай бастапқы мәндер енгізіледі 212.5 38 ‘п’. Осыдан
кейінгі келесі мәндер енгізілсін: 'л' 121.35 25.
Алғашқы нұсқасында мәлімет енгізу дұрыс орындалады, өйткені енгізілетін
мәндер өз ретімен орналасқан айнымалылар типтеріне (І, J. К) сәйкес келіп
тұр. Екінші нұсқа коды 10 болып келетін қате бар екенін айтады, себебі real
типтес 1 айнымалысы үшін char типіндегі мән енгізіліп отыр.
Егер енгізу пернетақта арқылы емес, дискіден немесе файлдан жүзеге
асырылса, онда жақша ішіне алдымен файл аты жазылады.
READ (FN, аl, а2 ... ап);
READLN (FN, аl, а2, ... , ап);
READLN (FN);
Мұндағы FN - енігізілетін мәндер жазылған дискідегі файлдың аты; а1-
айнымалылар идентификаторлары, файлдарда да мәндер бір қатардан немесе
келесі қатардан оқыла береді, сол себепті мұнда да жоғарыда көрсетілген
операторлардың үш түрі қолданылады. Файлдағы мәліметтер де бір-бірінен бос
орын немесе енгізу пернесін басу арқылы бөлінуі тиіс, яғни файлға
енгізілгеннен кейін _, ал енгізу соңында Enter пернесі басылады.
Файлдардан мәлімет енгізу мысалдары кейінірек қарастырылады.
READ операторы кез келген сандармен, символдармен және сөз
тіркестерімен жұмыс атқара алады.
Сонымен, параметрлердің сандық мәндері бір - бірінен бос орын арқылы
ажыратылып жазылады. Мәндерді беріп болдық дегенді білдіру үшін Enter
(енгізу) пернесі басылады. Мысалы, енгізу операторы READ (А,В,С); түрінде
берілсе, парметрлерге мәндер былай беріледі: 5 _ 6.2 _ 4.5 Enter. Бұл
жағдайда
А=5, В=6.2, С=4.5 мәндер қабылдайды. Осы мәндер арқылы программа орындалып
болған соң, басқа мәндер үшін программаны қайталау қажет болса, онда
программа басынан бастап қайта орындау қажет.
Бүтін айнымалыларға бүтін, нақты айнымалыларға нақты мәндер берілуі
қажет.
Айнымалы сипатталғанда нақты ретінде көрсетілсе, оған нақты да, бүтін
де мән беруге болады, себебі нақты сан құрамына бүтін сан енеді. Ал машина
өзі бүтін санды нақты сан түріне келтіріп алады.
Мысалы:
VAR
А, В: REAL;
BEGIN
READ (А, В);
...
END.
түрінде беріліп А,В айнымалылары үшін 4 5 Enter орындалса, онда машина
оларды А= 4.0, В=5.0 түрінде қабылдайды.
Сандар арасында бір немесе бірнеше бос орын қалдыруға болады, себебі
сан енгізілгенде бос орын есепке алынбайды.
Мәндерді енгізгенде мән енгізілген жолдан келесі жаңа жолға өту үшін
параметрсіз немесе параметрге сәйкес READLN; READLN (аl, а2, ... ,аn);
операторларын пайдалану қажет. Сонымен, READ (аl, а2,...,an); READLN;
операторларының орнына бір ғана READLN (аl, а2,...,an) операторын
пайдалануға болады.
Символдық деректерді пернетақтадан енгізу READ (READLN) операторы
арқылы жүргізіледі, оларды енгізудің төмендегідей ерекшеліктері бар.
1. Бос орын таңбасы - '_' Паскаль тілінде символ орнына жүретіндіктен,
символдық айнымалылардың мәндері (символдар) бос орынсыз жазылады.
2. Бір айнымалыға бір ғана символ меншіктеледі. Мысал ретінде
төмендегі
программа үзіндісін қарастырайық:
... ... ... ... ... ..
VAR А, В, С: CHAR;
... ... ... ... ... ...
READ (А, В, С);
... ... ... ... ... ...
Бұл мысалдағы READ операторы орындаларда пернетақтадан мынадай мәндер SNR
енгізсек, онда айнымалылар өз орындарына сәйкес: A='S', B='N', C='R'
мәндерін қабылдайды. Егер мәндерді S_N_R түрінде берсек, онда айнымалылар
орындарына сәйкес A='S', В='_', С=' N' мәндерін қабылдайды да, соңғы екі
таңба ешқайда енгізілмейді.
3. Символдық айнымалыларды енгізудің тағы бір ерекшелігі - тек Eпter
пернесі басылса да, оны READ операторы бос орын символы ретіндe қабылдайды.
Мысалы, айнымалыларға: А=3, В=4, C='W', D='F' ,мәндерін меншіктеп, оны
экранға шығару қажет болса, онда оған мынадай программа жазу керек:
VARA, В: INTEGER;
С, D: CНAR;
BEGIN
WRlTELN (' А, В, С, D мәндерін енгізіндер :');
READ (А, В);
READ (С, D);
WRlTELN (А, В, С, D);
END.
Бұл программа орындалу кезінде пернетақтадан мынадай мәндер енгізілген
болса:
3 4
WF
онда А = 3, В = 4, С=' " D = 'W' болады, себебі 4 санынан соң басылған
Enter пернесі бос символ ретінде меншіктеледі де, соңғы F символы ешқайда
енгізілмейді. Программадағы айнымалылар мәнді дұрыс қабылдауы үшін екі
оператордың арасына параметрсіз және бір енгізу операторын мына түрде жазу
қажет:
READ (А, В);
READLN;
READ (С, D);
Осылай жазылған үш оператор А = 3, В = 4, С = ' W " D = 'Р' мәндерін дұрыс
меншіктеуді қамтамасыз етеді. Символдарды енгізу операторының алдына
міндетті турде READLN операторын қою қажет. Егер жоғарыдағы программа
үзіндісін десимволдарды енгізу операторын (READ (С. D);) 1- орынға шығарсақ
та, оның алдына READLN операторын қою қажет, яғни айтылған ерекшелікке
байланысты жоғарыдағы жолдарды былай да жазуға болады:
READLN;
READ (С, D);
READ (А, В);
Программада сандық және символдық мән қабылдайтын айнымалылар үшін
екі рет енгізу операторын жазудың да қажеті жоқ. Жоғарыдағы екі
оператор орнына READ (А, В, С, D) операторын ғана жазуға болады. Егер
READ (А, В, С, D) операторын орындауда айнымалыларға мәнді былай берсек:
45 31
KN
онда дисплей экранында 4531К көрінеді, демек А = 45, В = 31, С= ‘_’, D=
'К' болғаны, ал егер мәндер былай берілсе:
45 31 К N
Онда дисплейден 4531KN көрінеді, яғни осылай береді.
Readln операторы көмегімен пернетақтадан бір символ енгізіп оны экранның
келесі қатарына қайта шығаруды орындайтын testread программасының мәтіні
төменде келтірілген.
var сҺ: cҺar;
begin
writeln ('Символ енгізіндер: ');
writeln (сҺ,' символы енгізілді ');
write ('Enter пернесін басыңдар'); readln
end.
Егер осы программаның 'Символ енгізіндер:' деген хабарламасынан кейін
бір символ пернесін басып, оны босатпасақ, онда сол басылған символ бейнесі
экранға 127 рет шығады да, одан кейін тек тырсылдаған дыбыс қана естіледі.
Бұл 127 символ сақтай алатын пернетақта буферінің енгізілген таңбалармен
толып қалғанын көрсетеді.
Негізінде, перне басылғанда бірден екі код қалыптасады, оның алғашқысы
символ коды, ал екіншісі - кеңейтілу немесе сканерлеу коды. Алфавиттік-
цифрлық перне басылғанда, олардың символ коды пайдаланылады. Ал кеңейтілу
коды басқару пернелері (Ctrl, SҺift, Caps Lock, , , , , F1, F 2
т.б.) үшін өте маңызды. Бұлардың символ коды нөлге тең болып саналады да,
программаларда олардың тек сканерлеу коды пайдаланылады. Скарнерлеу кодын
пайдалану Турбо Паскаль программасының CRT модулінін Read Кеу функциясы
арқылы жүзеге асырылады. Символ енгізу кезінде бұл Функция курсорды келесі
орынға жылжытпай, ол орынға кез келген символ бейнесін шығара алады. Келесі
testread2 программасы Read Кеу функциясын пайдаланып, кіші латын әріптерін
бас әріптерге түрлендіреді.
Uses CRT;
Var сҺ: cҺar;
Begin
Writeln ('Латын алфавитінің кіші әріптерін енгізіңдер (z-программадан
шығу). ');
Repeat
сҺ := Read Кеу;
write (Up Case( сҺ));
until сҺ ='z",
end.
Төмендегі кесте басқару пернелерің немесе олардың комбинацияларының
сканерлеу коды берілген.
Басылған пернелер Сканерлеу коды Басылған пернелер Сканерлеу коды
Ctrl+@Ctrl+3 3 PgDn 81
SҺift+Tab 15 lns 82
Alt+ 1..Alt+= 120..131 Del 83
Alt+Q ..Alt+P 16..25 Fl ..FI0 59..68
Alt+A ..Alt+L 30..38 SҺift+F 1..SҺift+F 84..93
Alt+Z ..Alt+M 44..50 10 94 ..103
Alt+Enter 28 Ctr1+Fl ..Ctrl+Fl0 О 104..113
Ноте 71 Alt+F 1..Alt+F 10 114
Ctrl+Home 119 Ctrl+PrintScreen 73
Ctrl+PgUp 132 PgUp Ctrl+ 115
77 75 116
End 79 Ctrl+ 117
80 Ctr1+End 118
Ctrl+PgDn
Төмендегі scan_codes программасы басылған пернелердың сканерлеу кодын
анықтауға арналған. Ол программамен жұмыс істеу барысында Сtгl + PrtSс
(принтерге экрандағы мәліметті шығару) немесе Ctr1+Alt+Del (ДОС-ты· қайта
жүктеу) пернелер комбинациясын басу керек емес, ал Ctr1+Break пернелерін
басу программа жұмысын тоқтатады.
Uses CRT;
Var сҺ: char;
Begin
Writeln ('Программа символ коды мен сканерлеу кодын анықтайды');
Wrіtеlп('Программа жұмысын тоқтату үшін Ctrl+Break пернелерін басыңдар');
repeat
wrіtеlп('Келесі перне: ');
сҺ: = Read Кеу;
writeln;
if cs #0 then
writeln ('Символдық перне. Огd (сҺ) = " Ord(ch))
else
begin
write (Басқару пернесі, символ коды: #0. ' );
сҺ : = Read Кеу;
writeln ('Сканерлеу коды: " Огd(сҺ));
end·,
until false;
end.
Бұл программа кейбір пернелерді басқанда, мысалы, F11 пернесін
басқанда еш нәрсе істемейді. Оның символдық және сканерлеу коды болғанмен,
Паскаль қолданатын DOS жүйесі компьютер пернелерінің кеңейтілмеген ескі
нұcқaсын пайдаланатындықтан (онда F11 болмаған), программа осындай нәтиже
береді.
4. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd of linе -
жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл Функция мәні
"жолдың соңы болды " немесе "мәндер беріліп болды" дегенді білдіретін Enter
пернесі басылғанда ғана ақиқат (TRUE) болады да,қалған жайғдайлардың
барлығында жалған (FALSE) болады. Бұл Функция көбінесе циклдік
операторларда пайдаланылады.
Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы
(процедурасы деп те айтылады) қолданылады:
WRІTE (аl, а2, ... ,an);
Мұндағы жақша ішінде жай айнымалылар немесе апострофтармен қоршалған
символдар тобы болуы мүмкін. Мысалы, егер B=17.15. болып, мына команда
орындалғанда:
WRlTE ('В мәні=', В);
экранда
В мәні = 1.715Е+Оl
деген сөз тіркесі көрінеді.
Шығарлатын мәндердің түрі айнымалылардың типі арқылы анықталады, олар
iпteger, real, Вооlеап (true, false), char, striпg сияқты типтер түрінде
беріле береді.
Шығарылатын параметрлер бір-бірімен үтір арқылы ажыратылыn, WRITE
түйінді сөзінен соң жай жақша ішіне жазылады.
Шығару операторында жақша ішінде қағазға немесе экранға шығарлатын
мәнінің пішімін- оның алатын орнын, яғни енін толық көрсетуге болады. Бүтін
санды оның енін көрсете отырып экранға шығаруға болады, мысалы: b
айнымалысының бүтін түрдегі мәнін көрсету
WRITE (b: n) немесе WRITE (b: 5)
операторы арқылы жүзеге асырылады. Мұндағы b - айнымалының атауы: n - мәні
бүтін сан болып келетін тұрақты түрінде берілген орын саны, оны бірден
бүтін санмен де жазуға болады. Егер b: 5 пішімі беріліп, ал b =56 ( екі
немесе үш разрядты сан) болса, онда беске дейінгі толтырылмаған орындарға
сол жақ шетте бос орын қалдырылады. В = 56 мәні үшін WRІTE (b: 5) операторы
экранға
56
тіркесін шығарады.
Нақты сандар ушін оның жалпы енін, сонан соң бөлшегі алатын орынды
көрсету қажет, сол себепті аралас сандарды бейнелеуде оның ені қос нүктемен
бөлінген екі бүтін сан арқылы жазылады. Сонымең нақты сан үшін пішім екі
саннан тұрады:
І- санға берілетін барлық орын.
ІІ- үтірден кейін алынатын бөлшек цифрлар саны.
Мынадай оператор берілсін делік: WRІTE (Ү: 5: 2)
Мұндағы 5 - нәтижеге берілген барлық орын, 2 үтіпден соңғы бөлшек бөлігіне
берілетін орындар саны. Мысалы, С= - 145.7865 болғанда WRITE (С: 8: 3)
операторы экранға - 145.786 мәнін шығарады, мұндағы жалпы орындар саны - 8,
ал бөлшек үш санмен бейнеленетіндіктен соңғы бір цифр жазылмай қалып отыр.
С айнымалысының берілген мәнін толық бейнелеу үшін WRITE (С: 9: 4)
операторын жазу керек еді. Жалпы нақты санды экранда бейнелеу операторының
жазылу түрі:
WRITE (С: п: т);
мұндағы n - С мәнінің барлығына берілген орын саны; m - С мәнінің бөлшек
бөлігіне белгіленген орын саны. n - нің мәні таңбаны, бүтін мен бөлшекті
бөлетін нүктені және бүтін сандар орнын бөлшек қосып көрсететіндіктен, ол n
m +3 болуы тиіс. Экранға шығаратын сандардың арасында қалдырылатын бос
орын санын да осы жолмен көрсетуге болады. Ол үшін екі апостроф жазып, одан
кейін қос нүктемен бөлінген бүтін сан арқылы қалдырылатын бос орындар санын
өрнектейміз, мысалы:
WRITE (b: 8: 3,":4, с: 12: 4);
мұндағы 4 - b мен с сандарының арасындағы бос орын саны.
Егер нақты сан үшін: WRIТЕ ('Ү =', Ү: 8: 3) пішімі берілсе, ал оның
мәні Ү=1.76 болса, экраннан Ү=1.760 тіркесі көрінеді.
Егер операторда пішім көрсетілмесе, онда нәтuжеде сол сан
экспоненциальды түрде экранға шығады.
Паскаль тілінде параметрсіз шығару операторы WRITELN жаңа жолға өту
үшін қолданылады.
Егер WRITELN (аl, а2, ...,an); операторы қолданылса, онда аl, а2, ...
,аn. мәндерін экранға шығарған соң курсор келесі жолға көшеді.
WRITE операторын түсініктеме беруге қолдануға болады. Мысалы:
WRITE (' А, В, С мәндерін енгізіндер: ');
READ (А, В, С);
Мұндайда экранға:
А, В, С мәндерін енігізіндер:
түсініктеме сөзі шығады, сонан кейін үш сандық мән енгізілуі тиіс.
Мысалы,
WRITE (' Т = ' , N: 3,": 4, ,М = ' , М: 4: 2)
болса, онда Т-ның үш орынды мәнінен соң 4 бос орын қалады да, одан соң М-
нің нақты мәні жазылады.
Айталық, х= 7, ү= 15, Z= 11, ал R= 450,08 болсын, оларды экранға
шығарудың әр түрш тәсілдерін мына кестеде көрсетілген.
Оператордың жазылуы Экрандағы нәтижесі
Write (х, у); 7 15
Write (Х'_,_' ,у); 7_,_ 15
Write ('Х =',Х); Х=7
Write (Х, ": 3, Z); 7 11
Write (Х+Ү =',Х+Ү); Х+Ү=22
Write (Z,'- соңы); ІІ-соңы
Write ('бітті'); бітті
Write (R); 4.5008Е+02
Блок схема құрылымы.
Бұл программада енпзу - шығару операторларына блок – схема құрылған.
Бұл блок - схемада n таңбасын студенттер санына өзгертеміз. With -
оператор көмегімен студенттердің аты жөнін; тобын, туғaн жылын және әрбір
пән бойынша алған бағаларын енгіземіз. Fоr оператор көмегімен студентердің
әрбір пән бойынша алған бағаларының орташа бағасын есептейміз және олардың
жауабын шығарамыз.
Программаны іске қосыңыздар. Программа А:\ Student. ехе орналасқан.
Сіздің алдыңыздан меню терезесі көрінеді. Көрінген меню терезесінен керек
жолды таңдап алып, (бағыттаушылар жоғары, төмен) таңдауды растау үшін
"Enter" пернесін басыңыз.
Егер сіз Программа туралы жолды таңдасаңыз, онда сіз Авторы кім
екенін және программа аты туралы ақпарат көресіз. Жалғастыру үшін "Enter"
пернесін басыңыз.
Егер сіз "Енгізу" жолын тандасаныз, онда алдыңыздан "Turbo Pascаl -
дағы енгізу және шығару операторлар программасы" - на хабарлама шығады.
Студенттердің санның енгізіңіз, "Enter" пернесін басыңыз, содан соң
студенттердің аты - жөнің енгізіңіз, "Enter" пернесін басыңыз, сонан кейін
олардың тобын енгізіңіз, "Enter" пернесін басыңыз және туған жылын
енгізіңіз, "Enter" пернесін басыңыз,осылардан кейін студенттердің әрбір пән
бойынша алған бағаларын енгізіңіз, "Enter" пернесін басқаннан кейін
бастапқы меню терезесіне шығасыз.
Енгізілетін мәндерді енгізіп болғаннан кейін Жауабы жолын таңдасаңыз
экранға программа нәтижесі шығады.
Шығу жолын тандасаңыз программадан шығасыз .
Программа.
{Приложение А. Листинг модуля Student.pas}
{О каждом студенте известна следующая информация
~ Ф.и.о.
~ Год рождения
~ Группа
~ Оценка по математики
~ Оценка по истори
~ Оценка по в.т.
~ Оценка по статистики
Сформируйте таблицу, записав в нее всю известную о қаждом студенте и его
средний балл. Подсчитайте средний балл по каждому предмету выведите таблицу
на экран дисплея в алфотвитном порядке.}
{Автор: Смайлова Нұрбану}
{Подключения модуля CRT.}
Uses CRT;
{Описания записи о каждом студенте. }
type
tablica=record
паmе: string[15];
group: string[6];
god: integer;
vt, history, stat, math: byte;
sr bal:real;
end;
var
i,j, n:integer;a:tablica;
{Таблица- массив записей.}
mas: array [1 .. 30] of tablica;
{Переменные для сравнение средних значении пo предметам. }
s vt, s history, s stat, s math: real;
begin
{Bвод количества n записи.}
write('n='); readln(n);
{Ввод элементов в массив записей.}
for і:=l to n do
with mas [і] do
begin
writeln (' і=', і: 4);
writeln ('FIO');
readln (nаmе);
writeln('GROUP') ;
readln (group);
writeln ('Year');
readln (god);
writeln ('Otsenki');
readln(vt,history,stat,math);
sr_bal:=(vt+history+stat+math)4;
end;
{Вычисление средних значении по каждому предмету. }
s vt:=0; s history:=0; s stat:=0; s math:=0;
for і:=l to n do
begin
s vt:=s vt+mas[i] .vt;
s history:=s history+mas[i] .history;
s stat:=s stat+mas[i] .stat;
s -math:=s -math+mas[i] .math;
end;
s vt:=s vtn;
s history:=s historyn;
s stat:=s statn;
s math:=s mathn;
{Упорядочение массива записей в алфавитном порядке фамилии.}
for і:=l to п-l do
for j:=l to п-l do
if mas[j] .namemas[j+l] .пате then
begin a:=mas[j];
та s [j ] :=та s [j +1] ;
mas[j+l] :=а;
end;
{Вывод результатов.}
clrscr;
write(' ':8,'FIO , , .. 4) .,•
wr і te (' ': 2, 'GROUP ');
write(' ':l,'Year ',":2);
write (": 3, 'OTSENKI', '
writeln('Sr.Bal') ;
for і:=l to n do
with rnas[i] do
begin
write(narne:15);
write (' ',group: 8);
write(' ',god:4);
-- _. о. _
writeln(' ',vt:з,' ',history:3,' ',stat:3,’math : 3,' ', sr_bаl : 5 :
2) ;
end;
writeln (' , ' Sr. bа1: ' " ': 24, s_vt: 3 : 1, ' ',s_history:3:1, ,
',s_stat:3:1, S rnath:3:1);
end.
Программаның нәтижеcі.
Енгізілген мәндер:
1. n = 3
2. і= 1 Ф.И.О.:Бисенов Нүргелді
3. Группа: 11-122
4. Год рождения: 1988
5. Отценки: 5454
6. і= 2 Ф.И.О. : Бақтығалиев Бекнұр
7. Группа: 11-122
8. Год рождения: 1989
9. Отценки: 5 4 5 5
10.і = 1 Ф.И.О.: Амангелді Медет
11.группа: 11-122
12.Год рождения: 1989
13.0тценки: 5 444
Енгізілген мәндердің нәтижесі:
Ф.И.О. Группа Год рождения Отценки
Среднии бал
Бақтығалиев Бекнұр 11-122 1989 5 4 5 5
4.75
Бисенов Нүргелді 11-122 1988 5 4 5 4
4.50
Амангелді Медет 11-122 1989 5 4 4 4
4.25
Средний бал: 5.0 4.0 4.7 4.3
Файлдармен жұмыс
1 Файлдардың түрлері
Осыған дейін, біз мәліметтерді пернетақтадан негізіп, оларды экранға
шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында
сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кетеьін.
Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге
пайдалану үшін немесе жңа мәліметтерді алу үшін, оларды есте сақтап қалу
керек. Ондай тәсілдердің ьірі мынадай: нәтиже экранға шыққан соң қолға
қаламсап (қарындаш) және бір бет қағаз алып, бұл мәліметтерді жазып алу.
“Дербес компьютерлер” дәуірінің басында оларды “үй тапсырмасы” деп атаған
да, шын мәнінде солай болған. Қазіргі кездегі дербес компьютерлердің
барлығы ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған.
Қызметтеріне қарай оларды: магниттік ақпарат тасымалдаушылар немесе
жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы тасымалдаушыларда
ұйымдастырылады, бұл жағдайда біз алған нәтижелерді солардың жадында
сақтаймыз. Барлық мәліметтер осы тасымалдаушыларда файлдар түрінде
сақталады.
Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы
жадының ат қойылған аймағы (бөлігі).
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
қатар ақпаратты сақтау деген мағынаны білдіреді.
Borland Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға
болады:
a) файлдың типі бойынша (оның логикалық құрылымына )
b) файл элементтеріне қатынау тәсілі бойынша
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:
← мәтіндік файл;
← типтік файл;
← типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
← Тікелей қатынау файлдары
← Кезекпен қатынау файлдары
Олардың айырмашылығы тікелей қатынау файлдарында арнайы
процедуралар және функцияларды пайдалана отырып, мәліметтерді, олардың
файлдағы орнына тәуелсіз, оқуға немесе жазуға болады, ал кезекпен қатынау
файлында оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның
алдындағы мәліметтердің барлығын оқуға тура келеді. Мәтіндік файлдар
кезекпен қатынау файлдарына жатады, ал типтік файлдар тікелей қатынау
файлдарыа жатады.
2. Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив.
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы
мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес,
сан, әріп және басқа пернетақта символдары түрінде (ASCII кодында)
беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады, оңай өзгереді
және оларды кез келген мәтіндік редактордың, соның ішінде Borland Pascal
ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей 2.1.2.-ні
қара, мәтінді теру кезінде жаңа жолды енгізу үшін “Enter” пернесін басу
керек, осы кезде арнайы код гинерацияланады—ол жол соңы коды, ал файлды
сыртқы сақтау құрылғысына жазған кезде де арнайы код гинерацияланады—ол
файл соңы коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп,
оларды “mayFile.in” атты мәтіндік типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
1) пернетақтадан мәліметтерді енгізу
2) оларды “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` ... жалғасы
Кіріспе
1. Turbo Pascal бағдарламалау тілінің негізі, даму тенденциясы;
1.1 Turbo Pascal бағдарламалау тілі, негізгі элементтері, құрылымы;
2.1 Файлдардың түрлері
2.1.1 Мәтіндік файлға мәліметтер жазу. Бір өлшемді массив.
2.1.2 Мәтіндік файлға мәліметтер жазу. Екі өлшемді массив
2.1.3 Мәтiндiк файлдан мәлiметтердi оқу
2.1.4 Мәтiндiк файлдан мэлiметтердi оку (жалғасы)
2.1.5 Типті файл. Типті файлдарға мәліметті жазу
2.1.6 Типті файлдан мәліметтерді оқу
2.1.7Әртүрлі базалық типтерді біріктіру. Жазба типі
2.1.8 Сыртқы кітапханалар. Модульдер
2.1.9 Модуль құрылымы
2.2 Turbo Pascal-дағы жолдық қатарлар
2.2.1 Жолдық қатарлар
2.2.2 Жолдық процедуралар мен фукнциялар
2.2.3 Жолдық қатарларға программа құру
2.2.4 Жолдық қатарлар мен амалдар орындау
2.3 Turbo Pascal-дағы көмекші бағдарламалар
2.3.1КӨМЕКШІ БАҒДАРЛАМАЛАР ЖӘНЕ ОЛАРДЫҢ ҚҰРЫЛЫМЫ.
2.3.2 Көмекші программа құрылымы
2.3.3 Процедуралар. Процедураның құрылымы
2.4 Қайталану командалары
FOR циклдік операторы ( Үшін циклі ).
WHILI ... DO ЦИКЛДІК ( ӘЗІРШЕ ЦИКЛІ ).
REPEAT ... UNTIL ЦИКЛДІК ОПЕРАТОРЫ ( Дейін ).
3. Міндетті орта білім беру мектептеріндегі 7-11 сыныптардағы геометриялық
курсының есептерін, Turbo Pascal көмегімен программалау;
3.1 Геометриялық есептердің Turbo Pascal бағдарламалау тілі көмегімен
шешілуі;
Қорытынды
Қолданылған әдебиеттер тізімі
КІРІСПЕ
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның тұңғыш
нұсқасын 1970 жылы швейцрия физигі Niklaus Wirth ұсынған.Автор тілді
алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез
Паскальдің құрметіне Паскаль деп атап , тіл атауын үнемі бас әріппен
жазылуын сұраған.Кейінен тілдің көптеген нұсқалары жарық көреді.
Turbo Pascal – оның тұңғыш нұсқасын жоғарғы деңгейлі программалау
жүйесі . 1970 жылы швейцрия физигі Niklaus Wirth ұсынған. Тілді алғашқы
арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез
Паскальдің құрметіне автор деп паскаліия ғалымы Никлаус Вирт жасаған
Паскаль программалау тілінен тарайды. Қарапайым Паскальді өңдеудегі А.
Хейлсбергтің еңбегінің нәтижесінде Turbo Pascal қазіргі заман талабына
сай, қуатты программалау жүйесіне айналды. Turbo Pascal – жоғарғы деңгейлі
программалау жүйесі. Оның логикалық құрылымы әр түрлі есептерді дәл шешуге
көмегін тигізеді. Бейсик тілі сияқты, Паскаль оқып-үйренуге жеңіл, түрлі
салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде
көп тараған тілдердің бірі. Оның ыңғайлылығы:
• тілге дамытылған берілгендер типтері енгізілген. Олар өңделетін
берілгендер элементтерін толық сәйкестендіріп сипаттауға және жаңа
берілгендер типтерін енгізуге мүмкіндік береді;
• мұнда кішігірім жеңіл программалармен бірге күрделі құрылымды
программаларды құру да мүмкін;
• тіл синтаксисі қиын емес; нұсқаулардың (операторлардың) саны
мүмкіндігінше азайтылған, т.б.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан
бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Жоғарғы деңгейлі программалау тілдерінің бірі − Паскаль. Қазіргі кезде
Паскаль тілінің кеңейтілген ондаған диалектісі бар, оның ішінде IBM PC-ге
үйлесімді дербес компьютерлер жұмыс істей алатын Турбо Паскаль
диалектісінің варианттары да жеткілікті.
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап,
күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.
Паскаль тілі бұрын құрылған (Фортран, Алгол және т.б.) программалау
тілдерінен маңызды ерекшелігі ол құрылымдық программалау идеясын өмірге
біртіндеп енгізу. Бұл тілде жазылған программа компьютерде орындалу
барысында алдымен трансляцияланады (машина тiлiне аударылады), объектiк
программаға түрлендіріледі де содан кейiн ғана орындалады. Осы сәтте
компьютерде программаның екі нұсқacы болады, оның бiрiншiсi - алгоритмдiк
тiлдегi алғашқы түпнұсқасы, ал екiншiсi - объектiк кодтағы жазылған
программа. Есеп нәтижесін машиналық кодта жазылған программа арқылы аламыз,
ал программаны түзету қажет болғанда, оның алгоритмдiк тiлде жазылған
алғашқы нұcқacы өңделеді.
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын, кең
таралған стандартты оқу тіліне айналды.
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
барысында компьютерге бастапқы мәліметтер енгізіледі, оларды қалай
өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға
шығарылатыны айтылады.
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды теру,
түзету арнайы мәтіндік редакторлар атқарылады. Программа алдындағы азат жол
немесе бос орын саны өз қалауымызша алынады. Бір қатарда бірнеше команда
немесе оператор орналаса алады, олар бір - бірімен нүктелі үтір (;) арқылы
ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, ол
түзету жеңіл, әрі оқуға ыңғайлы.
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеші бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
табылады. Орындалатын іс - әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, бірақ атқарылатын операторлар (командалар)
тізбегі жеке - жеке жолдарға жазылып біткен соң end түйінді сөзімен
аяқталады.
1. TURBO PASCAL БАҒДАРЛАМАЛАУ ТІЛІНІҢ НЕГІЗІ, ДАМУ ТЕНДЕНЦИЯСЫ
Паскаль тiлiн 1968-1971 жылдары швейцариялык. ғалым Никлаус Вирт оқып
- үйренуге қолайлы программалау тілі ретінде ұсынған болатын. Бұл тілдің
стандарты кейiнiрек бекiтiлдi, ол сол кездері кең таралған АЛГОЛ, ФОРТРАН,
БЕЙСИК тiлдерiне қарағанда жетiлдiрiлген, жұмыс iстeyгe ыңғайлы тiл болды.
Паскаль тiлi өзінің қарапайымдылығының және тиiмдiлiгiнің арқасында дүние
жүзіне тез таралды. Қазiргi кезде барлық дербес компьютерлер осы тілде
жұмыс iстей алады. Паскаль тiлiнде жазылған программаның дұрыстығын
компьютерде тексеру және жiберiлген қатенi тузету оңай.
Бұл тілде жазылған программа компьютерде орындалу барысында алдымен
трансляцияланады (машина тiлiне аударылады), объектiк программаға
түрлендіріледі де содан кейiн ғана орындалады. Осы сәтте компьютерде
программаның екі нұсқacы болады, оның бiрiншiсi - алгоритмдiк тiлдегi
алғашқы түпнұсқасы, ал екiншiсi - объектiк кодтағы жазылған программа. Есеп
нәтижесін машиналық кодта жазылған программа арқылы аламыз, ал программаны
түзету қажет болғанда, оның алгоритмдiк тiлде жазылған алғашқы нұcқacы
өңделеді.
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын, кең
таралған стандартты оқу тіліне айналды.
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
барысында компьютерге бастапқы мәліметтер енгізіледі, оларды қалай
өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға
шығарылатыны айтылады.
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды теру,
түзету арнайы мәтіндік редакторлар атқарылады. Программа алдындағы азат жол
немесе бос орын саны өз қалауымызша алынады. Бір қатарда бірнеше команда
немесе оператор орналаса алады, олар бір - бірімен нүктелі үтір (;) арқылы
ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, ол
түзету жеңіл, әрі оқуға ыңғайлы.
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеші бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
табылады. Орындалатын іс - әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, бірақ атқарылатын операторлар (командалар)
тізбегі жеке - жеке жолдарға жазылып біткен соң end түйінді сөзімен
аяқталады.
Program BASTAU:
Сипаттау бөлімі
Begin
Операторлар бөлімі
End
Операторлар бөлімінде командалар ретімен орналасады. Олардың кейбірі
шартқа байланысты атқарылса, ал кейбір қайталанатын цикл немесе қосымша
программа түрінде орындалады. Операторлар бөлімінде орнатылатын негізгі
әрекеттерді қарастырайық.
Деректер - сан мәндері мен мәтін түріндегі сөз тіркесін мән ретінде
қабылдай алатын тұрақтылар, айнымалылар т.б. осы тәрізді құрылымдар немесе
солардың адрестері.
Дерек енгізу - бастапқы деректерді пернетақтадан, дискіден немесе
еңгізу - шығару порттарынан еңгізу арқылы жүзеге асады.
Операциялар немесе амалдар - берілген және есептелген мәндердің
меншіктеу, соларды өңдеу, салыстыру операцияларын орындайды.
Шартты түрде атқарьшу белгілі бір көрсетілген шарттың орындалуына
байланысты, командалар жиыны атқарылады, әйтпесе олар аттап өтіледі немесе
басқа командалар жиыны орындалады.
Цикл - белгілі бір шарттар орындалған жағдайда көрсетілген командалар
жиынын бірнеше рет қайталанып атқарылады. Қайталау саны бүтін санмен
беріледі.
Көмекші программа - алдын ала қандай да бір атаумен атымен атымен
аталған командалар тобы. Олар программаның кез келген жерінен оның атауын
көрсету арқылы шақырылып атқарыла береді.
Түсініктеме - программа жолдары соңында немесе оның түйінді сөздері
арасында қазақша (орысша) түсінік беретін пішінді жақшаға алынып жазылған
сөз тіркесітері. Олар программа операторларының орындалуына ешқандай әсер
етпейді.
Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері
Паскаль тіліндегі алдын ала келісілген типтердің біріне тән болуы тиіс.
Мәліметтердің немесе шамалардың типі деп, олардың қабылдай алатын
мәндерінің және олармен орындауға болатын амалдардың жиының анықтауды
айтады, яғни тип дегеніміз - шамалардың қабылдайтын мәндеріне берілетін
сипаттама.
Мәліметтердің әр типі тек өзіне ғана сәйкес келетін операциялар жиынын
орындата алады. Мысалы, 1 мен 2 мәндері бүтін сандар типіне жатады, оларды
қосуға, азайтуға, көбейтуге және бөлуге болады.АJI, ІВМ және РС мәндері
сөз тіркесі типіне жатады, бұларды біріктіріп жазуға ғана болады (ІВМ
РС). Қосуға, азайтуға, көбейтуге, бөлуге болмайды. Кез келген тұрақты,
айнымалы функция немесе өрнек өзіне тән бір типпен ғана сипатталады.
Паскаль тілінде шамалардың типін көрсету міндетті болып табылады. Сондықтан
программа алдына оның сипаттау бөлімінде пайдаланылатын барлық шама
атаулары және оның типтері көрсетілуі қажет.
Паскаль тілінде пайдаланылатын барлық типтер скалярлық (қарапайым)
және құрылымдық (структуралық) болып үлкен екі топқа бөлінеді. Скалярлық
(қарапайым) типке шамалардың стандартты типі және жасанды тип
(тағайындалған) жатады. Стандартты типтерге:
• Бүтін - INTEGER;
• Нақты - REAL;
• Логикалық - BOOLEAN;
• Тіркестік - (STRING);
• Мәтіндік (ТЕХТ) тәрізді типтер жатады.
Құрылымдық типтері жиымдар - ARRAҮ, жазбалар - RECORD, жиындар - SET
және файлдар - FILE түрлеріне бөлінеді.
Бұлардан өзге типтер программаның типтері сипаттау бөлігінде анықталуы
қажет. Тұрақты сандардың типін олардың сыртқы пішініне қарап - ақ ажыратуға
болады, ал айнымалылар мен функциялар типтері программаның сипаттау
бөлімінде көрсетіледі.
Ол үшін type түйінді сөзі қолданылып, жазылу пішімін былай көрсетуге
болады:
Туре тип атауы =тип мәндері;
Логикалық шамалар екілік сандар жүйесіне сәйкес 1 және О деген
мәндерді ғана қабылдайды. Мұндағы 1 тексерілетін белгілі бір шарттың -
логикалық тұжырымның орындалатынын, яғни ақиқат екенін, ал О сол шарттың
орындалмайтынын - тұжырымның жалған екенін көрсетеді. Бұл екі мән
программада ағылшын тіліндегі айтылуына сәйкес true (1) және false (О)
болып жазылады.
Символдық шамалар апострофқа алынған бір символды ғана мән ретінде
қабылдай алады, мысалы, 'R','Л','%'тағы басқа. Бірақ әрбір таңбаны оның
кодына байланысты реттелген бүтін сандармен де өрнектеу мүмкіндігі бар.
Мәліметтердің қарапайым түрлерін стандартты типтер деп атау
қалыптасқан. Стандартты типтердің real түрінен өзгелері реттелген деп
аталады, өйткені оларды бүтін сан арқылы өрнектей отырып өсуі не кемуі
бойынша реттеп орналастыруға болады.
Стандартты типтер. Паскаль тілінде төмендегі қарапайым типтер
пайдаланылады:
• Бүтін типтер - SHORTINT, INTEGER, LONGINT, ВУТЕ, WORD;
• Нақты тип - REAL, SINGLE, DOUВLE, EXTENDED, СОМР;
• Логикалық - BOOLEAN;
• Симводық - CНAR;
• Ауқымды (диапозонды) тип;
• Саналатын тип;
Паскаль тілінің программасы блоктардан құрылады. қандай да бір блок
ішінде басқа да кішігірім блоктар орналасуы мүмкін. Блоктар екі бөлімнен
тұрады, олардың алғашқысы - мәліметтерді сипаттау бөлімі, ал екіншісі.- сол
мәліметтерді пайдаланып, әр түрлі іс - әрекеттерді (операцияларды,
амалдарды) атқару бөлімі.
Мәліметтерді сипаттау бөлімінің болуы міндетті емес, ал екінші негізгі
бөлімінің болуы міндетті. Басқа блокқа кірмейтін блок негізгі (глобальді)
блок болып саналады. Ал блок ішіндегі блок - жергілікті (локальді) блок деп
аталады.
Негізгі блок - негізгі программа блогы, сондықтан ол басқа блоктарға
кірмеуі тиіс. Жергілікті блоктарға процедуралар мен функциялар кіреді, олар
кейбір программаларда болмауы да мүмкін.
Программалардың негізг объектілері болып саналатын айнымалы, тұрақты
және oлapдың типтері орналасқан блогына байланысты басты немесе жергілікті
деп аталады. Программа объектілерінің де жұмыс істеу, ықпал ету аймағы сол
өздері орналасқан блокпен шектеледі. Блоктық құрылым программа мәтінін
тиянақты түрде қатесіз құрастыруға мүмкіндік береді.
Турбо Паскаль программасының тақырыбын (атауын) жазбай кетуге де
болады, бірақ жалпы Паскаль тілінің стандарты бойынша программада тақырып
болуы қажет.
Сонымен Паскаль тіліндегі кез келген программаның тақырыбы, одан кейін
сипаттау бөлімі және begin және end сөздерімен қоршалған операторлар бөлімі
болуы керек.Сипаттау бөлімі толық жағдайда,7 бөліктен тұрады, олар:
1) Программамен байланысатын кітапханалық модульдер атауларының
тізімі (ол uses түйінді сөзімен басталады);
2) Белгілерді (lаbеl) сипаттау;
3) Тұрақтыларды (const) сипаттау;
4) Мәліметтер типтерін (true) анықтау;
5) Айнымалыларды (var) сипатгау;
6) Процедураларды (procedure) сипатгау;
7) Функцияларды (function) сипатгау;
Берілген мәндерді айнымалыға беру ушін меншіктеу операторы пайдалануға
болады. Мысалы, А:= -15; ВЕС:=16,4; тағы басқалар. Бірақ бұл жағдайда
программада жалпылық қасиет болмайды, яғни ол тек көрсетілген мәндер үшін
ғана есептеу жұмысын жүргізіп, қалған кез - келген мәндер үшін дұрыс нәтиже
бермейді. Программаны дұрыс әрі әмбебап етіп жасay үшін айнымалылардың
мәндері өзгерілетін түрде жасалып oлap пернетақтадан енгізілуі қажет,
мұндайда программа айнымалының әр түрлі мәндері үшін дұрыс жұмыс атқара
алады.
Паскаль тілінде мәліметтерді енгізу және шығару үшін, яғни адам мен
компьютер арасында мәлімет алмасу мақсатында алдын ала анықталған Input,
Output файлдары қолданылады. Программа берілген мәндерді Input файлынан
алады да, алынған нәтижені Output файлына орналастырады. Стандартты енгізу
файлы болып пернетақта, ал шығару файлы болып дисплей экраны саналады. Ол
үшін енгізу операторы пайдаланылады.
Паскаль тілінде мәлімет енгізетін READ ( READ - ағылшынша оқy )
операторының жалпы турі (пішімі) төмендегідей:
READ (а1, а2 ... ап);
READLN (а1, а2, ... , ап);
READLN;
Мұндағы а1, а2, ..., аn - айнымалы атаулары, оларды енгізу
операторының параметрлері деп те атайды. Алғашқы оператор көрсетілген
айнымалылардың мәндері пернелер арқылы араларына бір бос орын қалдыру
арқылы енгізілген соң, курсорды келесі қатарға көшірмейді. Ал readln ( read
lіnе - қатарды оқу деген сөздің қысқартылуы) алдыңғы оператордағыдай
пернетақтадан мәндер енгізілгеннен кейін курсорды келесі қатарға көшіріп
жібереді. Соңғы қатарда жазылған параметрсіз оператор ешбір мән енгізбей,
тек курсорды келесі қатарға көшіруді ғана атқарады.
Енгізілетін айнымалылардың мәндері integer, reаl, char немесе stгіпg
(сөз тіркесі) типтеріне жатуы мүмкін. Логикалық айнымалылардын мәндері өз
типтеріне сәйкес Паскаль тілінің ережесі бойынша енгізіледі. Егер ол шарт
бұзылса (мысалы, а1 типі integer болса, ал енгізгенде сhаг типтес мән
терілсе), онда экранға енгізу-шығару қатесі шығады, оның пішімі мынадай
болып келеді:
ІО error ХХ,
мұндағы ХХ - бүтін сан түріндегі қaтенің сипатына сәйкес коды.
READ операторы орындалtанда параметрлер өздеріне сәйкес мәндері
қабылдайды, бұл міндет INPUT енгізу файлы арқылы жүзеге асырылады.
Параметрлер жаңа мән қабылдағанда, оларда бұрын орналасқан (жазылған) ескі
мән өшіріліп, орнына жаңа мәндер жазылып отырылады да, прогрaмма
параметрдің жаңа мәні бойынша жұмыс атқарады.
Мысал.
var
І: real;
J: integer;
К: cҺar;
begin
Read (І, J, К);
...
Программаға мынадай бастапқы мәндер енгізіледі 212.5 38 ‘п’. Осыдан
кейінгі келесі мәндер енгізілсін: 'л' 121.35 25.
Алғашқы нұсқасында мәлімет енгізу дұрыс орындалады, өйткені енгізілетін
мәндер өз ретімен орналасқан айнымалылар типтеріне (І, J. К) сәйкес келіп
тұр. Екінші нұсқа коды 10 болып келетін қате бар екенін айтады, себебі real
типтес 1 айнымалысы үшін char типіндегі мән енгізіліп отыр.
Егер енгізу пернетақта арқылы емес, дискіден немесе файлдан жүзеге
асырылса, онда жақша ішіне алдымен файл аты жазылады.
READ (FN, аl, а2 ... ап);
READLN (FN, аl, а2, ... , ап);
READLN (FN);
Мұндағы FN - енігізілетін мәндер жазылған дискідегі файлдың аты; а1-
айнымалылар идентификаторлары, файлдарда да мәндер бір қатардан немесе
келесі қатардан оқыла береді, сол себепті мұнда да жоғарыда көрсетілген
операторлардың үш түрі қолданылады. Файлдағы мәліметтер де бір-бірінен бос
орын немесе енгізу пернесін басу арқылы бөлінуі тиіс, яғни файлға
енгізілгеннен кейін _, ал енгізу соңында Enter пернесі басылады.
Файлдардан мәлімет енгізу мысалдары кейінірек қарастырылады.
READ операторы кез келген сандармен, символдармен және сөз
тіркестерімен жұмыс атқара алады.
Сонымен, параметрлердің сандық мәндері бір - бірінен бос орын арқылы
ажыратылып жазылады. Мәндерді беріп болдық дегенді білдіру үшін Enter
(енгізу) пернесі басылады. Мысалы, енгізу операторы READ (А,В,С); түрінде
берілсе, парметрлерге мәндер былай беріледі: 5 _ 6.2 _ 4.5 Enter. Бұл
жағдайда
А=5, В=6.2, С=4.5 мәндер қабылдайды. Осы мәндер арқылы программа орындалып
болған соң, басқа мәндер үшін программаны қайталау қажет болса, онда
программа басынан бастап қайта орындау қажет.
Бүтін айнымалыларға бүтін, нақты айнымалыларға нақты мәндер берілуі
қажет.
Айнымалы сипатталғанда нақты ретінде көрсетілсе, оған нақты да, бүтін
де мән беруге болады, себебі нақты сан құрамына бүтін сан енеді. Ал машина
өзі бүтін санды нақты сан түріне келтіріп алады.
Мысалы:
VAR
А, В: REAL;
BEGIN
READ (А, В);
...
END.
түрінде беріліп А,В айнымалылары үшін 4 5 Enter орындалса, онда машина
оларды А= 4.0, В=5.0 түрінде қабылдайды.
Сандар арасында бір немесе бірнеше бос орын қалдыруға болады, себебі
сан енгізілгенде бос орын есепке алынбайды.
Мәндерді енгізгенде мән енгізілген жолдан келесі жаңа жолға өту үшін
параметрсіз немесе параметрге сәйкес READLN; READLN (аl, а2, ... ,аn);
операторларын пайдалану қажет. Сонымен, READ (аl, а2,...,an); READLN;
операторларының орнына бір ғана READLN (аl, а2,...,an) операторын
пайдалануға болады.
Символдық деректерді пернетақтадан енгізу READ (READLN) операторы
арқылы жүргізіледі, оларды енгізудің төмендегідей ерекшеліктері бар.
1. Бос орын таңбасы - '_' Паскаль тілінде символ орнына жүретіндіктен,
символдық айнымалылардың мәндері (символдар) бос орынсыз жазылады.
2. Бір айнымалыға бір ғана символ меншіктеледі. Мысал ретінде
төмендегі
программа үзіндісін қарастырайық:
... ... ... ... ... ..
VAR А, В, С: CHAR;
... ... ... ... ... ...
READ (А, В, С);
... ... ... ... ... ...
Бұл мысалдағы READ операторы орындаларда пернетақтадан мынадай мәндер SNR
енгізсек, онда айнымалылар өз орындарына сәйкес: A='S', B='N', C='R'
мәндерін қабылдайды. Егер мәндерді S_N_R түрінде берсек, онда айнымалылар
орындарына сәйкес A='S', В='_', С=' N' мәндерін қабылдайды да, соңғы екі
таңба ешқайда енгізілмейді.
3. Символдық айнымалыларды енгізудің тағы бір ерекшелігі - тек Eпter
пернесі басылса да, оны READ операторы бос орын символы ретіндe қабылдайды.
Мысалы, айнымалыларға: А=3, В=4, C='W', D='F' ,мәндерін меншіктеп, оны
экранға шығару қажет болса, онда оған мынадай программа жазу керек:
VARA, В: INTEGER;
С, D: CНAR;
BEGIN
WRlTELN (' А, В, С, D мәндерін енгізіндер :');
READ (А, В);
READ (С, D);
WRlTELN (А, В, С, D);
END.
Бұл программа орындалу кезінде пернетақтадан мынадай мәндер енгізілген
болса:
3 4
WF
онда А = 3, В = 4, С=' " D = 'W' болады, себебі 4 санынан соң басылған
Enter пернесі бос символ ретінде меншіктеледі де, соңғы F символы ешқайда
енгізілмейді. Программадағы айнымалылар мәнді дұрыс қабылдауы үшін екі
оператордың арасына параметрсіз және бір енгізу операторын мына түрде жазу
қажет:
READ (А, В);
READLN;
READ (С, D);
Осылай жазылған үш оператор А = 3, В = 4, С = ' W " D = 'Р' мәндерін дұрыс
меншіктеуді қамтамасыз етеді. Символдарды енгізу операторының алдына
міндетті турде READLN операторын қою қажет. Егер жоғарыдағы программа
үзіндісін десимволдарды енгізу операторын (READ (С. D);) 1- орынға шығарсақ
та, оның алдына READLN операторын қою қажет, яғни айтылған ерекшелікке
байланысты жоғарыдағы жолдарды былай да жазуға болады:
READLN;
READ (С, D);
READ (А, В);
Программада сандық және символдық мән қабылдайтын айнымалылар үшін
екі рет енгізу операторын жазудың да қажеті жоқ. Жоғарыдағы екі
оператор орнына READ (А, В, С, D) операторын ғана жазуға болады. Егер
READ (А, В, С, D) операторын орындауда айнымалыларға мәнді былай берсек:
45 31
KN
онда дисплей экранында 4531К көрінеді, демек А = 45, В = 31, С= ‘_’, D=
'К' болғаны, ал егер мәндер былай берілсе:
45 31 К N
Онда дисплейден 4531KN көрінеді, яғни осылай береді.
Readln операторы көмегімен пернетақтадан бір символ енгізіп оны экранның
келесі қатарына қайта шығаруды орындайтын testread программасының мәтіні
төменде келтірілген.
var сҺ: cҺar;
begin
writeln ('Символ енгізіндер: ');
writeln (сҺ,' символы енгізілді ');
write ('Enter пернесін басыңдар'); readln
end.
Егер осы программаның 'Символ енгізіндер:' деген хабарламасынан кейін
бір символ пернесін басып, оны босатпасақ, онда сол басылған символ бейнесі
экранға 127 рет шығады да, одан кейін тек тырсылдаған дыбыс қана естіледі.
Бұл 127 символ сақтай алатын пернетақта буферінің енгізілген таңбалармен
толып қалғанын көрсетеді.
Негізінде, перне басылғанда бірден екі код қалыптасады, оның алғашқысы
символ коды, ал екіншісі - кеңейтілу немесе сканерлеу коды. Алфавиттік-
цифрлық перне басылғанда, олардың символ коды пайдаланылады. Ал кеңейтілу
коды басқару пернелері (Ctrl, SҺift, Caps Lock, , , , , F1, F 2
т.б.) үшін өте маңызды. Бұлардың символ коды нөлге тең болып саналады да,
программаларда олардың тек сканерлеу коды пайдаланылады. Скарнерлеу кодын
пайдалану Турбо Паскаль программасының CRT модулінін Read Кеу функциясы
арқылы жүзеге асырылады. Символ енгізу кезінде бұл Функция курсорды келесі
орынға жылжытпай, ол орынға кез келген символ бейнесін шығара алады. Келесі
testread2 программасы Read Кеу функциясын пайдаланып, кіші латын әріптерін
бас әріптерге түрлендіреді.
Uses CRT;
Var сҺ: cҺar;
Begin
Writeln ('Латын алфавитінің кіші әріптерін енгізіңдер (z-программадан
шығу). ');
Repeat
сҺ := Read Кеу;
write (Up Case( сҺ));
until сҺ ='z",
end.
Төмендегі кесте басқару пернелерің немесе олардың комбинацияларының
сканерлеу коды берілген.
Басылған пернелер Сканерлеу коды Басылған пернелер Сканерлеу коды
Ctrl+@Ctrl+3 3 PgDn 81
SҺift+Tab 15 lns 82
Alt+ 1..Alt+= 120..131 Del 83
Alt+Q ..Alt+P 16..25 Fl ..FI0 59..68
Alt+A ..Alt+L 30..38 SҺift+F 1..SҺift+F 84..93
Alt+Z ..Alt+M 44..50 10 94 ..103
Alt+Enter 28 Ctr1+Fl ..Ctrl+Fl0 О 104..113
Ноте 71 Alt+F 1..Alt+F 10 114
Ctrl+Home 119 Ctrl+PrintScreen 73
Ctrl+PgUp 132 PgUp Ctrl+ 115
77 75 116
End 79 Ctrl+ 117
80 Ctr1+End 118
Ctrl+PgDn
Төмендегі scan_codes программасы басылған пернелердың сканерлеу кодын
анықтауға арналған. Ол программамен жұмыс істеу барысында Сtгl + PrtSс
(принтерге экрандағы мәліметті шығару) немесе Ctr1+Alt+Del (ДОС-ты· қайта
жүктеу) пернелер комбинациясын басу керек емес, ал Ctr1+Break пернелерін
басу программа жұмысын тоқтатады.
Uses CRT;
Var сҺ: char;
Begin
Writeln ('Программа символ коды мен сканерлеу кодын анықтайды');
Wrіtеlп('Программа жұмысын тоқтату үшін Ctrl+Break пернелерін басыңдар');
repeat
wrіtеlп('Келесі перне: ');
сҺ: = Read Кеу;
writeln;
if cs #0 then
writeln ('Символдық перне. Огd (сҺ) = " Ord(ch))
else
begin
write (Басқару пернесі, символ коды: #0. ' );
сҺ : = Read Кеу;
writeln ('Сканерлеу коды: " Огd(сҺ));
end·,
until false;
end.
Бұл программа кейбір пернелерді басқанда, мысалы, F11 пернесін
басқанда еш нәрсе істемейді. Оның символдық және сканерлеу коды болғанмен,
Паскаль қолданатын DOS жүйесі компьютер пернелерінің кеңейтілмеген ескі
нұcқaсын пайдаланатындықтан (онда F11 болмаған), программа осындай нәтиже
береді.
4. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd of linе -
жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл Функция мәні
"жолдың соңы болды " немесе "мәндер беріліп болды" дегенді білдіретін Enter
пернесі басылғанда ғана ақиқат (TRUE) болады да,қалған жайғдайлардың
барлығында жалған (FALSE) болады. Бұл Функция көбінесе циклдік
операторларда пайдаланылады.
Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы
(процедурасы деп те айтылады) қолданылады:
WRІTE (аl, а2, ... ,an);
Мұндағы жақша ішінде жай айнымалылар немесе апострофтармен қоршалған
символдар тобы болуы мүмкін. Мысалы, егер B=17.15. болып, мына команда
орындалғанда:
WRlTE ('В мәні=', В);
экранда
В мәні = 1.715Е+Оl
деген сөз тіркесі көрінеді.
Шығарлатын мәндердің түрі айнымалылардың типі арқылы анықталады, олар
iпteger, real, Вооlеап (true, false), char, striпg сияқты типтер түрінде
беріле береді.
Шығарылатын параметрлер бір-бірімен үтір арқылы ажыратылыn, WRITE
түйінді сөзінен соң жай жақша ішіне жазылады.
Шығару операторында жақша ішінде қағазға немесе экранға шығарлатын
мәнінің пішімін- оның алатын орнын, яғни енін толық көрсетуге болады. Бүтін
санды оның енін көрсете отырып экранға шығаруға болады, мысалы: b
айнымалысының бүтін түрдегі мәнін көрсету
WRITE (b: n) немесе WRITE (b: 5)
операторы арқылы жүзеге асырылады. Мұндағы b - айнымалының атауы: n - мәні
бүтін сан болып келетін тұрақты түрінде берілген орын саны, оны бірден
бүтін санмен де жазуға болады. Егер b: 5 пішімі беріліп, ал b =56 ( екі
немесе үш разрядты сан) болса, онда беске дейінгі толтырылмаған орындарға
сол жақ шетте бос орын қалдырылады. В = 56 мәні үшін WRІTE (b: 5) операторы
экранға
56
тіркесін шығарады.
Нақты сандар ушін оның жалпы енін, сонан соң бөлшегі алатын орынды
көрсету қажет, сол себепті аралас сандарды бейнелеуде оның ені қос нүктемен
бөлінген екі бүтін сан арқылы жазылады. Сонымең нақты сан үшін пішім екі
саннан тұрады:
І- санға берілетін барлық орын.
ІІ- үтірден кейін алынатын бөлшек цифрлар саны.
Мынадай оператор берілсін делік: WRІTE (Ү: 5: 2)
Мұндағы 5 - нәтижеге берілген барлық орын, 2 үтіпден соңғы бөлшек бөлігіне
берілетін орындар саны. Мысалы, С= - 145.7865 болғанда WRITE (С: 8: 3)
операторы экранға - 145.786 мәнін шығарады, мұндағы жалпы орындар саны - 8,
ал бөлшек үш санмен бейнеленетіндіктен соңғы бір цифр жазылмай қалып отыр.
С айнымалысының берілген мәнін толық бейнелеу үшін WRITE (С: 9: 4)
операторын жазу керек еді. Жалпы нақты санды экранда бейнелеу операторының
жазылу түрі:
WRITE (С: п: т);
мұндағы n - С мәнінің барлығына берілген орын саны; m - С мәнінің бөлшек
бөлігіне белгіленген орын саны. n - нің мәні таңбаны, бүтін мен бөлшекті
бөлетін нүктені және бүтін сандар орнын бөлшек қосып көрсететіндіктен, ол n
m +3 болуы тиіс. Экранға шығаратын сандардың арасында қалдырылатын бос
орын санын да осы жолмен көрсетуге болады. Ол үшін екі апостроф жазып, одан
кейін қос нүктемен бөлінген бүтін сан арқылы қалдырылатын бос орындар санын
өрнектейміз, мысалы:
WRITE (b: 8: 3,":4, с: 12: 4);
мұндағы 4 - b мен с сандарының арасындағы бос орын саны.
Егер нақты сан үшін: WRIТЕ ('Ү =', Ү: 8: 3) пішімі берілсе, ал оның
мәні Ү=1.76 болса, экраннан Ү=1.760 тіркесі көрінеді.
Егер операторда пішім көрсетілмесе, онда нәтuжеде сол сан
экспоненциальды түрде экранға шығады.
Паскаль тілінде параметрсіз шығару операторы WRITELN жаңа жолға өту
үшін қолданылады.
Егер WRITELN (аl, а2, ...,an); операторы қолданылса, онда аl, а2, ...
,аn. мәндерін экранға шығарған соң курсор келесі жолға көшеді.
WRITE операторын түсініктеме беруге қолдануға болады. Мысалы:
WRITE (' А, В, С мәндерін енгізіндер: ');
READ (А, В, С);
Мұндайда экранға:
А, В, С мәндерін енігізіндер:
түсініктеме сөзі шығады, сонан кейін үш сандық мән енгізілуі тиіс.
Мысалы,
WRITE (' Т = ' , N: 3,": 4, ,М = ' , М: 4: 2)
болса, онда Т-ның үш орынды мәнінен соң 4 бос орын қалады да, одан соң М-
нің нақты мәні жазылады.
Айталық, х= 7, ү= 15, Z= 11, ал R= 450,08 болсын, оларды экранға
шығарудың әр түрш тәсілдерін мына кестеде көрсетілген.
Оператордың жазылуы Экрандағы нәтижесі
Write (х, у); 7 15
Write (Х'_,_' ,у); 7_,_ 15
Write ('Х =',Х); Х=7
Write (Х, ": 3, Z); 7 11
Write (Х+Ү =',Х+Ү); Х+Ү=22
Write (Z,'- соңы); ІІ-соңы
Write ('бітті'); бітті
Write (R); 4.5008Е+02
Блок схема құрылымы.
Бұл программада енпзу - шығару операторларына блок – схема құрылған.
Бұл блок - схемада n таңбасын студенттер санына өзгертеміз. With -
оператор көмегімен студенттердің аты жөнін; тобын, туғaн жылын және әрбір
пән бойынша алған бағаларын енгіземіз. Fоr оператор көмегімен студентердің
әрбір пән бойынша алған бағаларының орташа бағасын есептейміз және олардың
жауабын шығарамыз.
Программаны іске қосыңыздар. Программа А:\ Student. ехе орналасқан.
Сіздің алдыңыздан меню терезесі көрінеді. Көрінген меню терезесінен керек
жолды таңдап алып, (бағыттаушылар жоғары, төмен) таңдауды растау үшін
"Enter" пернесін басыңыз.
Егер сіз Программа туралы жолды таңдасаңыз, онда сіз Авторы кім
екенін және программа аты туралы ақпарат көресіз. Жалғастыру үшін "Enter"
пернесін басыңыз.
Егер сіз "Енгізу" жолын тандасаныз, онда алдыңыздан "Turbo Pascаl -
дағы енгізу және шығару операторлар программасы" - на хабарлама шығады.
Студенттердің санның енгізіңіз, "Enter" пернесін басыңыз, содан соң
студенттердің аты - жөнің енгізіңіз, "Enter" пернесін басыңыз, сонан кейін
олардың тобын енгізіңіз, "Enter" пернесін басыңыз және туған жылын
енгізіңіз, "Enter" пернесін басыңыз,осылардан кейін студенттердің әрбір пән
бойынша алған бағаларын енгізіңіз, "Enter" пернесін басқаннан кейін
бастапқы меню терезесіне шығасыз.
Енгізілетін мәндерді енгізіп болғаннан кейін Жауабы жолын таңдасаңыз
экранға программа нәтижесі шығады.
Шығу жолын тандасаңыз программадан шығасыз .
Программа.
{Приложение А. Листинг модуля Student.pas}
{О каждом студенте известна следующая информация
~ Ф.и.о.
~ Год рождения
~ Группа
~ Оценка по математики
~ Оценка по истори
~ Оценка по в.т.
~ Оценка по статистики
Сформируйте таблицу, записав в нее всю известную о қаждом студенте и его
средний балл. Подсчитайте средний балл по каждому предмету выведите таблицу
на экран дисплея в алфотвитном порядке.}
{Автор: Смайлова Нұрбану}
{Подключения модуля CRT.}
Uses CRT;
{Описания записи о каждом студенте. }
type
tablica=record
паmе: string[15];
group: string[6];
god: integer;
vt, history, stat, math: byte;
sr bal:real;
end;
var
i,j, n:integer;a:tablica;
{Таблица- массив записей.}
mas: array [1 .. 30] of tablica;
{Переменные для сравнение средних значении пo предметам. }
s vt, s history, s stat, s math: real;
begin
{Bвод количества n записи.}
write('n='); readln(n);
{Ввод элементов в массив записей.}
for і:=l to n do
with mas [і] do
begin
writeln (' і=', і: 4);
writeln ('FIO');
readln (nаmе);
writeln('GROUP') ;
readln (group);
writeln ('Year');
readln (god);
writeln ('Otsenki');
readln(vt,history,stat,math);
sr_bal:=(vt+history+stat+math)4;
end;
{Вычисление средних значении по каждому предмету. }
s vt:=0; s history:=0; s stat:=0; s math:=0;
for і:=l to n do
begin
s vt:=s vt+mas[i] .vt;
s history:=s history+mas[i] .history;
s stat:=s stat+mas[i] .stat;
s -math:=s -math+mas[i] .math;
end;
s vt:=s vtn;
s history:=s historyn;
s stat:=s statn;
s math:=s mathn;
{Упорядочение массива записей в алфавитном порядке фамилии.}
for і:=l to п-l do
for j:=l to п-l do
if mas[j] .namemas[j+l] .пате then
begin a:=mas[j];
та s [j ] :=та s [j +1] ;
mas[j+l] :=а;
end;
{Вывод результатов.}
clrscr;
write(' ':8,'FIO , , .. 4) .,•
wr і te (' ': 2, 'GROUP ');
write(' ':l,'Year ',":2);
write (": 3, 'OTSENKI', '
writeln('Sr.Bal') ;
for і:=l to n do
with rnas[i] do
begin
write(narne:15);
write (' ',group: 8);
write(' ',god:4);
-- _. о. _
writeln(' ',vt:з,' ',history:3,' ',stat:3,’math : 3,' ', sr_bаl : 5 :
2) ;
end;
writeln (' , ' Sr. bа1: ' " ': 24, s_vt: 3 : 1, ' ',s_history:3:1, ,
',s_stat:3:1, S rnath:3:1);
end.
Программаның нәтижеcі.
Енгізілген мәндер:
1. n = 3
2. і= 1 Ф.И.О.:Бисенов Нүргелді
3. Группа: 11-122
4. Год рождения: 1988
5. Отценки: 5454
6. і= 2 Ф.И.О. : Бақтығалиев Бекнұр
7. Группа: 11-122
8. Год рождения: 1989
9. Отценки: 5 4 5 5
10.і = 1 Ф.И.О.: Амангелді Медет
11.группа: 11-122
12.Год рождения: 1989
13.0тценки: 5 444
Енгізілген мәндердің нәтижесі:
Ф.И.О. Группа Год рождения Отценки
Среднии бал
Бақтығалиев Бекнұр 11-122 1989 5 4 5 5
4.75
Бисенов Нүргелді 11-122 1988 5 4 5 4
4.50
Амангелді Медет 11-122 1989 5 4 4 4
4.25
Средний бал: 5.0 4.0 4.7 4.3
Файлдармен жұмыс
1 Файлдардың түрлері
Осыған дейін, біз мәліметтерді пернетақтадан негізіп, оларды экранға
шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында
сақталатын да, есептеулер біткеннен кейін бұл мәліметтер жоғалып кетеьін.
Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге
пайдалану үшін немесе жңа мәліметтерді алу үшін, оларды есте сақтап қалу
керек. Ондай тәсілдердің ьірі мынадай: нәтиже экранға шыққан соң қолға
қаламсап (қарындаш) және бір бет қағаз алып, бұл мәліметтерді жазып алу.
“Дербес компьютерлер” дәуірінің басында оларды “үй тапсырмасы” деп атаған
да, шын мәнінде солай болған. Қазіргі кездегі дербес компьютерлердің
барлығы ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған.
Қызметтеріне қарай оларды: магниттік ақпарат тасымалдаушылар немесе
жазылатын CD- дискілер деп атайды. Ақпаратты сақтау осы тасымалдаушыларда
ұйымдастырылады, бұл жағдайда біз алған нәтижелерді солардың жадында
сақтаймыз. Барлық мәліметтер осы тасымалдаушыларда файлдар түрінде
сақталады.
Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы
жадының ат қойылған аймағы (бөлігі).
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
қатар ақпаратты сақтау деген мағынаны білдіреді.
Borland Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға
болады:
a) файлдың типі бойынша (оның логикалық құрылымына )
b) файл элементтеріне қатынау тәсілі бойынша
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:
← мәтіндік файл;
← типтік файл;
← типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
← Тікелей қатынау файлдары
← Кезекпен қатынау файлдары
Олардың айырмашылығы тікелей қатынау файлдарында арнайы
процедуралар және функцияларды пайдалана отырып, мәліметтерді, олардың
файлдағы орнына тәуелсіз, оқуға немесе жазуға болады, ал кезекпен қатынау
файлында оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның
алдындағы мәліметтердің барлығын оқуға тура келеді. Мәтіндік файлдар
кезекпен қатынау файлдарына жатады, ал типтік файлдар тікелей қатынау
файлдарыа жатады.
2. Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив.
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы
мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес,
сан, әріп және басқа пернетақта символдары түрінде (ASCII кодында)
беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады, оңай өзгереді
және оларды кез келген мәтіндік редактордың, соның ішінде Borland Pascal
ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей 2.1.2.-ні
қара, мәтінді теру кезінде жаңа жолды енгізу үшін “Enter” пернесін басу
керек, осы кезде арнайы код гинерацияланады—ол жол соңы коды, ал файлды
сыртқы сақтау құрылғысына жазған кезде де арнайы код гинерацияланады—ол
файл соңы коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп,
оларды “mayFile.in” атты мәтіндік типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
1) пернетақтадан мәліметтерді енгізу
2) оларды “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` ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz