Автор работы: Пользователь скрыл имя, 02 Декабря 2011 в 11:02, реферат
Қазіргі кезде Паскаль аты программалау тілдерінде – тіл аты ретінде кеңінен қолданылады. Паскаль программалау тілі ХVII ғасырда өмір сүрген француз ғалымы Блез Паскальдің құрметіне аталып отыр.
Procedure Init;
Var
FileInput : file of integer;
I, Sanau : integer;
San:array[1..100] of integer;
begin
assign(FileInput, ‘mayFile.in’);
reset (FileInput);
Sanau :=FileSize(FileInput);
For i:=1 to Sanau do
Read(FileInput, San [i]);
Close(FileInput)’
End;
Тақырыптың басында типті файлдар –
тікелей қатынау файлдарына жататынын
айтып кеткенбіз. Яғни, файлдың кез-келген бөлігіндегі мәліметтерді оқу үшін, оның алдында тұрған мәліметтерді оқуды қажет етпейтін файлдар кездеседі.
Көрсеткішті қажетті
мәліметті
оқуға қою үшін,
Seek() – процедурасын қолданады. Оның түрі келесідегідей болады:
Seek(<файл атауы>, <жазбаның нөмері>);
Сонымен қатар типті файлдарда нөмірлеу
нөлден
басталатыны есте ұстау керек, яғни бірінші лементтің
нөмері
"Нөл".
Олай болса, біз көрсеткішті үшінші элементті оқуға
көшіру үшін,
Seek( ) - процедурасын қолдануды ескеруіміз керек.
Мысалы:
Seek(FileInput, 2);
немесе
Seek(FileInput, 3-1);
8. Әртүрлі базалық типтерді біріктіру. Жазба типі
Массив анықтамасында айтылғандай, массив дегеніміз құрылымына
және қолдану
тәсіліне
байланысты, бір типті нөмірленген тізімдідер. Егер әртүрлі
типтегі мәліметтер берілген болсын.
Осы тізімнен белгілі бір жлыдар аралығында
туған
оқушыларды
сұрыптап
бөліп
алу керек болсын.
Мәліметтерді
сақтау үшін
оған
екі массмвке орын бөлуімізге болатын еді. Бірінші
массив (snring типті) оқушылардың аты жөнін сақтауға, екіншісі сақтауға арналған. Егер бізге қосымша мәліметтер (мысалы: сыныбы, ұлты,
т.б.) енгізу керек болса, онда енгізуге
тура келеді. Бір мезгілде бірнеше массивпен
жұмыс
істеу және оларды смпаттамалары
бойынша сұрыптауға, әрине болады, бірақ үлкен
жұмысты
талап етеді. Сонымен қатар бұл мәліметтерді файлда сақтау
керек болса не істейміз?
Файлдар туралы сұрақтарды талдағанда айтылғандай, файл элементтері
тек бір типті элементтер болып келеді.
Олай болса әр түрлі типтегі элементтерді әрбір
типке – жолдық типке айналдырып, мәтіндік
файлдармен жұмыс істеуіміз керек.
Мәліметтерді
сақтай
аламыз, бірақ болашақта бұл мәліметтермен жұмыс істеу жеткілікті қиындық
туғызады.
Бұл қиындықтан
шығу үшін
мәліметтердің құрама
типі қолданады. Мәліметтердің бұл типі жазба деп аталады.
Жазбалар әр түрлі типтегі элементтер
жиынтығынан тұрады. Жазба элелменттерін құраушыларды өріс
деп атайды да, әрбір өрістің өзіндік атауы болады. Әрбір
жазбаның бірегей атауы болады.
Жазба атауы Тізім
Өрістің
атауы Фамилия Аты Туған жылы
Өрістер
мәні
Ахметов Алдияр 1980
Жазбаны өңдеу элементар объектә
түрінде
шығады.
Мұндай
объект типі – record (жазба) деп аталады.
Олай болса, мәліметтердің типтеріне байланысты шектеулер
алынып тасталады.
Жазбаларды сипаттау үшін, оның атауы, берілген өрісте сақталатын мәліметтердің атауы және типі көрсетілуі керек. Жазбалардың
жалпы түрде сипатталуы келесідегідей:
Type<жазба атауы>=Record
<1 өріс>:<1
тип>;
<2 өріс>:<2
тип>;
……………………
:;
end;
9. Сыртқы кітапханалар. Модульдер
Модульдер және олардың қолданылуы туралы айтпастан
бұрын,
Люйс Кэроллдың "Алиса Ғажайып жлемінде" ертегісінен үзінді
оқиық.
Алисаның Ақ Серімен әңгімесі:
Иә
бұл өте
жақсы
ара ұясы,
- деп Сері еріксіз келісті. – Ең жақсы сапалы! Бірақ ол араларға бір себептен ұнамайды! Менде бұнда тағы тышқан қақпаны бар. Тышқандар араларды қуатын көрінеді. Немесе аралар –
тышқандарды.
Білмеймін…
Ал мен сізге тышқан қақпаны не үшін керек екенін ойлап тұрғам
– деді Алиса. – Аттарда тышқанның өмір сүруін елестету қиын…
Қиын,
бірақ
болады, - деп Сері жауап берді. – Мен олардың
менің
денемде жүгіріп жүргенін қаламаушы едім.
Білесің бе, - деп жалғастырды ол, үндемей тұрып, - бәріне дайын болу керек! Міне
неліктен менің атымның аяғында білезіктер тағылған.
Ал ол не үшін? – деп қызықты Алиса.
Акулалар тістеп алмауы үшін, - деді Ақ Сері.
Бұны
мен өзім
ойлап таптым. Атқа шығуға көмектесші. Мен сені шетке
шығарамын.
Ал мына ыдыс неге арналған?
Бәлішке
арналған, - деді Алиса.
Онда оны өзімізбен бірге ала кетейік,
- деп ұсынды Сері. – Егер біз бәліш
тауып алсақ, ол бізге қажет болады. Дорбаны ұстай
тұр,
- мен оны осыған салайын…
Бұл
оңай
болмады. Алиса дорбаны қатты ұстап тұрды, бірақ Ақ Сері өте икемсіз болды: ол дорбаға
ыдысты салудың орнына, оған өзі құлай берді. Ақырында ыдыс әрең салынады.
Әрине
онда оған орын аз, - деп ескерді
Сері. – Дорба шам қоайғыштарға лық толы, бірақ басқа не істейсің!
Ол дорбаны ер тоқымға іліп қойды, одан сәбіздің сабақтары, пештің қықыштары және әр түрлі нәрселер салбырап тұрды.
Ақ
Серінің аты және қаруы қалай көрінгенін елестете аласыздар
ма?
Borland Pascal сізге, үлкен саннан құралған тұрақтыларға, мәліметтер типіне, айнымалыларға,
процедураларға және функцияларға қатынауды қамтамасыз етеалады. Олардың
ішіндегі кейбіреулері Borland Pascal үшін
ерекше, ал кейбіреулері Windows немесе Dos
орталары үшін қолданбалы есептерді программалауда
ерекше. Олардың саны өте көп, дегенмен, өз программаңызда олардың бәрін бір мезетте аз қолданасыз.
Сондықтан олар модульдер деп аталатын өзара
байланысты топтарға бөлінген. Бұл жағдайда тек программаға қажетті
модульдерді қолдануға болады.
Программалық модуль (Unit) тұрақтылар, мәліметтер типі, айнымалылар,
процедуралар және функциялар жиынтығы
болып табылады. Әр модуль Паскальдағы
жекеленген программаға ұқсас: сіз программаңызды
орындаңға жіберместен бұрын, оның шақырылатын және қажетті инициализацияны
жүзеге
асыратын негізгі денесі болуы мүмкін. Қысқаша
айтқанда
модуль, программаға қоюға болатын және программаны жеке компилиаланатын
бөлшектерге
бөлуге
болатын, сипаттамалар кітапханасы болып
табылады.
Модуль құрамына кіретін, процедуралар
және
функциялар, мәліметтер типін және айнымалылар арасындағы
тәсілдер
жиынтығын қамтамасыз етеді. Бірақ
та бұл
тәсілдерді
нақтылы
жүзеге
асыру интерфейс және жүзеге асыру (реализация).
Егер программа модуьді пайдаланса, модульдің
барлық сипттамалары бұл программаға, оның өзінде анықталғандай ашық болады.
Модуль құрылымы программа құрылымына ұқсас.
Модульдің ішіндегі барлық сипаттамалар бір-бірімен
байланысты. Мысалығы, Strings модулі нөлдік белгімен аяқталатын жолдарды өңдейтін
ішкі программаларға қажетті сипаттамалардан
тұрады.
Сонымен қатар іщкі программалар
сияқты,
модульдер де стандартты және стандартты емес немесе қолданушының
модулі, яғни, програмалаушылар өздері құрастыратын
бола алады. Стандартты және стандартты емес модульдер құрылымы
бірдей болғандықтан, олардың сипатталуы бірдей ережеде құрылған.
Модульдер программаға оның атын uses компилятор нұсқауында
сипаттаудың көмегімен қосылады. Мысалы, былай сипатталғанда:
Uses Dos, Crt;
Аталған
модульдердің құрамындағы барлық ішкі программалар, айнымалылар,
типтер және тұрақтыларды программада қолдануға
болады.
Ескерту. Модульдердің аттары оларды хабарлағанда үтірмен
бөлінеді,
ал соңғы модульден кейін үтірлі
нүкте қойылады!
System модулі
System модулі барлық құралдар үшін,
төменгі
деңгейлі
ішкі программаларды жүзеге асырады, мысалы: енгізу-шығу,
жолдық айнымалылармен жұмыс,
ауыспалы нүктемен жасалынатын операциялар
және
жадыны динамикалық бөлу.
System модулі Borland Pascal-дың барлық стандартты және құрылған процедураларынан және
функцияларынан тұрады. Стандартты Паскальдің
бөлігі
болмайтын және басқа модульдерде орналаспаған
Borland Pascal-дың кез-келегн ішкі программасы
System модулінің құрамында орналасқан.
Ескерту. System модулі программаға автоматты қосылады (үнсіз келісім бойынша) және оны Uses операторында көрсету қажетті емес.
Стандартты емес
модуьдерді пайдалану программаларды
стандарттау мен құрылымдылығын
Осындай алғы сөзден кейін, оқушының стандартты емес модульдерді
пайдалануда пайдасы жайлы ешқандай күмәні жоқ екеніне сенімдіміз. Оларды өңдеудің өнеріне үйренуде
жеңе
алмайтын алдымен модуьдің құрылымымен, оның бөлімдерінің міндеттімен және өңдеу технологиясымен танысайық.
1. Модуль құрылымы
Модуль (unit) келесі бөліктерден
тұрады:
аты немесе тақырыбы (мысалы, unit Мy_Мodyl);
интерфейс немесе хабарламалар бөлімі
(Interfase);
орындаушы бөлігі немесе іске асыру бөлімі
(Implementation);
Бұнда
көрсетілген
модуль бөлімдерінің тізбегі міндетті болып
табылады, дегенмен осы бөлімді құрайтын блоктар (немес тек
денелері) жарым-жартылай немесе толығымен
болмауы мүмкін (бұрынғыдай осындай элементтерді
сипаттағанда тік жақшалар пайдаланылады). Одан
кейін модуль ішіндегі бөлімдерін сипаттаймыз.
Модуль тақырыбы
Модуль тақырыбы unit түйінді сөзінен және бірегей атаудан (модуль
ішінде қайталанбауы керек) тұрады,
оның
кез-келеген атау сияқты 64-ке дейін белгісі бола
алады.
Модуль интерфейсі
Interface {бұл бөлімнің Uses-тен басқа барлық объектілері, мәліметтер сегментінде орналасады}
[Uses … {Берілген модуль пайдаланатын, модульдердің
ататры түгенделеді}]
[Cons … {Осы модуль қосқан программаға немесе басқа модульдерге, рұқсат етілуі тиіс тұрақтылар
сипатталады}]
[Var … {Программада көрінетін немесе басқа
модульдерде қолданатын айнымалылар сипатталады}]
[Procedure…{Формальды параметрлер сипаттамасымен
толық
процедураның атауы келтіріледі}]
…{Осы моудьді іске қосқан программа немесе басқа
модуьдерден қол жеткізе алатын барлық
басқа
процедуралар мен модульдер функцияларының
толық
тақырыптары
сипатталады}
Модульдің орындаушы бөлігі
[Uses … {Берілген орындау бөлігінде пайдаланылған
және
интерфейс көрсетілмеген модуьдер атауы
көрсетіледу}]
[Lаbel… {Берілген модуль бөліміндегі, ішкі программаларда
пайдаланылған таңбалар аттары көрсетіледі}]
[Сonst… {Берілген модуль бөліміндегі ішкі программаларда
пайдаланылған және интерфейс аталмаған
тұрақтылар
сипатталады}]
[Var … {Берілген модуль бөліміндегі ішкі программаларда
пайдаланылған және интерфейсте аталмаған
айнымалылар сиптталады}]
[Procedure…{Interface-те сипатталған процедураның қысқаша немесе толық аты келтіріледі}]
{Процедура денесі}
[Function{Interface-те сипат