Информатика пәнінен әдістемелік нұсқау (программалық тілдер)
Кіріспе
І. БӨЛІМ
Құрылымдық (структуралық) программалау әдісі
1.1. Құрылымдық программалау әдісінің мазмұны
1.2 Программаны жобалау
Тікелей программаны жобалауға дейін алдынала дайындық кезеңдері жүргізіледі.
1.2.1. Есептің математикалық сипаттамасы
1.2.3 Шешу әдісін таңдау
1.2.4.Есепті шығару алгоритмін жасау
1.2.5.«Жоғарыдан төменге қарай» әдісімен программаны жобалау
1.2.6. Мәліметтерді ұсыну
1.2.7. Программаны жобалаудың реті
ІІ. БӨЛІМ. Турбо.паскальдің берілгендері және өрнектері
2.1.Турбо.паскаль тілінің негізгі элементтері
2.1.1. Тіл алфавиті
2.1.2. Идентификаторлар және қызметші сөздер
2.1.3. Комментарийлар
2.1.4. Компилятор директивалары
2.2. Программа құрылымы
2.2.1. Программа басы
2.2.2. Программа блогы
2.3. Айнымалылар
2.3.1. Қарапайым айнымалылар
2.3.2. Құрылымдық (структуралық) айнымалылар
2.4.1. Константалар.литералдар
2.4.2. Аталынған константалар
2.4.3. Типтелінген константалар
2.5. Белгілер
2.6. Стандартты функциялар
2.6.1. Арифметикалық функциялар
2.6.2.Типтерді түрлендіру және реттеу функциясы
2.6.2. Логикалық функциялар
2.6.3. Жолдық функциялар
ІІІ. БӨЛІМ. Турбо Паскаль тілінде программалау
3.1. Сызықты программа
3.2.Тармақталған программа
3.3. Жолдық берілгендері бар программалар
3.4. Циклдық программалар
3.5. Рекуренттік қатынастарды пайдаланатын қарапайым циклдік программа
4. бөлім. Программалау тілін оқыту әдістемесі
4.1.Диалогты сызықтық алгоритмдерді программалау
4.2.Тармақталған алгоритмдерді программалау
Қорытынды
Қолданылған әдебиеттер
І. БӨЛІМ
Құрылымдық (структуралық) программалау әдісі
1.1. Құрылымдық программалау әдісінің мазмұны
1.2 Программаны жобалау
Тікелей программаны жобалауға дейін алдынала дайындық кезеңдері жүргізіледі.
1.2.1. Есептің математикалық сипаттамасы
1.2.3 Шешу әдісін таңдау
1.2.4.Есепті шығару алгоритмін жасау
1.2.5.«Жоғарыдан төменге қарай» әдісімен программаны жобалау
1.2.6. Мәліметтерді ұсыну
1.2.7. Программаны жобалаудың реті
ІІ. БӨЛІМ. Турбо.паскальдің берілгендері және өрнектері
2.1.Турбо.паскаль тілінің негізгі элементтері
2.1.1. Тіл алфавиті
2.1.2. Идентификаторлар және қызметші сөздер
2.1.3. Комментарийлар
2.1.4. Компилятор директивалары
2.2. Программа құрылымы
2.2.1. Программа басы
2.2.2. Программа блогы
2.3. Айнымалылар
2.3.1. Қарапайым айнымалылар
2.3.2. Құрылымдық (структуралық) айнымалылар
2.4.1. Константалар.литералдар
2.4.2. Аталынған константалар
2.4.3. Типтелінген константалар
2.5. Белгілер
2.6. Стандартты функциялар
2.6.1. Арифметикалық функциялар
2.6.2.Типтерді түрлендіру және реттеу функциясы
2.6.2. Логикалық функциялар
2.6.3. Жолдық функциялар
ІІІ. БӨЛІМ. Турбо Паскаль тілінде программалау
3.1. Сызықты программа
3.2.Тармақталған программа
3.3. Жолдық берілгендері бар программалар
3.4. Циклдық программалар
3.5. Рекуренттік қатынастарды пайдаланатын қарапайым циклдік программа
4. бөлім. Программалау тілін оқыту әдістемесі
4.1.Диалогты сызықтық алгоритмдерді программалау
4.2.Тармақталған алгоритмдерді программалау
Қорытынды
Қолданылған әдебиеттер
Кезкелген маман ақпараттық технологияларды өз қызметінде тиімді пайдалана алуы үшін ол практика жүзінде берілген есептерді қоя және шеше білуі керек. Практикалық есептерді шешуде, оны дайындау және компьютер көмегімен шешудің технологиясын меңгеруде программалау тілін білу өте қажет болады.
Қазіргі кезде программалау тілдері процедуралық, логикалық және обьектілі- бағыталынған болып үш түрге бөлінеді. Мысалы, дәстүрлі (классикалық) процедуралық программалау тілдеріне - Фортран, Паскаль, Бейсик және т.б., логикалық тілдерге – ЛИСП, Пролог және т.б.,обьектілі – бағытталынған программалауға визуальді программалау тілдеріне – Borland C++, Object Pascal және т.б. жатады.
Программалау тілі – ол электрондық есептеуіш машинасына арналған алгоритмді орындауға арналған электрондық машина түсінетін ерекше тіл.
Бүгінгі күні дербес компьютерлерде ең кеңінен қолданылатын программалау тілдерінің бірі – ол Паскаль тілі.
Паскаль тіліне тән болатын программалау стилінің негізі ретінде мәліметтер типінің философиясы алынған.
Жалпы, программалау әдістеріне дағдылану үшін тілдегі мәліметтердің ұйымдастыру концепциясын түсініп, білу керек болады. Программаны түсініп ұғынуда және оның орындалу барысында пайда болатын қателерге автоматты түрде диагностика беруде мәліметтер типтері маңызды роль атқарады.
Паскаль тілінің дәл осы қасиеті оның құндылығы болып саналады және бұл тіл программалау мәдениетін тиянақты үйретуде үлгі бола алады.
Паскаль – блокты, модульді құрамда программа құруға қажетті тіл.
Бұл әдістемелік нұсқау төрт бөлімнен тұрады, алғашқы бөлімде Паскаль тілінің құрылымдық (структуралық) программалау әдісі, есептің математикалық сипаттамасы және оны шешу әдістері, ал екінші бөлімде тілдің негізгі элементтері, олардың жазылу ережелері және жалпы программа туралы теориялық мағлұматтары , үшінші бөлімде негізгі операторлар, оларды программада қолдану жолдары мысалдармен көрсетіледі және графикалық , кеңейтілген мәтіндік режимде жұмыс істеу үшін процедуралар мен функциялар
қарастырылады , төртінші бөлімде программалау тілін оқыту әдістемесі қарастырылған.
Осы кезге дейінгі Паскаль тілін оқып- үйренуге арналған белгілі оқу құралдарынан бұл әдістемелік нұсқаудың ерекшелігі мынада:
- әр нақты тақырып бойынша теориялық материалдар қысқа түрде беріледі;
- әр тақырыпқа альтернативті тұрғыда 2-3 мысалдар келтіріледі;
- әдістемелік нұсқаудың әр (немесе 2-3) тақырыбын зертханалық жұмыс және оқулық элемент ретінде алуға (пайдалануға) болады.
Осы әдістемелік нұсқау жас информатика пәні мұғалімдеріне , төменгі курс білімгерлеріне және жоғары сынып оқушылары ұсынылады.
Қазіргі кезде программалау тілдері процедуралық, логикалық және обьектілі- бағыталынған болып үш түрге бөлінеді. Мысалы, дәстүрлі (классикалық) процедуралық программалау тілдеріне - Фортран, Паскаль, Бейсик және т.б., логикалық тілдерге – ЛИСП, Пролог және т.б.,обьектілі – бағытталынған программалауға визуальді программалау тілдеріне – Borland C++, Object Pascal және т.б. жатады.
Программалау тілі – ол электрондық есептеуіш машинасына арналған алгоритмді орындауға арналған электрондық машина түсінетін ерекше тіл.
Бүгінгі күні дербес компьютерлерде ең кеңінен қолданылатын программалау тілдерінің бірі – ол Паскаль тілі.
Паскаль тіліне тән болатын программалау стилінің негізі ретінде мәліметтер типінің философиясы алынған.
Жалпы, программалау әдістеріне дағдылану үшін тілдегі мәліметтердің ұйымдастыру концепциясын түсініп, білу керек болады. Программаны түсініп ұғынуда және оның орындалу барысында пайда болатын қателерге автоматты түрде диагностика беруде мәліметтер типтері маңызды роль атқарады.
Паскаль тілінің дәл осы қасиеті оның құндылығы болып саналады және бұл тіл программалау мәдениетін тиянақты үйретуде үлгі бола алады.
Паскаль – блокты, модульді құрамда программа құруға қажетті тіл.
Бұл әдістемелік нұсқау төрт бөлімнен тұрады, алғашқы бөлімде Паскаль тілінің құрылымдық (структуралық) программалау әдісі, есептің математикалық сипаттамасы және оны шешу әдістері, ал екінші бөлімде тілдің негізгі элементтері, олардың жазылу ережелері және жалпы программа туралы теориялық мағлұматтары , үшінші бөлімде негізгі операторлар, оларды программада қолдану жолдары мысалдармен көрсетіледі және графикалық , кеңейтілген мәтіндік режимде жұмыс істеу үшін процедуралар мен функциялар
қарастырылады , төртінші бөлімде программалау тілін оқыту әдістемесі қарастырылған.
Осы кезге дейінгі Паскаль тілін оқып- үйренуге арналған белгілі оқу құралдарынан бұл әдістемелік нұсқаудың ерекшелігі мынада:
- әр нақты тақырып бойынша теориялық материалдар қысқа түрде беріледі;
- әр тақырыпқа альтернативті тұрғыда 2-3 мысалдар келтіріледі;
- әдістемелік нұсқаудың әр (немесе 2-3) тақырыбын зертханалық жұмыс және оқулық элемент ретінде алуға (пайдалануға) болады.
Осы әдістемелік нұсқау жас информатика пәні мұғалімдеріне , төменгі курс білімгерлеріне және жоғары сынып оқушылары ұсынылады.
1. Вирт Н. “Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1989. –360с.”.
2. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения: Пер. с англ. – М.: Мир, 1982. –386с.”.
3. Культин Н.Б. “Программирование в Turbo Pascal 7/0 и Delphi / Второе издание, переработанное и дополненное. – СПб.: БХВ – Санкт – Петербург, 1999-416с.:”.
4. Фокс Дж. Программное обеспечение и его разработка: Пер. с англ. – М.: Мир, 1985. –368с.”.
5. Культин Н.Б. “Turbo Pascal в задачах и примерах. Санкт- Петербург, 2002г.-255с.”.
6. Сейпилова Б. “Программалау технологиялары: Turbo Pascal. Тараз қаласы,2002ж.-200 б. ”.
7. Камардинов О. “Информатика. ІІ-бөлім, Шымкент қаласы,2000 ж.-256б.”.
8. Омарова Н.,Тұрмағамбетова К., Нуриденова К. “Паскаль тілінде программалау негіздері .- Алматы: Білім,1996ж.,- 321б.”.
9. Культин Н.Б. “Программирование в Turbo Pascal 7/0 и Delphi / – СПб.: БХВ – Санкт – Петербург, 1999-464с.:”.
10. “Язык компьютера: Пер. с англ./Под ред. И с предисл. В.М. Курочкина – М.: Мир, 1989. –240с.”.
2. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения: Пер. с англ. – М.: Мир, 1982. –386с.”.
3. Культин Н.Б. “Программирование в Turbo Pascal 7/0 и Delphi / Второе издание, переработанное и дополненное. – СПб.: БХВ – Санкт – Петербург, 1999-416с.:”.
4. Фокс Дж. Программное обеспечение и его разработка: Пер. с англ. – М.: Мир, 1985. –368с.”.
5. Культин Н.Б. “Turbo Pascal в задачах и примерах. Санкт- Петербург, 2002г.-255с.”.
6. Сейпилова Б. “Программалау технологиялары: Turbo Pascal. Тараз қаласы,2002ж.-200 б. ”.
7. Камардинов О. “Информатика. ІІ-бөлім, Шымкент қаласы,2000 ж.-256б.”.
8. Омарова Н.,Тұрмағамбетова К., Нуриденова К. “Паскаль тілінде программалау негіздері .- Алматы: Білім,1996ж.,- 321б.”.
9. Культин Н.Б. “Программирование в Turbo Pascal 7/0 и Delphi / – СПб.: БХВ – Санкт – Петербург, 1999-464с.:”.
10. “Язык компьютера: Пер. с англ./Под ред. И с предисл. В.М. Курочкина – М.: Мир, 1989. –240с.”.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Дипломдық жұмыс
Тегін: Антиплагиат
Көлемі: 57 бет
Таңдаулыға:
Жұмыс түрі: Дипломдық жұмыс
Тегін: Антиплагиат
Көлемі: 57 бет
Таңдаулыға:
Кіріспе
Кезкелген маман ақпараттық технологияларды өз қызметінде тиімді
пайдалана алуы үшін ол практика жүзінде берілген есептерді қоя және шеше
білуі керек. Практикалық есептерді шешуде, оны дайындау және компьютер
көмегімен шешудің технологиясын меңгеруде программалау тілін білу өте
қажет болады.
Қазіргі кезде программалау тілдері процедуралық, логикалық және
обьектілі- бағыталынған болып үш түрге бөлінеді. Мысалы, дәстүрлі
(классикалық) процедуралық программалау тілдеріне - Фортран, Паскаль,
Бейсик және т.б., логикалық тілдерге – ЛИСП, Пролог және т.б.,обьектілі –
бағытталынған программалауға визуальді программалау тілдеріне – Borland
C++, Object Pascal және т.б. жатады.
Программалау тілі – ол электрондық есептеуіш машинасына арналған
алгоритмді орындауға арналған электрондық машина түсінетін ерекше тіл.
Бүгінгі күні дербес компьютерлерде ең кеңінен қолданылатын
программалау тілдерінің бірі – ол Паскаль тілі.
Паскаль тіліне тән болатын программалау стилінің негізі ретінде
мәліметтер типінің философиясы алынған.
Жалпы, программалау әдістеріне дағдылану үшін тілдегі мәліметтердің
ұйымдастыру концепциясын түсініп, білу керек болады. Программаны түсініп
ұғынуда және оның орындалу барысында пайда болатын қателерге автоматты
түрде диагностика беруде мәліметтер типтері маңызды роль атқарады.
Паскаль тілінің дәл осы қасиеті оның құндылығы болып саналады және
бұл тіл программалау мәдениетін тиянақты үйретуде үлгі бола алады.
Паскаль – блокты, модульді құрамда программа құруға қажетті тіл.
Бұл әдістемелік нұсқау төрт бөлімнен тұрады, алғашқы бөлімде Паскаль
тілінің құрылымдық (структуралық) программалау әдісі, есептің математикалық
сипаттамасы және оны шешу әдістері, ал екінші бөлімде тілдің негізгі
элементтері, олардың жазылу ережелері және жалпы программа туралы теориялық
мағлұматтары , үшінші бөлімде негізгі операторлар, оларды программада
қолдану жолдары мысалдармен көрсетіледі және графикалық , кеңейтілген
мәтіндік режимде жұмыс істеу үшін процедуралар мен функциялар
қарастырылады , төртінші бөлімде программалау тілін оқыту әдістемесі
қарастырылған.
Осы кезге дейінгі Паскаль тілін оқып- үйренуге арналған белгілі оқу
құралдарынан бұл әдістемелік нұсқаудың ерекшелігі мынада:
- әр нақты тақырып бойынша теориялық материалдар қысқа түрде
беріледі;
- әр тақырыпқа альтернативті тұрғыда 2-3 мысалдар келтіріледі;
- әдістемелік нұсқаудың әр (немесе 2-3) тақырыбын зертханалық жұмыс
және оқулық элемент ретінде алуға (пайдалануға) болады.
Осы әдістемелік нұсқау жас информатика пәні мұғалімдеріне , төменгі
курс білімгерлеріне және жоғары сынып оқушылары ұсынылады.
І- БӨЛІМ
Құрылымдық (структуралық) программалау әдісі
1.1. Құрылымдық программалау әдісінің мазмұны
Құрылымдық программалау әдісі ережелер мен нұсқаулар жинағы түрінде
ұсынылады, оларды пайдалану мына төмендегі жағдайларға қол жеткізуге
мүмкіндік береді:
-бастапқы мәліметтерге тәуелді емес сенімді программалар дайындауға;
-өзгерістер мен жетілдірулерді жеңіл енгізуге болатын программалар
түзуге (құруға);
-адам еңбегін және уақытын үнемдейтін тиімді программалар алуға.
Кезкелген жоғарғы деңгейдегі программалау тілдерінде құрылымдық
программалау әдісі қолданылған деп айтуға болады, егерде
-программалауда тек қана төрт басқарушы (сызықты (тізбекті), тармақталу
(таңдау), қайталау және топтау) конструкциялары қолданылған және прог-
рамма құрылымы мәліметтер құрылымына сәйкестенген болса;
- мұнда бірінші кезеңде программаны жобалау жүргізіледі, ал екінші
кезеңде оны жазады.
1.2 Программаны жобалау
Тікелей программаны жобалауға дейін алдынала дайындық кезеңдері
жүргізіледі.
1.2.1. Есептің математикалық сипаттамасы
Дербес компьютерде шығарылатын есептердің көбісі негізінен нақты
математикалық тұжырымдамаға ие болуы керек. Егерде есептің қойылуы кезінде
кейбір функционалды тәуелділіктер тек қана сапалы тұрғыда қарастырылған
болса, енді оларды қатаң математикалық тәуелділіктермен көрсету
(байланыстыру) керек болады.
Математика тілінде есепті сипаттауды формализациялау деп атайды.
1.2.3 Шешу әдісін таңдау
Есептің математикалық тұжырымдалуына сәйкес дербес компьютерде оны
шешудің сандық әдісі таңдалынады.
Бастапқы мәліметтердің барлық тәуелділіктері анықталған және дербес
компьютерде оның нәтижесін алу жолдары мен тәсілдері көрсетілген болса,онда
есепті шешу әдісі таңдалған болып есептелінеді.
1.2.4.Есепті шығару алгоритмін жасау
Алгоритм түсінігі есептеу матеамтикасының негізгі фундаментальды
ұғымына айналған,сондықтан оған анықтама берудің қажеті жоқ, оның
түсініктемесін бастапқы ұғым ретінде берген жөн.
Қойылған есептің шешімі төрт арифметикалық әрекетке алып келетін
алгоритмдерді сандық алгоритмдер деп атайды.Сандық алгоритмдермен қатар
ақпаратты-логикалық есептерді шығаратын да алгоритмдер бар ,оларда қандай
да бір критерий бойынша әр түрлі варианттарды таңдау және өзара салыстыру
негізгі роль атқарады.
Компьютерде есепті шешу нәтижелі болу үшін алгоритмнің барлық қадамдары
нақты көрсетілуі керек.
Мысалы, “Алгоритм – бұл есептеу процесі негізінде анықталатын дәл
элементар нұсқаулар тізбегі, ол кез – келген бастапқы мәліметтерді
(берілгендерді) пайдалана отырып, толыққанды нәтиже алуға бағытталынған.”
1.2.5.Жоғарыдан төменге қарай әдісімен программаны жобалау
Турбо-Паскальді және т.б.-ды қазіргі заманғы көптеген программалау
тілдерін қолдану кез келген үлкен программаны нерархиялық құрылымды құратын
подпрограммалар (процедуралар) түрінде ұсынуға көмектеседі.
Нерархиялық құрылымды программаларды жобалауда қолданатын әдістердің ең
бір кеңірек тарағаны жоғарыдан төменге қарай әдісі.Жобаланатын программа
негізгі (басты) программаға және подпрограммаларға (ішкі программаларға,
процедураларға) бөлінеді. Подпрограммаларды шақырып отыру негізгі
программалардан іске асырылады. Әрбір подпрограмма мүмкіндігінше басқа
подпрограммалардың көбінен бөлектелуі керек,ал оларға ақпаратты беру үшін
подпрограммалар параметрлерін қолдану ұсынылады. Подпрограммалардың бір –
бірінен тәуелді болмаулары программистке сенімді түрде жеке
подпрограммалармен жұмыс істеуге, оларға қажетті өзгерістерді шатасып
кетемін бе деп көп ойланбай – ақ жүргізе беруіне мүмкіндік береді.
Барлық басқару байланыстары жоғарыдан төменге қарай бағытталуы керек.
1.2.6. Мәліметтерді ұсыну
Программа құрылымы таңдап алынған берілгендердің құрылымына байланысты
болады. Осыған байланысты программаларды жобалаудың тағы бір әдісін
қарастырайық. Бұл әдіс бастапқы мәліметтердің берілуіне баса көңіл
аударады, блин, мұнда өңделетін программаның структурасы (құрылымы) және
мәліметтер құрылымы маңыздары бара – бар деп есептейді..
Программаларды осы әдіспен жобалау мәліметтерді сақтау және ұсынуды
олардың өңделетін программамен байланыстырмай қарауды ұсынады. Мәліметтер
файлдарын құруда жүйелік құралдар – редакторлар қолданылуы мүмкін.
Берілгендер файлдары программаның өзінде де құрылуы мүмкін.
1.2.7. Программаны жобалаудың реті
Программаны жобалауды төмендегі рет бойынша жүргізген жөн:
-шығарылатын мәліметтер макетін жобалау;
-программаның жалпы құрылымын жасау;
-программа текстін (мәтінін) жазу.
Шығарылатын мәліметтер программа жұмысының нәтижесі болады және оның
құрылымына әсер етеді.Программа тексті дайындалған құрылымға сәйкес жоғарғы
деңгейлі программалау тілінде жазылатын болады.
ІІ- БӨЛІМ. Турбо-паскальдің берілгендері және өрнектері
2.1.Турбо-паскаль тілінің негізгі элементтері
Турбо-паскаль программалау тілі, құрылымдық (структуралық) программалау
талаптарын толық қанағаттандыратын жоғарғы деңгейдегі тіл болып
есептелінеді.
Кез – келген программалау тілінің негізі оның алфавиты болып саналады.
Алфавит - бұл программаны жазуда қолдануға болатын белгілер (литерлер,
символдар) жинағы.
2.1.1. Тіл алфавиті
Турбо-паскаль тілінің алфавиті әріптерден,сандардан және арнайы
символдардан тұрады.Оған кіретіндер:
-латын алфавитінің бас және кіші әріптері.А-дан Z-қа дейін,а-дан z-қа дейін
және арнайы символдар @ # $ оларды әріптер ретінде де қолдануға болады.
-кирилицаның бас және кіші әріптері(символдық және жолдық мәліметтер
(берілгендер) үшін):А-дан Я-ға дейін ,а-дан я-ға дейін;
-цифрлар:0123456789;
-арнайы символдар:пробил+-= * ^ ( ) { } [ ] , . ; : ’’ ‘ &_(сызып қою
символы).
2.1.2. Идентификаторлар және қызметші сөздер
Программада белгілі бір мағынаға ие алфавит белгілерінің бөлінбейтін
тізбегін сөздер деп атайды. Сөздердің қызметтеріне қарап оларды
идентификаторлар және қызметші сөздерден бөледі.
Идентификаторларды, белгілеулерді, константаларды, айнымалыларды,
процедураларды және функцияларды белгілеу үшін пайдаланады.
Идентификаторлар әрқашанда әріптен немесе сызып қою символынан басталуы
тиіс, ал одан кейін белгілер,цифрлар және әріптердің кез – келген
комбинациясын пайдалануға болады.
Идентификатор ұзындығы 127 символдармен шектелген. Идентификаторларды
жазған кезде Т-Р латын бас және кіші әріптерден эквивалентті деп
қабылдайды. Идентификаторды жазуда саннан бастауға және оның құрамында
пробелді (бос позиция) қатыстыруға болмайды.
Идентификаторларға мысалдар:TURBO,turbo,sq,tpr.
Қызметші сөз - ағылшын сөзін құрайтын латын әріптерінің тізбегі,
қолданыста анықталған және тек бір мағыналы мәнге ие болады.
Т-Р-да идентификаторлар ретінде қолдануға болмайтын бірқатар қызметші
сөздер бар.Ол мына төмендегі сөздер:
absolute
and externa nil shr
array file not shl
begin forword overlay string
case for of then
const function or type
div go to packed to
do inline procedure untile
down to if program var
else in record while
mod set xor
2.1.3. Комментарийлар
Программадағы {символдар тізбегі} немесе (*символдар тізбегі*)
түріндегі жазуды комментарий деп атайды.
Мұндағы символдар тізбегіне {} және (**) символдарынан басқасы енуі
мүмкін.Бір түрдегі жақшаларды бір-біріне енгізуге болмайды. Бірақ та {}
фигуралық жақшасын (*..*) жақшасына немесе керісінше енгізуге болады. Бұл
деген сөз комментарийлары бар бүтіндей программаға комментарий беруге
мүмкіндік береді.
Комментарийлар мақсаты-программалардағы барлық обьектілерді пайдалануға
және оларға амалдар қолдануға түсініктемелер беру.
2.1.4. Компилятор директивалары
Компилятор директивалары - бұл программаның компиляциялар режимдерін,
программалардың орындалу және тексерулерін басқару үшін пайдаланылатын
комментарийлердің арнайы формалары.
Компилятор директивасы келесі синтаксиске ие:
{$компилятор директивасы} немесе (*компилятор директивасы*).
2.2. Программа құрылымы
Тіл синтаксисін дұрыс сипаттау үшін Бэкус-Науэрдің металингвистикалық
формулаларын қолданамыз.Тілдің әрбір анықталатын термині және олар арқылы
анықталған терминдер бұрыштық жақшаларына алынады. Анықтама бойынша
болады деген сөздер орнына::=құрамдық символын қолданады, ал немесе
сөзінің орнына вертикальдық символын қолданады. Егер де тілдің кейбір
терминдерінің қатысуы міндетті болмаса, онда ол квадрат жақшаға алынады. Үш
нүктенің болуы осы конструкцияның кез – келген рет қайталануы мүмкін
екендігін көрсетеді. Фигуралық жақшаның болуы осы жақшаға алынған тілдің
бірнеше терминдерінің біреуінің міндетті түрде болуын көрсетеді.
Т-Р тілдегі программаны синтаксистік түрде екі бөлікке бөлуге болады:
программаның басы және блок.
программа::=программа басыблок.
2.2.1. Программа басы
Турбо – Паскальда программа басы көмекшілік функциясын орындайды. Ол
тіпті жазылмауы да мүмкін. Егер де программа басы қатысса онда, ол
программа атын және программаның сыртқы ортамен өзара қимылын іске асыруға
мүмкіндік беретін параметрлер тізімін (міндетті түрде емес) көрсетеді.
Программа басы рrogram қызметші сөзімен басталады, одан кейін программа
идентификаторы (аты) жазылады. Осы индекаторды кейін программаның басқа
объектілерінде пайдалануға болмайды.
Программа басы аяғында нүкте – үтір (;) қойылады.
Мысалы, рrogram myfile;
2.2.2. Программа блогы
Блокта сипаттамалар мен анықтамалар қамтылады (көрсетіледі,
келтіріледі).
Синтаксисі:
Type тип идентификаторы = mun сипаттамасы ;
[ тип идентификаторы = тип сипаттамасы ; ]...
Статикалық құрылымның барлық айнымалаларын берілгендер типтеріне
сәйкес қарапайым және құрылымдық айнымалыларға бөлуге болады. Құрылымдық
айнымалыларға индексті айнымалылар, жазба – айнымалылар, жолдық –
айнымалылар, файл - айнымалылар және жиын – айнымалылар кіреді.
Оларда алдымен программаға тиісті локальді идентификаторлар хабарланады
,ал одан кейін оларға жүргізілетін іс-әрекеттер (операторлар) көрсетіледі.
Блок 6 бөлімнен тұрады, программада операторлар бөлімінің басқалары бос
та болуы мүмкін.
блок::=белгілеулерді сипаттау бөлімі
константаларды анықтау бөлімі
типтерді анықтау бөлімі
айнымалыларды сипаттау бөлімі
прцедуралар мен функцияларды сипаттау бөлімі
операторлар бөлімі
Стандартты паскаль тіліне қарағанда Т-Р сипаттамалар мен анықтамалар
бөлімінің кез келген сан рет кездесуіне және кез келген ретпен орналасуына
мүмкіндік береді.
Процедура (функция) құрылымы программа құрылымына ұқсас болады,
айырмашылығы программа басын жазуда ғана. Процедура (функция) блогында
қайтадан процедура (функция) сипаттамасы кездесуі мүмкін. Сондықтан
процедура (функция) сипаттамалар бір-біріне текстік түрде енгізіліп
жазылуы мүмкін. Бір – біріне енгізілген процедураларды (функцияларды)
сипаттаған кезде, Т-Р тіліндегі программалардағы обьектілерді
локализациялау ережелеріне сәйкес бір сол бір идентификаторларды және
белгілеулерді пайдалануға болады.
Идентификаторлар қай блоктың басында сипатталған болса,онда олар сол
блок үшін локальді деп есептелінеді. Олар осы блокта бар болып және оған
енгізілген блоктардың барлығында қатысқан болса, олар үшін глобальді болып
есептелінеді. Программаның операторлар бөлімі begin және end қызметші
сөздері арасына орналасады. end сөзінің соңында міндетті түрде нүкте
қойылады. Процедуралар (функциялар) құрамындағы операторлар бөлімі де begin
және end қызметші сөздерінің арасына орналасады, бірақ мұнда end сөзінен
кейін нүкте – үтір (;) қойылады. end алдында нүкте үтір болуы да немесе
болмауы да мүмкін.
Т-Р тілі программасы құрылымының ерекшелігі оның құрамына кейбір
стандартты програмалар модульдері енгізу мүмкіншілігі болып табылады. Бұл
жағдай оперативтік жадты экономдау (тиімді) пайдалану мақсатында кейбір
стандартты процедуралар мен функцияларды стандартты программалық
модульдерге орналастырумен шешіледі. Сондықтан программа басынан кейінгі
жолда осы программада пайдаланылатын программалық модульдер тізімі
көрсетілуі (ұсынылуы) керек.
Ұсыныс синтаксисі:
ұсыныс::=usesмодульдер идентификаторлары тізімі;
Стандарттық модульдерді қосу мысалын қарастырайық:
Program primer1;
Uses Crt,Dos,Printer,Graph;
Бұл мысалдағы келтірілген стандарттық программалық модульдер
идентификаторларының қызметтері төмендегідей:
-Ctr модулі экран режимін басқаруды, клавиатураның кеңейтілген
кодтарын, бояу, терезелер және дыбыстық сигналдармен қоса клавиатура мен
дисплейдің барлық мүмкіндіктерін пайдалануға мүмкіндік береді.
-Dos модулі уақыт және датаның ағымды мәнін алу және қоюды, файлдарды
каталогтар бойынша іздеуді және программаның орындалуымен қоса MSDOS - тың
әр түрлі функцияларын қолдайды;
-Printer модулі баспа құрылғысына жету мүмкіндігін тез ұйымдастырады;
-Graph модулі – бұл CGA,EGA,VGA,HERO,MEGA,PC 3270,ATT,IBM 8514
графикалық адаптерлері үшін графикалық пакет.
System стандартты модулінің ролі ерекше, бұл модульде негізгі
стандартты процедуралар мен функциялар қамтылған, ол программаменен бірге
бірден оперативтік (жедел) жадқа жүктелінеді. Бұл модульдің программада
сипатталынуы (көрсетілуі) міндетті емес.
Программист қолданушының жеке модулін түзей алады.
2.3. Айнымалылар
Айнымалы тілдің негізгі элементі болып табылады. Ол идентификаторымен
(атымен), мәнімен және типімен сипатталады.
Айнымалылар оларды сипаттауда көрсеткен (анықтаған) типке ғана
жатады және тек осы типті мәнді қабылдай алады.
Айнымалылар сипаттамасы бір айнымалының немесе көптеген (бірнеше)
айнымалылар аттарын және типтерін анықтай алады. Сипатталынған айнымалылар
жинағы бір жерге топтаса отырып, айнымалыларды сипаттау бөлімін құрады.
Айнымалыларды сипаттау бөлімі var сөзінен басталады және келесі түрде
жазылады: var идентификатор [, идентификатор ]...:
идентификатор;]...
Айнымалылардың статикалық және динамикалық құрылымдары болады.
Статикалық құрылымда оперативті есте сақтау облысынан барлық
айнымалыларға есепті шығарғанға дейін орын бөлінеді және бұл облыс есепті
шығарып болғанша тұрақты болады.
Динамикалық құрылымда айнымалыларға оперативтік есте сақтау облысынан
орын бөлінеді және есепті шешу барысында олар оперативті жадтан шығарыла
бастайды.
Т-Р тілінде әрбір айнымалымен берілгендердің тек қана бір типі ғана
байланысады.
Берілгендер типі –бұл мәндер жиыны, олардың айнымалыларға ие болуы және
оларға амалдар қолдану, айнымалыларға жадтан орын бөлу қарастырылған
болады. Берілгендер типінің қарапайым стандартты, программистың өзі
анықтайтын қарапайым, құрамалық және сілтемелік типтер түрлері болады.
Берілгендер типі типтерді анықтау бөлімінде анықталады. Бұл бөлім
type сөзінен басталады.Оған тип идентификаторы, теңдік таңбасы және
берілгендер типтерінің сипатталуы жатады.Типті анықтау нүкте – үтірмен (;)
аяқталады.
2.3.1. Қарапайым айнымалылар
Қарапайым айнымалылар идентификатормен белгіленеді, ал олардың мәндері
қарапайым стандарттыға немесе программист анықтаған қарапайым типке
мүмкін.
Қарапайым стандартты типті қарапайым айнымалылар.
Т-П-да келесі қарапайым стандартты типтер анықталған .
Бүтін санды тип (integer). Бұл типке барлық бүтін сандар кіреді. Ол
–32768-ден +32767 дейінгі даиапозонда шектеледі және жадта 2 байт орын
алады.
Байттық тип (byte). Оған 0-ден 255-ке дейінгі бүтін сандар кіреді және
жадта 1 байт орын алады.
Бүтін сандық қысқа тип (shorting). –128-ден +127-ге дейінгі бүтін
сандар кіреді және жадта 1 байт орын алады.
Ұзындығы сөзге тең бүтін сандық тип (word). Бұл типке 0-ден 65535-ке
дейінгі бүтін сандар кіреді және жадта 2 байт орын алады.
Бүтін сандық ұзын тип (longint). –2147483648-ден +2147483647-ге дейінгі
диапозондағы бүтін сандар кіреді және жэадта 4 байт орын алады.
Заттық (нақты) тип (real). 2.9х10-39-дан 1.7х1038-ге дейінгі
диапозондағы нақты сандар кіреді және жадта 6 байт орын алады.
Бірлік дәлдікті тип (single). Бұл типке 1.5х10-45-тен 3.4х1048-ге
дейінгі нақты сандар кіреді және жадта 4 байт орын алады. Мысалы, 1.500000
Е – 45 .. 3.400000 Е + 48.
Екілік дәлдікті тип (double). Бұл типке 5.0х10-334-тен 1.7х10308
диапозонында жататын нақты сандар кіреді және жадта 8 байт орын алады.
Жоғары дәлдікті тип (extended). Бұл тип мәнінің диапозоны 1.9х10-4952-
ден 1.1х104932-ге дейін. Бұл типті сандардың мантисасында 19 мәнді цифры
көрсетіледі және жадта 10 байт орын алады.
Логикалық (булевтік) тип (boolcan). true және false элементтері бар
логикалық мәндер диапозонын аықтайды. Мұнда false true болатындай етіп
логикалық мәндер реттелінген. Бұл тип жадта 1 байт орын алады.
Символдық (литерлік) тип (char). Ақпарат алмасудың Американдық
стандартты коды (ASCII) анықтаған символдар жиынтығы элементтері осы типтің
мәні болады.
Символдар ASCII кодтары мәндерінің өсуі бойынша реттелген.
Мысалы, ‘A’’B’’C’ ...
Char типтегі мәліметтер жадта1 байт орын алады.
Қарапайым айнымаларды сипаттау мысалы:
Var i, j, k: integer;
х, y, z: real;
р, l, m: byte;
рt: longint;
р, g: boolean;
sir: char;
Программист анықтайтын қарапайым типті қарапайым айнымалылар.
Программист өзі анықтай алатын мәліметтердің қарапайым типіне атап
шығатын (көрсетілетін) тип және тип – диапазон кіреді.
Көрсетілетін тип. Кез-келген көрсетілетін типті дөңгелек жақшада
идентификаторлары көрсетілген реттелген мәндер жиынымен сипаттайды. Бұл тип
вyte типті мәліметтерді “әдемі” түрде ұсыну үшін қолданылады. Мысалы, type
day=(mon, tue, wed, thu, fri, sat, sun);
мұндағы day – көрсетілетін тип идентификаторы, ал жақшада day типті
реттелген мәндер идентификаторы көрсетілген, mon мәні 0 санына бара-бар, ал
sun мәніне - 6 саны. Әрине, mon tue wed thu fri sat sun
екендігі түсінікті ғой деп ойлаймыз.
Тип - диапозон. Бұл тип анықталған қарапайым типке шектеулерді енгізу
жолымен алынады. Шектеу диапазоны нақты жағдайға (есепке) байланысты, яғни
– осы диапазонда қажетті константалардың минимальді және максимальді
мәндері анықталады. Диапазон таңдалынатын типті базалық тип деп атайды.
Нақты сандар үшін диапазон қарастырылмайды.
Мысал қарастырайық:
Type a=10..100;
day=(mon, tue, wed, thu, fri, sat, sun);
work days = mon..fri;
weekend = sat..sun;
Мұнда, а типті дипазон үшін базалық тип - integer, workdays (жұмыс
күндері) және weekend (демалыс күндері) типтері диапозондары үшін – атап
шығатын (көрсетілетін) day (күні) алынған.
Диапазондарды қолдану жадты экономды пайдалануға мумкіншілік береді,
әсіресе, integer типті мәліметтермен жұмыс істегенде.
2.3.2. Құрылымдық (структуралық) айнымалылар
Т-Р-да қарапайым типтерден басқа құрылымды типтер де (жай типтерден
құралатын) пайдаланылады.
Құрылымдық типтердің қарапайымды типтерден айырмашылығы оның
мәліметтерінде компоненті санының бірден көп болуында. Құрылымдық типтің
әр компонентасы қарапай ым немесе құрылымдық типті болады.
Құрылымдық типтің ең төменгі деңгейіндегі компонентасы қарапайым
типтілер болады.
құрылымдық тип::=массив типі жазба типі
жолдық типі файл типі жиын типі.
Индексті айнымалылар
Индексі бар айнымалылар айнымалы-массив компоненттерін құрады. Массив-
бұл бір типті компоненталардан (элементтерден) құрылған мәліметтердің
құрылымдық типі шектеулі сан. Массивтің жеке компонентіне қол жеткізу
компонента индексі бойы0нша іске асады. Компонента индексі-қарапайым типті
өрнек (тек нақты тип емес),әдетте диапазонды тип.
Массивті анықтау (сипаттау) array қызметші сөзінен басталады,одан
кейін квадрат жақшаларға алынған индекс типі көрсетіледі.Индекс типінен
кейін of қызметші сөзі және компонента типі жазылады. Мысалы:
type vector=array[1..10] of real;
mas=array[1..10] of char;
Егер массивтің типі қайтадан массив болса,онда бастапқы массив екі
өлшемді деп аталады. Екі өлшемді массив үшін тип идентификаторын
төмендегідей анықтауға болады:
type vector=array[1..10] of real;
matrix=array[1..8] of vector;
немесе
type matrix=array[1..8] of array[1..10] of real;
Ең ыңғайлы анықтау:
Type matrix=array [1..8,1..10] of real;
Егер индекстердің n типтері берілген болса,онда массив n өлшемді деп
аталады, ал оның компоненталары индекстік өрнектер көмегімен көрсетілетін
болады. Массивтерді сипаттау келесі түрде жүргізіледі:
-типті анықтаумен:
type vector=array [1..10] of real;
matrix=array [1..8,1..8] of real;
tenz=array [1..2,1..3,1..5] of char;
var v:vector;
m:matrix;
buk:tenz;
-типті анықтамай:
var v:array [1..10] of real;
m:array [1..8,1..8] of real;
buk:array [1..2,1..3,1..5] of char;
{мәтін екі бетте,әрқайсысында үш жолдан,әрбір жолда бес символдан}.
Айнымалы жазбалар
Айнымалы жазбалар жазба типті берілгендерге жатады.
Жазба – бұл аяқты сан компоненталардан құрылған мәліметтер құрылымы.
Массивпен салыстырғанда жазба компоненттері әртүрлі типтерге ие болуы
мүмкін және оларға өріс индекс бойынша емес құрама ат бойынша жүргізіледі.
Жазба компонентасы өріс өз идентификаторына ие, сол ат бойынша оған жету
іске асырылады. Әрбір жазба record қызметші сөзінен басталады. Содан кейін
өріс идентификаторлары жазылады. Ең соңында end қызметші сөзі жазылады.
Мысалдар:
Type date=record
Day:1..31;
Mon: (jan,feb,mar,apr,may,jun,jul,aug,se p,oct,nov,dec);
Year:1900...1999
End: (*date*)
Person=record
Name:string[20];
Birth:date;
End;(*person*)
Var p: person;
Мысалы sotr (қызметкер) типіне сәйкес келетін варианттары бар жазба
құрылымын қарастырайық.
Қызметкер туралы мәліметтер. Жалпы фамилиясы және инициялдары (fam).
Жеке.
Қызметкер:
-1-ші бөлім: қызметі (dol 1), еңбек ақы мөлшері (оkl1);
-2-ші бөлім: қызметі (dol 2), еңбек ақы мөлшері (okl2); жұмыс стажы (st);
-3-ші бөлім: ақпарат жоқ.
Жазба мәтіні (тексті):
type otdel=(otd1,otd 2,otd 3);
sotr=record
fam:string[80];(*белгіленген бөлігі-өріс,барлық sotr үшін жалпы*)
case v: otdel of (*варианттық бөлігі*)
otd1: (dol1: string [10]; okl1:100..600);
(*1-ші бөлімнің қызметшілері үшін өрістер тізімі*)
otd2: (dol2:string[10];okl2:250700; st:byte);
(*2-ші бөлімнің қызметшілері үшін өрістер тізімі*)
otd3:();(*өрістер тізімі бос*)
end;(*sotr*)
var s: sort;
Ескертулер:
- әртүрлі варианттарда кездескенімен өрістердің барлық идентификаторлары
бірегей болуы керек;
- егер вариант бос болса, яғни, өріс жоқ, онда жоғарыдағы мысалындағыдай
жазылады: otd3:();
- жазбаның тек бір ғана варианттық бөлімі болады және ол соңғысы болуы
керек;
- бір – біріне енген варианттар болуы, яғни, әрбір вариант тағы басқа бір
варианттарды қамтуы мүмкін;
Айнымалы жолдар
Т-П тілінде символдар қатарын өңдеу үшін құрылымдық берілгендер
(мәліметтер) типі – жолдық тип анықталған.
Жолдық типті анықтау string қызметші сөзінен, одан кейін квадрат жақшада
жолдың максималды ұзындығы көрсетіледі. Жол ұзындығы 1-ден 255-ке дейінгі
диапазондағы бүтін санмен беріледі.
Жолдық айнымалыларды сипаттау төмендегіше жүргізіледі:
-типті анықтаумен:
type filname=string[14];
screenline=string[80];
var fil: filname;
scr: screenline;
-типті анықтаусыз:
var fil: string [14];
scr: string [80];
Ұзындығы көрсетілмеген string типті идентификатор 255 символдан тұратын
жолды анықтайды:
var s: string;
Айнымалы файл
Файл - айнымалылар бір типті компоненттертізбегінекн құрылады. Кез
келген уақытта файлдың тек бір ғана компонентасына жетуге болады.Файл
компонентінің саны өзгеруі мүмкін. Әрбір файл үшін бұл сан ең алдымен 0-ге
тең, одан кейін тек көбейе бастайды.
Файл төмендегідей хабарламамен анықталады:
type intfile=file of integer;
Бұл файлдың компоненттері бүтін сандар болады.
Т-П-да текстік файлдар ерекше орын алады.
Текстік файл деп еркін ұзындықты жолдарға бөлінген символдардың тізбегін
айтады, ол тізбектер файл компоненттері болады.
Текстік файлдармен жұмыс істеген кезде компилятор нақты типті берілгендерді
(integer, real, byte және т.б.) ASEII кодтарына сәйкес символдар (char
типті) тізбегіне келтіреді.
Текстік емес файлдармен жұмыс істеген кезде мәліметтерді мұндай түрлендіру
жүргізілмейді, сондықтан файлды өңдеуге аз уақыт жұмсалады. Алайда текстік
емес файлдарды операциялық жүйенің әдеттегі құрамдармен терминалға немесе
принтерге шығару мүмкін емес және мұндай файлдарды редакторлар көмегімен
құруға болмайды. Себебі тестік емес файлдағы мәліметтер ASEII кодтары емес
бойынша екілі формада сақталады.
Текстік файл типін анықтау:
varидентификатор [,идентификатор]... text;
Файл компоненттеріне файлдық айнымалылар арқылы қол жетуге болады.
Файлдық айнымалыны сипаттау келесі түрде жүргізіледі:
-типіанықталуы бойынша:
type range=1...10;
vector=array[range] of real;
complex=record
re, im: real;
end;
intfile=file of integer
refile=file of real
chfile=file of chаr;
vecfile=file of vector;
compfile=file of complex;
var int: intfile;
re :rewfile;
vec:vecfile;
ch: chfile;
comp: compfile;
типті анықтамай:
var vec:file of array[1..10] of real;
comp:file of record
re,im: real;
end;
inf:file of integer;
re:file of real;
ch:file of char;
Текстік файл айымалысын сипаттау типті алдын – ала анықтаусыз іске
асады:var f:text;немесе var f:file of char;
Жиын – айнымалы.
Турбо Паскаль тіліндегі жиын – бұл максималды саны 256 болатын бір
типтес элементтердің кез-келген жинағы. Жиын типтес берілгенді (мәліметті)
анықтау үшін set қызметші сөзі қолданылады.
Мысалы,
Type charset=set of char; мәні жиын болатын жиын типті көрсетеді, ал
жиын элементтері символдар болады. Жиын элементтері үшін кез-келген
қарапайым тип болады, бірақ real типінен басқа.
Толық мәліметтерді анықтайтын типтер үшін type типі және тип
–диапазан.
Төмендегі мысалды қарастырайық:
Type day= set of 0...31;
Let =set of ‘a’..’z’;
Color=set of (red,green,blue);
Bit=set of byte;
Var d: day;
L:let;
Col :color;
b:bit;
2.4.Константалар (тұрақтылар).
Турбо Паскаль тілінде константалардың үш типі пайдаланылады:
литералда, аталынған константалар және типтелінген константалар.
2.4.1. Константалар-литералдар
Литералдар – бұл сандар, бүтін және нақты символдар және символдар
қатарлары.
Бүтін сандық константалар (longint) - бұл ондық немесе он алтылық
шамалар:
- ондық өрнектеулер, -2147483648-ден +2147483647-ге дейінгі диапазонда;
- он алтылық өрнектеу, $06000000-ден $ҒҒҒҒҒҒҒҒ- ге дейін;
Нақты константаларды (real) төмендегі формат бойынша беруге болады:
- белгіленген нүктелі (5.3,-1.01,100);
- жылжымалы нүктелі (0.5Е2,-1Е-5).
Жолдық константалар (string) – бұл апострофтарға алынған символдар
тізбегі.
Мысалы,
‘Тізбектей жуықтау әдісі’
Егер де қатарда апострофқа алуға қажетті тест болса, онда қатарынан
бірге жазылған екі апостроф жазылады.
Мысалы,
‘”көпіршік”әдісі’
Жиі кездесетін жолдық константалар:
- пробел – ‘’ ;
- бос қатар – ‘’ ;
- бір апострофтан тұратын қатар, - ‘’’’ .
2.4.2. Аталынған константалар
Аталынған константа – бұл белгіленген мән, оған программаның басында
константаны анықтаған кезде ат беріледі (идентификатор).
Аталынған константаларды анықтау бөлімі келесі түрде болады:
Constидентификатор =константа;
[идентификатор=константа;]...
Мысалы,
Const gravity = 9.81;
Max = 1000;
Head = ‘кесте 5’;
Pr = ‘’ ;
C = 2147483647;
Co = -2147483647 ;
Константаларға ат қою программаны түсінуге және оған қажетті
өзгерістерді енгізуге мүмкіндк береді. Турбо Паскаль тілінде кейбір
аталынған константалар алдын – ала анықталған, сондықтан оларды алдын – ала
сипаттамай – ақ қолдануға болады. Мұндай аталынған константалар төменде
көрсетілген:
False =’өтірік’ ; {логикалық константа}
True = ‘шындық’ ; {логикалық константа}
Maxint = 32767;{максималды бүтін сан}
Pi =3.14159265358979E + 000; {пи саны}
Maxlongint = 2147483647 ;{максималды ұзын бүтін сан}
2.4.3. Типтелінген константалар
Типтеленген константалар тек Турбо Паскальда ғана қолданылады. Олар
аталынған константалар секілді анықталады, алайда константа типін көрсету
қажет.
Типтелінген константалар мәндерін өзгерте алады, бұлар негізінен
бастапқы мәндерді меншіктеуде пайдаланылады. Типтелінген константаларды
анықтау синтаксисі:
Constидентификатор:тип идентификаторлары=константа;
[идентификатор:тип идентификаторы=константа;];
Қарапайым типтелінген константалар:
Const number: integer=1990;
Inter: real=19.90
Zang: string [7]=’массив’;
Alf: char=’h’;
Sl: word=65635;
Sq:=shortint=127;
Құрылымдық типтелінген константалар. Бұл константалардың 3 типі болады
- массивтер, жазбалар және жиындар.
- Типі - массив константалар. Бір және екі өлшемді массивтер ең жиі
пайдаланылады.
Мысалы,
Const a: array[1..5] of integer=(0,0,0,0,0);
Maze: array[0..1,0..1] of integer=((0,1),(2,3));
Type status=(act, pas, wat);
Rep=array [status] of string [7];
Const stat: rep=('қыс','жаз','көктем');
а массивінің 5 элементінің әрқайсысы 0 (ноль) мәніне ие болады. Екі
өлшемді maze массивінің элементтері: maze [0,0], maze [0,1], maze [1,0],
maze [1,1]-сәйкесінше 0,1,2,3 мәндерін алады.
Stat [akt], stat [pas], stat [wat] константалары сәйкесінше
'қыс','жаз,''көктем' мәндеріне ие болады.
- Жазба типті константалары:
Type point=record
X,y,z: integer;
End;
Const origo: point=(x:0; y:1; z:5);
Бұл константалар программада origo х, origo у, origo z (немесе x,y,z,
егер де with операторы пайдаланылса) түрінде қолданылады және сәйкесінше
0,1,5 мәндеріне ие болады.
- Жиын типті константалар:
type low=set of ‘a’..’z’;
const voc: low=[‘a’,’r’,’s’];
2.5. Белгілер
Белгі - бұл 0...9999 диапазонындағы таңбасыз бүтін немесе программист
анықтайтын идентификатор.
Белгілер операторлар бөлімінде пайдаланылады. Олар операторлар алдына
қойылады және олардан қос нүкте арқылы ажыратылады. Белгілер пайдалану
алдында программаның сипаттама бөлімінде хабарланады. Белгілерді көрсету
label қызметші сөзімен басталады, одан кейін не таңбасыз бүтіндер немесе
идентификаторлар тізімі келтіріледі, олар өзара үтірлермен бөлінеді; тізім
соңында нүкте - үтір қойылады.
Program primer 2;
Label 10, err, 999;
Begin
10:оператор;...;
err:оператор;...;
999оператор;...;
end.
2.6. Стандартты функциялар
Жиі кездесетін есептеу амалдарын орындау үшін және әртүрлі типке
жататын мәліметтерді түрлендіру үшін Турбо-Паскальда төмендегі стандартты
функциялар (олар жеке сипаттауды қажет етпейді) қолданылады:
- арифметикалық;
- типтерді түрлендіру және реттеу;
- логикалық;
- жолдық;
- файлдық;
- адрестік.
1. Арифметикалық функциялар
Abs(x) – x - тің абсолютті мәні есептелінеді, ол х секілді типке (real,
integer) ие.
Arctan(x)-арктангенс х-ті есептейді, нәтижесі радианмен алынады.
Cos(x)-косинус х-ті есептейді, х радианмен беріледі.
Exp(x)-e санының х дәрежесін есептейді.
Ln(x)-натурал логарифм х - ты есептейді.
Sin(x)-синус х-ті есептейді.
SQR(x)-х-тің квадратын шығарады.
Sqrt(x)-х-тен квадраттық түбірді есептейді..
Random – 0-ден 1-ге дейінгі диапазонда real типті кез-келген санды
бірқалыпты бөліктеу заңдылығымен генерациялайды.
Random(х) - 0-ден х-ке дейінгі диапазонда кез-келген бүтін санды
бірқалыпты бөліктеу заңдылығымен генерациялайды, х – integer типті сан.
Ескерту: өне бойы бір тұрақты кездейсоқ санның шығып тұруын болдыртпау
үшін Random және Random(х) функцияларының алдында randomize процедурасын
(кездейсоқ сандар генераторын инициализациялайды) қосқан жөн болады.
Arctan, cos, exp, ln, sin, sqr, sqrt стандартты функциялары үшін х
аргументі real немесе integer типтес болуы мүмкін, ал нәтижесі әрқашан да
real типтес болады.
2.6.2.Типтерді түрлендіру және реттеу функциясы
Frac(x) – x- тің бөлшек бөлігін есептейді, бүтін бөлігі алып
тасталынады; х-real типті; нәтижесі – real типті.
Мысалы:
Frac (123.456); {0.456} frac (-123.456); {-0.456}
Int (x), trunc (x) – х- тің бүтін бөлігін есептейді, бөлшек бөлігі алып
тасталынады; х – real типті; нәтижесі – integer типті (trunc үшін), real
типті (int үшін).
Мысалы,
Trunc (325.568);{325} trunc (-325.568); {-325}
Round(x) – дөңгелектелінген бүтін бөлікті есептейді; х-real типті;
нәтижесі –integer типті.
Мысалы,
Round (325.568); {326}round (-325.568); {-325}
Round (325.268); {325} round (-325.268);{-324}
Chr(x) - сандық коды бойынша ASCII-гі символды анықтайды; х-integer
типті; нәтижесі-char типті.
Мысалы, char(65); {‘A’}
Ord(x)-символдардың реттелген жиынынан символдың реттік номерін
есептейді (реттік нөмір 0-ден басталады); х-char типті; нәтижесі-integer
типті.
Мысалы,
Program primer 3;
Type day=(mo, tu, we, th, fr, sa, su);
Var x: day;
Begin x:=we;
Writeln (ord(x));
End.
Нәтижесі-{2}
Succ(x)-х-тен кейінгі келесі мәнді береді; х-кез келген қарапайым типті
мән (real-дан басқа).
Pred(x)-х-тің алдындағы мәнді береді; х-кез келген қарапайым типті мән
(real-дан басқа).
Мысалы,
Colors=(red, blue, green);
Succ(blue); {green}
Pred (blue); {red}
2. Логикалық функциялар
Odd(x) - егер х-тақ сан болса, true мәнін береді және false керісінше
болса; х-integer типті.
Eof(f) - true мәнін береді, егер де файлды оқыған кезде f файлды
айнымалысы файл соңына жеткен болса, кері жағдайда оның мәні false.
Eoln(f) функциясы true мәнін қабылдайды, егер текстік файлды оқыған
кезде f файлдық айнымалысы ағымды жолдың соңына жеткен болса, кері жағдайда
оның мәні false.
2.6.3. Жолдық функциялар
Copy(str, n1, n2) – функциясы жұмысының нәтижесінде str жолдық қатарынан
n1нөмірден бастап ұзындығы n2 ішкі жолдық қатар алынады, мысалы:
Copy(‘a b c d e f g’,5, 2); {‘e f’}
мұнда str – жолдық типті өрнек, n1 n2 – іnteger типті.
Ескертулер:
- егер n1-дің мәні str жолдық қатарының ұзындығынан үлкен болса, нәтижесі
бос жол;
- егер (n1+n2)-нің мәні str жолдық қатарының ұзындығынан үлкен болса, онда
символдары str шегінде болатын ішкі жолдық қатар нәтиже ретінде болады.
Ал егер n1 мәні 1..255 диапазонынан шығып кетсе, онда нәтиже қате.
Concat(str1, str2,...,strn) - жолдық қатарлардың бірігуі функция жұмысының
нәтижесі болады; аргументтер саны еркін болуы мүмкін; аргументтер үтірмен
ажыратылады;
Str1, str2,...,strn – жолдық қатарлар типті өрнектер.
Мысалы,
Concat(‘ab’, ’cd’, ‘ef’); {‘a b c d e f ’}
Осы функцияның көмегімен атқарылатын амалды + операциясының көмегімен
жүзеге асыруға болады.
Length (str) – жолдық қатарындағы символдар санын есептейді; str – жолдық
қатар типті өрнек; нәтижесі - integer типті.
Мысалы,
Lenght (‘a b c d e f’); {6}
Pos (str1, str) - функцияның жұмыс істеу нәтижесінде str жолдық қатарының
позициясынан str1 ішкі жолдық қатардың бірінші символының кездесетіндігі
туралы хабар алынады, ал егер де ондай символ кездеспесе нәтиже ноль;
бүтін сан. Мұнда str1, str – жолдық типті өрнектер, нәтиже – integer типті.
Мысалы,
Pos (‘de’,’a b c d e f’); {4}
Pos (‘gh’,’a b c d e f’); {0}
2.7. Өрнектер
Паскаль түріндегі өрнек операндалардан (константалар, айнымалылар,
функциялар), амалдар (операциялар) белгілерінен және дөңгелек жақшалардан
құрлады.
Операндалар типтеріне және өрнектегі амалдар түріне байланысты өрнектер
арифметикалық, логикалық, жолдық және жиындық болып бөлінеді.
2.7.1. Арифметикалық өрнектер
Арифметикалық өрнектердің операндалары болып константалар, айнымалылар және
real немесе integer типтес функциялар қатысады. Осы операндаларға келесі
арифметикалық операциялар анықталады:
+ -қосу;
- -алу;
* -көбейту;
-бөлу (екі операнда да real немесе integer типтес, нәтиже - real );
div - бүтін сандық бөлу (екі операнда да integer типтес, нәтиже - integer
).
mod – бүтіндей сандық бөлудің қалдығы;
Арифметикалық өрнектерді есептеу кезінде амалдар приоритетін анықтауға
байланысты келесі ережелер қабылданған:
- унарлық минусты - меншіктеу операциясы ең жоғарғы приоритетке ие;
- + және – операцияларына қарағанда *, div, және mod операциялары жоғары
приоритетке ие.
- Егер операциялардың приоритеттері бірдей болса, онда сол жақ операциялар
ерте орындала бастайды;
- Жақшадағы өрнек бір бүтін операнда ретінде қабылданады;
- Жақшалар бір-бірлеріне енгізілген болулары мүмкін: a(b*(c-b)).
- Арифметикалық өрнектерді жазуда дөңгелек жақшалардың қос – қостан
пайдаланатындығын ұмытпауымыз керек, яғни, ашылатын жақшалардың саны
жабылатын жақшалардың санымен бірдей болулары керек.
- Div және mod операцияларын жазған кезде пробелдер (бос орын) міндетті
түрде қажет: i div j; i mod j. Пробел қойылмаса компилятор i div j және i
mod j – лерді идентификаторлар ретінде қабылдайды
2.7.2. Логикалық өрнектер
Логикалық өрнектерде логикалық операндалар, логикалық операциялар
және қатынастар қатысады. Логикалық операндаларға логикалық константалар,
логикалық айнымалылар және логикалық функциялар жатады.
ТП-да логикалық өрнектер 4 логикалық опрациялардың операндалары болуы
мүмкін:
Not (жоқ) – жоққа(теріске) шығару;
And (және)-логикалық көбейту;
Or (немесе)-логикалық қосу;
Xor-немесені алып тастау.
Логикалық өрнектердің мәндері кестеде келтірілген:
P q not p p and q p or q px or q
false false true false false false
true false false false true true
false true true false true true
true true false true true false
Төмендегі қатынас амалдарымен:
= (тең), (тең емес)
(аз), =(аз немесе тең)
(көп), =(көп немесе тең)
байланысқан өрнектер конструкциясын қатынас деп атайды. Барлық қатынас
операциялары boolean (true немесе false) типті нәтиже береді.
Мысалы:
1=2{true}
47 {false}
Т-П тілінде not, and, or, xor логикалық амалдарын integer типті
операндаларға да пайдалануға болады, бұл жағдайда әр бит бойынша жоққа
шығару, әр бит бойынша логикалық көбейту және қосу орындалады.
Сонымен қатар бұл тілде бүтін санды операндалар үшін әр бит бойынша
солға (shl) және әр бит бойынша оңға (shr) жылжыту амалдары анықталған.
3. Жолдық өрнектер.
Жолдық өрнектер құрамына жолдық константалар, жолдық айнымалылар,
жолдық функциялар және + операциясы (жолдық типті операндаларды
біріктіру) кіреді.
Мысалы,
‘TURBO’ + ‘’ + ‘PASCAL’=’TURBO - PASCAL’;
‘1 2 3’ +’’+ ‘4 5 6’ = ‘1 2 3. 4 5 6’.
Екі жолды салыстыру қатынас амалдары көмегімен әр символдың ASCII-дегі
кодтарын ескере отырып жүргізіледі.
Мысалы,
‘а’ ’б’ {true};
‘а’ ’б’ {false};
‘TURBO’=’TURBO’{true};
‘turbo’=’turbo’ {false}
Егер жолдар ұзындықтары әртүрлі болса, бірақ та соңғы символға дейін бір –
біріне сай келсе, онда қысқа жол ұзынынан кіші болып есептелінеді.
Мысалы,
‘turbo’’turbo_’ {true}.
2.7.4.Жиындық өрнектер
Жиындық өрнектер жиындық константалардан, жиындық айнымалылардан,
жиындық конструкторлардан және жиындарға қолданылатын амалдар таңбаларынан
тұрады.
Жиындық конструктор – ол квадрат жақшаға алынған жиын элементтерінің
тізімі.
Мысалы,
[] {бос жиын};
[1..5] {жиын - диапазон};
[1,2,3,4,5] {алдыңғыға эквивалентті жиын}
Жиындарға қолданылатын амалдар (операциялар): жиынды біріктіру (+),
қиылыстыру (*), айырым (-), қатынас амалдары (=, , =, =, , ) және
жиынға енетіндігін (in) тексеру амалы.
Екі жиынның бірігуі екі жиынның элементтерін қамтиды,екі жиында да
кездесетін бірдей элементтер бір – ақ рет кіреді.
Мысалы,
[red,green ] + [green,blue] = [red,green,blue].
Қиылысу екі жиында да бар ортақ элементтер болады. Мысалы,
[red,green,blue] * [green] =[green].
Екі жиынның айырымы екінші жиынға жатпайтын біріінші жиынның элементтерінен
тұрады.
Мысалы,
[red,green,blue] – [green] =[red,blue].
Егерде екі жиынның екеуінде де бірдей элементтер бар болса, онда тепе-
теңдік болады.
Мысалы,
[red,green] = [green,red] {true}.
Егер де екі жиынның арасында бір элементке болса да айырмашылық бар болса,
онда тепе - теңсіздік болады.
Мысалы,
[red,green,blue] [red,green] {true}
Жиынды қамту.
Мысалы,
[red,green,blue] = [red,green,blue,orange] {true}, өйткені бірінші
жиынның барлық элементтері екінші жиын элементтері болып тұр.
Элементтің жиынға енетіндігін тексеру.
Егер х элементі s жиынына енетін болса, онда x in s өрнегінің мәні true,
кері жағдайда – false. x айнымалысының типі s жиынының базалық типімен
бірдей болулары керек.
Мысалы,
3 in [1..5] {true};
‘A’ in [‘a’..’z’] {false}.
5. Өрнектердегі операциялардың
орындалуының приоритеті.
Егерде өрнекте жақша болмаса, онда амалдар (операциялар) төмендегідей
ретпен орындалады:
1). Функцияларды есептеу;
2). Унарлық минусты меншіктеу;
3). Not;
4). *, , div,mod, and, shi , shr ;
5). + , - , or, хor ;
6). =, , , =, = , in .
Бірдей деңгейдегі операциялар солдан оңға қарай орындалады, ал жақшалардың
көмегімен кез – келген есептеу ретін беруге болады.
2.8.Өрнек - константалар
Өрнек - константалар программа орындалғанға дейін компиляциялау
кезінде компилятормен есептеледі. Өрнек – константаларда айнымалыларды,
типтелінген константаларды және төмендегі тізбекке кірмейтін функцияларды
қолдануға болмайды:abs, chr, length, odd, ord, pred, round, succ, trunc.
Өрнек – константаларды константаларды сипаттауда қолдануын қарастырайық:
const min = 0;
max = 100;
оеntr = (max - min) div 2;
message =’out of memory’;
errstr = ‘error :’ + message + ’. ’;
ІІІ- БӨЛІМ. Турбо Паскаль тілінде программалау
Құрылымдық программалаудың негізгі принциптерін қарастырған кезде
әдетте программаларда төрт басқарушы құрылымдарды бөле атап айтады: бірінен
кейін бірі (тізбектей) таңдау, қайталау және топтау.
Жоғарғы дәңгейдегі программалау тілдерінде негізгі конструкция ретінде
бірінен кейін бірі (сызықты) құрылым – егер бір оператор программада
келесіден кейін орналасса, онда ол кейінірек орындалады - қарастырылады.
Таңдау конструкциясы мына жағдайларда қолдынылады, егерде программаны
орындау кезінде есепті шығару үшін бірнеше мүмкін болатын бағыттардың
ішінен біреуін таңдау қажет болатын болса. Программаның қайталанатын
бөлігін цикл деп атайды. Циклға инициализациялау блогы, циклдан шығуды
тексеретін блок және бірнеше рет қайталанатын цикл денесі кіреді (енеді).
Топтау – операторлар тобынан (процедуралар, функциялар) блок
ұйымдастыру деген сөз. Үлкен программалар үшін блоктардан модульдерді
құруға болады.
Оператор – бұл қандай да бір іс - әрекетті орындау үшін компьютерге
берілетін нұсқау.
Турбо Паскаль тілінің синтаксисін және операторларын қолдануды, типі
және күрделілігі әртүрлі деңгейдегі программаларды құру мысалдарында
келтірілетін болады.
3.1. Сызықты программа
Сызықты программа (бірінен кейін бірі конструкциясы) енгізу, шығару
және меншіктеу операторларын қамтиды.
Енгізу ... жалғасы
Кезкелген маман ақпараттық технологияларды өз қызметінде тиімді
пайдалана алуы үшін ол практика жүзінде берілген есептерді қоя және шеше
білуі керек. Практикалық есептерді шешуде, оны дайындау және компьютер
көмегімен шешудің технологиясын меңгеруде программалау тілін білу өте
қажет болады.
Қазіргі кезде программалау тілдері процедуралық, логикалық және
обьектілі- бағыталынған болып үш түрге бөлінеді. Мысалы, дәстүрлі
(классикалық) процедуралық программалау тілдеріне - Фортран, Паскаль,
Бейсик және т.б., логикалық тілдерге – ЛИСП, Пролог және т.б.,обьектілі –
бағытталынған программалауға визуальді программалау тілдеріне – Borland
C++, Object Pascal және т.б. жатады.
Программалау тілі – ол электрондық есептеуіш машинасына арналған
алгоритмді орындауға арналған электрондық машина түсінетін ерекше тіл.
Бүгінгі күні дербес компьютерлерде ең кеңінен қолданылатын
программалау тілдерінің бірі – ол Паскаль тілі.
Паскаль тіліне тән болатын программалау стилінің негізі ретінде
мәліметтер типінің философиясы алынған.
Жалпы, программалау әдістеріне дағдылану үшін тілдегі мәліметтердің
ұйымдастыру концепциясын түсініп, білу керек болады. Программаны түсініп
ұғынуда және оның орындалу барысында пайда болатын қателерге автоматты
түрде диагностика беруде мәліметтер типтері маңызды роль атқарады.
Паскаль тілінің дәл осы қасиеті оның құндылығы болып саналады және
бұл тіл программалау мәдениетін тиянақты үйретуде үлгі бола алады.
Паскаль – блокты, модульді құрамда программа құруға қажетті тіл.
Бұл әдістемелік нұсқау төрт бөлімнен тұрады, алғашқы бөлімде Паскаль
тілінің құрылымдық (структуралық) программалау әдісі, есептің математикалық
сипаттамасы және оны шешу әдістері, ал екінші бөлімде тілдің негізгі
элементтері, олардың жазылу ережелері және жалпы программа туралы теориялық
мағлұматтары , үшінші бөлімде негізгі операторлар, оларды программада
қолдану жолдары мысалдармен көрсетіледі және графикалық , кеңейтілген
мәтіндік режимде жұмыс істеу үшін процедуралар мен функциялар
қарастырылады , төртінші бөлімде программалау тілін оқыту әдістемесі
қарастырылған.
Осы кезге дейінгі Паскаль тілін оқып- үйренуге арналған белгілі оқу
құралдарынан бұл әдістемелік нұсқаудың ерекшелігі мынада:
- әр нақты тақырып бойынша теориялық материалдар қысқа түрде
беріледі;
- әр тақырыпқа альтернативті тұрғыда 2-3 мысалдар келтіріледі;
- әдістемелік нұсқаудың әр (немесе 2-3) тақырыбын зертханалық жұмыс
және оқулық элемент ретінде алуға (пайдалануға) болады.
Осы әдістемелік нұсқау жас информатика пәні мұғалімдеріне , төменгі
курс білімгерлеріне және жоғары сынып оқушылары ұсынылады.
І- БӨЛІМ
Құрылымдық (структуралық) программалау әдісі
1.1. Құрылымдық программалау әдісінің мазмұны
Құрылымдық программалау әдісі ережелер мен нұсқаулар жинағы түрінде
ұсынылады, оларды пайдалану мына төмендегі жағдайларға қол жеткізуге
мүмкіндік береді:
-бастапқы мәліметтерге тәуелді емес сенімді программалар дайындауға;
-өзгерістер мен жетілдірулерді жеңіл енгізуге болатын программалар
түзуге (құруға);
-адам еңбегін және уақытын үнемдейтін тиімді программалар алуға.
Кезкелген жоғарғы деңгейдегі программалау тілдерінде құрылымдық
программалау әдісі қолданылған деп айтуға болады, егерде
-программалауда тек қана төрт басқарушы (сызықты (тізбекті), тармақталу
(таңдау), қайталау және топтау) конструкциялары қолданылған және прог-
рамма құрылымы мәліметтер құрылымына сәйкестенген болса;
- мұнда бірінші кезеңде программаны жобалау жүргізіледі, ал екінші
кезеңде оны жазады.
1.2 Программаны жобалау
Тікелей программаны жобалауға дейін алдынала дайындық кезеңдері
жүргізіледі.
1.2.1. Есептің математикалық сипаттамасы
Дербес компьютерде шығарылатын есептердің көбісі негізінен нақты
математикалық тұжырымдамаға ие болуы керек. Егерде есептің қойылуы кезінде
кейбір функционалды тәуелділіктер тек қана сапалы тұрғыда қарастырылған
болса, енді оларды қатаң математикалық тәуелділіктермен көрсету
(байланыстыру) керек болады.
Математика тілінде есепті сипаттауды формализациялау деп атайды.
1.2.3 Шешу әдісін таңдау
Есептің математикалық тұжырымдалуына сәйкес дербес компьютерде оны
шешудің сандық әдісі таңдалынады.
Бастапқы мәліметтердің барлық тәуелділіктері анықталған және дербес
компьютерде оның нәтижесін алу жолдары мен тәсілдері көрсетілген болса,онда
есепті шешу әдісі таңдалған болып есептелінеді.
1.2.4.Есепті шығару алгоритмін жасау
Алгоритм түсінігі есептеу матеамтикасының негізгі фундаментальды
ұғымына айналған,сондықтан оған анықтама берудің қажеті жоқ, оның
түсініктемесін бастапқы ұғым ретінде берген жөн.
Қойылған есептің шешімі төрт арифметикалық әрекетке алып келетін
алгоритмдерді сандық алгоритмдер деп атайды.Сандық алгоритмдермен қатар
ақпаратты-логикалық есептерді шығаратын да алгоритмдер бар ,оларда қандай
да бір критерий бойынша әр түрлі варианттарды таңдау және өзара салыстыру
негізгі роль атқарады.
Компьютерде есепті шешу нәтижелі болу үшін алгоритмнің барлық қадамдары
нақты көрсетілуі керек.
Мысалы, “Алгоритм – бұл есептеу процесі негізінде анықталатын дәл
элементар нұсқаулар тізбегі, ол кез – келген бастапқы мәліметтерді
(берілгендерді) пайдалана отырып, толыққанды нәтиже алуға бағытталынған.”
1.2.5.Жоғарыдан төменге қарай әдісімен программаны жобалау
Турбо-Паскальді және т.б.-ды қазіргі заманғы көптеген программалау
тілдерін қолдану кез келген үлкен программаны нерархиялық құрылымды құратын
подпрограммалар (процедуралар) түрінде ұсынуға көмектеседі.
Нерархиялық құрылымды программаларды жобалауда қолданатын әдістердің ең
бір кеңірек тарағаны жоғарыдан төменге қарай әдісі.Жобаланатын программа
негізгі (басты) программаға және подпрограммаларға (ішкі программаларға,
процедураларға) бөлінеді. Подпрограммаларды шақырып отыру негізгі
программалардан іске асырылады. Әрбір подпрограмма мүмкіндігінше басқа
подпрограммалардың көбінен бөлектелуі керек,ал оларға ақпаратты беру үшін
подпрограммалар параметрлерін қолдану ұсынылады. Подпрограммалардың бір –
бірінен тәуелді болмаулары программистке сенімді түрде жеке
подпрограммалармен жұмыс істеуге, оларға қажетті өзгерістерді шатасып
кетемін бе деп көп ойланбай – ақ жүргізе беруіне мүмкіндік береді.
Барлық басқару байланыстары жоғарыдан төменге қарай бағытталуы керек.
1.2.6. Мәліметтерді ұсыну
Программа құрылымы таңдап алынған берілгендердің құрылымына байланысты
болады. Осыған байланысты программаларды жобалаудың тағы бір әдісін
қарастырайық. Бұл әдіс бастапқы мәліметтердің берілуіне баса көңіл
аударады, блин, мұнда өңделетін программаның структурасы (құрылымы) және
мәліметтер құрылымы маңыздары бара – бар деп есептейді..
Программаларды осы әдіспен жобалау мәліметтерді сақтау және ұсынуды
олардың өңделетін программамен байланыстырмай қарауды ұсынады. Мәліметтер
файлдарын құруда жүйелік құралдар – редакторлар қолданылуы мүмкін.
Берілгендер файлдары программаның өзінде де құрылуы мүмкін.
1.2.7. Программаны жобалаудың реті
Программаны жобалауды төмендегі рет бойынша жүргізген жөн:
-шығарылатын мәліметтер макетін жобалау;
-программаның жалпы құрылымын жасау;
-программа текстін (мәтінін) жазу.
Шығарылатын мәліметтер программа жұмысының нәтижесі болады және оның
құрылымына әсер етеді.Программа тексті дайындалған құрылымға сәйкес жоғарғы
деңгейлі программалау тілінде жазылатын болады.
ІІ- БӨЛІМ. Турбо-паскальдің берілгендері және өрнектері
2.1.Турбо-паскаль тілінің негізгі элементтері
Турбо-паскаль программалау тілі, құрылымдық (структуралық) программалау
талаптарын толық қанағаттандыратын жоғарғы деңгейдегі тіл болып
есептелінеді.
Кез – келген программалау тілінің негізі оның алфавиты болып саналады.
Алфавит - бұл программаны жазуда қолдануға болатын белгілер (литерлер,
символдар) жинағы.
2.1.1. Тіл алфавиті
Турбо-паскаль тілінің алфавиті әріптерден,сандардан және арнайы
символдардан тұрады.Оған кіретіндер:
-латын алфавитінің бас және кіші әріптері.А-дан Z-қа дейін,а-дан z-қа дейін
және арнайы символдар @ # $ оларды әріптер ретінде де қолдануға болады.
-кирилицаның бас және кіші әріптері(символдық және жолдық мәліметтер
(берілгендер) үшін):А-дан Я-ға дейін ,а-дан я-ға дейін;
-цифрлар:0123456789;
-арнайы символдар:пробил+-= * ^ ( ) { } [ ] , . ; : ’’ ‘ &_(сызып қою
символы).
2.1.2. Идентификаторлар және қызметші сөздер
Программада белгілі бір мағынаға ие алфавит белгілерінің бөлінбейтін
тізбегін сөздер деп атайды. Сөздердің қызметтеріне қарап оларды
идентификаторлар және қызметші сөздерден бөледі.
Идентификаторларды, белгілеулерді, константаларды, айнымалыларды,
процедураларды және функцияларды белгілеу үшін пайдаланады.
Идентификаторлар әрқашанда әріптен немесе сызып қою символынан басталуы
тиіс, ал одан кейін белгілер,цифрлар және әріптердің кез – келген
комбинациясын пайдалануға болады.
Идентификатор ұзындығы 127 символдармен шектелген. Идентификаторларды
жазған кезде Т-Р латын бас және кіші әріптерден эквивалентті деп
қабылдайды. Идентификаторды жазуда саннан бастауға және оның құрамында
пробелді (бос позиция) қатыстыруға болмайды.
Идентификаторларға мысалдар:TURBO,turbo,sq,tpr.
Қызметші сөз - ағылшын сөзін құрайтын латын әріптерінің тізбегі,
қолданыста анықталған және тек бір мағыналы мәнге ие болады.
Т-Р-да идентификаторлар ретінде қолдануға болмайтын бірқатар қызметші
сөздер бар.Ол мына төмендегі сөздер:
absolute
and externa nil shr
array file not shl
begin forword overlay string
case for of then
const function or type
div go to packed to
do inline procedure untile
down to if program var
else in record while
mod set xor
2.1.3. Комментарийлар
Программадағы {символдар тізбегі} немесе (*символдар тізбегі*)
түріндегі жазуды комментарий деп атайды.
Мұндағы символдар тізбегіне {} және (**) символдарынан басқасы енуі
мүмкін.Бір түрдегі жақшаларды бір-біріне енгізуге болмайды. Бірақ та {}
фигуралық жақшасын (*..*) жақшасына немесе керісінше енгізуге болады. Бұл
деген сөз комментарийлары бар бүтіндей программаға комментарий беруге
мүмкіндік береді.
Комментарийлар мақсаты-программалардағы барлық обьектілерді пайдалануға
және оларға амалдар қолдануға түсініктемелер беру.
2.1.4. Компилятор директивалары
Компилятор директивалары - бұл программаның компиляциялар режимдерін,
программалардың орындалу және тексерулерін басқару үшін пайдаланылатын
комментарийлердің арнайы формалары.
Компилятор директивасы келесі синтаксиске ие:
{$компилятор директивасы} немесе (*компилятор директивасы*).
2.2. Программа құрылымы
Тіл синтаксисін дұрыс сипаттау үшін Бэкус-Науэрдің металингвистикалық
формулаларын қолданамыз.Тілдің әрбір анықталатын термині және олар арқылы
анықталған терминдер бұрыштық жақшаларына алынады. Анықтама бойынша
болады деген сөздер орнына::=құрамдық символын қолданады, ал немесе
сөзінің орнына вертикальдық символын қолданады. Егер де тілдің кейбір
терминдерінің қатысуы міндетті болмаса, онда ол квадрат жақшаға алынады. Үш
нүктенің болуы осы конструкцияның кез – келген рет қайталануы мүмкін
екендігін көрсетеді. Фигуралық жақшаның болуы осы жақшаға алынған тілдің
бірнеше терминдерінің біреуінің міндетті түрде болуын көрсетеді.
Т-Р тілдегі программаны синтаксистік түрде екі бөлікке бөлуге болады:
программаның басы және блок.
программа::=программа басыблок.
2.2.1. Программа басы
Турбо – Паскальда программа басы көмекшілік функциясын орындайды. Ол
тіпті жазылмауы да мүмкін. Егер де программа басы қатысса онда, ол
программа атын және программаның сыртқы ортамен өзара қимылын іске асыруға
мүмкіндік беретін параметрлер тізімін (міндетті түрде емес) көрсетеді.
Программа басы рrogram қызметші сөзімен басталады, одан кейін программа
идентификаторы (аты) жазылады. Осы индекаторды кейін программаның басқа
объектілерінде пайдалануға болмайды.
Программа басы аяғында нүкте – үтір (;) қойылады.
Мысалы, рrogram myfile;
2.2.2. Программа блогы
Блокта сипаттамалар мен анықтамалар қамтылады (көрсетіледі,
келтіріледі).
Синтаксисі:
Type тип идентификаторы = mun сипаттамасы ;
[ тип идентификаторы = тип сипаттамасы ; ]...
Статикалық құрылымның барлық айнымалаларын берілгендер типтеріне
сәйкес қарапайым және құрылымдық айнымалыларға бөлуге болады. Құрылымдық
айнымалыларға индексті айнымалылар, жазба – айнымалылар, жолдық –
айнымалылар, файл - айнымалылар және жиын – айнымалылар кіреді.
Оларда алдымен программаға тиісті локальді идентификаторлар хабарланады
,ал одан кейін оларға жүргізілетін іс-әрекеттер (операторлар) көрсетіледі.
Блок 6 бөлімнен тұрады, программада операторлар бөлімінің басқалары бос
та болуы мүмкін.
блок::=белгілеулерді сипаттау бөлімі
константаларды анықтау бөлімі
типтерді анықтау бөлімі
айнымалыларды сипаттау бөлімі
прцедуралар мен функцияларды сипаттау бөлімі
операторлар бөлімі
Стандартты паскаль тіліне қарағанда Т-Р сипаттамалар мен анықтамалар
бөлімінің кез келген сан рет кездесуіне және кез келген ретпен орналасуына
мүмкіндік береді.
Процедура (функция) құрылымы программа құрылымына ұқсас болады,
айырмашылығы программа басын жазуда ғана. Процедура (функция) блогында
қайтадан процедура (функция) сипаттамасы кездесуі мүмкін. Сондықтан
процедура (функция) сипаттамалар бір-біріне текстік түрде енгізіліп
жазылуы мүмкін. Бір – біріне енгізілген процедураларды (функцияларды)
сипаттаған кезде, Т-Р тіліндегі программалардағы обьектілерді
локализациялау ережелеріне сәйкес бір сол бір идентификаторларды және
белгілеулерді пайдалануға болады.
Идентификаторлар қай блоктың басында сипатталған болса,онда олар сол
блок үшін локальді деп есептелінеді. Олар осы блокта бар болып және оған
енгізілген блоктардың барлығында қатысқан болса, олар үшін глобальді болып
есептелінеді. Программаның операторлар бөлімі begin және end қызметші
сөздері арасына орналасады. end сөзінің соңында міндетті түрде нүкте
қойылады. Процедуралар (функциялар) құрамындағы операторлар бөлімі де begin
және end қызметші сөздерінің арасына орналасады, бірақ мұнда end сөзінен
кейін нүкте – үтір (;) қойылады. end алдында нүкте үтір болуы да немесе
болмауы да мүмкін.
Т-Р тілі программасы құрылымының ерекшелігі оның құрамына кейбір
стандартты програмалар модульдері енгізу мүмкіншілігі болып табылады. Бұл
жағдай оперативтік жадты экономдау (тиімді) пайдалану мақсатында кейбір
стандартты процедуралар мен функцияларды стандартты программалық
модульдерге орналастырумен шешіледі. Сондықтан программа басынан кейінгі
жолда осы программада пайдаланылатын программалық модульдер тізімі
көрсетілуі (ұсынылуы) керек.
Ұсыныс синтаксисі:
ұсыныс::=usesмодульдер идентификаторлары тізімі;
Стандарттық модульдерді қосу мысалын қарастырайық:
Program primer1;
Uses Crt,Dos,Printer,Graph;
Бұл мысалдағы келтірілген стандарттық программалық модульдер
идентификаторларының қызметтері төмендегідей:
-Ctr модулі экран режимін басқаруды, клавиатураның кеңейтілген
кодтарын, бояу, терезелер және дыбыстық сигналдармен қоса клавиатура мен
дисплейдің барлық мүмкіндіктерін пайдалануға мүмкіндік береді.
-Dos модулі уақыт және датаның ағымды мәнін алу және қоюды, файлдарды
каталогтар бойынша іздеуді және программаның орындалуымен қоса MSDOS - тың
әр түрлі функцияларын қолдайды;
-Printer модулі баспа құрылғысына жету мүмкіндігін тез ұйымдастырады;
-Graph модулі – бұл CGA,EGA,VGA,HERO,MEGA,PC 3270,ATT,IBM 8514
графикалық адаптерлері үшін графикалық пакет.
System стандартты модулінің ролі ерекше, бұл модульде негізгі
стандартты процедуралар мен функциялар қамтылған, ол программаменен бірге
бірден оперативтік (жедел) жадқа жүктелінеді. Бұл модульдің программада
сипатталынуы (көрсетілуі) міндетті емес.
Программист қолданушының жеке модулін түзей алады.
2.3. Айнымалылар
Айнымалы тілдің негізгі элементі болып табылады. Ол идентификаторымен
(атымен), мәнімен және типімен сипатталады.
Айнымалылар оларды сипаттауда көрсеткен (анықтаған) типке ғана
жатады және тек осы типті мәнді қабылдай алады.
Айнымалылар сипаттамасы бір айнымалының немесе көптеген (бірнеше)
айнымалылар аттарын және типтерін анықтай алады. Сипатталынған айнымалылар
жинағы бір жерге топтаса отырып, айнымалыларды сипаттау бөлімін құрады.
Айнымалыларды сипаттау бөлімі var сөзінен басталады және келесі түрде
жазылады: var идентификатор [, идентификатор ]...:
идентификатор;]...
Айнымалылардың статикалық және динамикалық құрылымдары болады.
Статикалық құрылымда оперативті есте сақтау облысынан барлық
айнымалыларға есепті шығарғанға дейін орын бөлінеді және бұл облыс есепті
шығарып болғанша тұрақты болады.
Динамикалық құрылымда айнымалыларға оперативтік есте сақтау облысынан
орын бөлінеді және есепті шешу барысында олар оперативті жадтан шығарыла
бастайды.
Т-Р тілінде әрбір айнымалымен берілгендердің тек қана бір типі ғана
байланысады.
Берілгендер типі –бұл мәндер жиыны, олардың айнымалыларға ие болуы және
оларға амалдар қолдану, айнымалыларға жадтан орын бөлу қарастырылған
болады. Берілгендер типінің қарапайым стандартты, программистың өзі
анықтайтын қарапайым, құрамалық және сілтемелік типтер түрлері болады.
Берілгендер типі типтерді анықтау бөлімінде анықталады. Бұл бөлім
type сөзінен басталады.Оған тип идентификаторы, теңдік таңбасы және
берілгендер типтерінің сипатталуы жатады.Типті анықтау нүкте – үтірмен (;)
аяқталады.
2.3.1. Қарапайым айнымалылар
Қарапайым айнымалылар идентификатормен белгіленеді, ал олардың мәндері
қарапайым стандарттыға немесе программист анықтаған қарапайым типке
мүмкін.
Қарапайым стандартты типті қарапайым айнымалылар.
Т-П-да келесі қарапайым стандартты типтер анықталған .
Бүтін санды тип (integer). Бұл типке барлық бүтін сандар кіреді. Ол
–32768-ден +32767 дейінгі даиапозонда шектеледі және жадта 2 байт орын
алады.
Байттық тип (byte). Оған 0-ден 255-ке дейінгі бүтін сандар кіреді және
жадта 1 байт орын алады.
Бүтін сандық қысқа тип (shorting). –128-ден +127-ге дейінгі бүтін
сандар кіреді және жадта 1 байт орын алады.
Ұзындығы сөзге тең бүтін сандық тип (word). Бұл типке 0-ден 65535-ке
дейінгі бүтін сандар кіреді және жадта 2 байт орын алады.
Бүтін сандық ұзын тип (longint). –2147483648-ден +2147483647-ге дейінгі
диапозондағы бүтін сандар кіреді және жэадта 4 байт орын алады.
Заттық (нақты) тип (real). 2.9х10-39-дан 1.7х1038-ге дейінгі
диапозондағы нақты сандар кіреді және жадта 6 байт орын алады.
Бірлік дәлдікті тип (single). Бұл типке 1.5х10-45-тен 3.4х1048-ге
дейінгі нақты сандар кіреді және жадта 4 байт орын алады. Мысалы, 1.500000
Е – 45 .. 3.400000 Е + 48.
Екілік дәлдікті тип (double). Бұл типке 5.0х10-334-тен 1.7х10308
диапозонында жататын нақты сандар кіреді және жадта 8 байт орын алады.
Жоғары дәлдікті тип (extended). Бұл тип мәнінің диапозоны 1.9х10-4952-
ден 1.1х104932-ге дейін. Бұл типті сандардың мантисасында 19 мәнді цифры
көрсетіледі және жадта 10 байт орын алады.
Логикалық (булевтік) тип (boolcan). true және false элементтері бар
логикалық мәндер диапозонын аықтайды. Мұнда false true болатындай етіп
логикалық мәндер реттелінген. Бұл тип жадта 1 байт орын алады.
Символдық (литерлік) тип (char). Ақпарат алмасудың Американдық
стандартты коды (ASCII) анықтаған символдар жиынтығы элементтері осы типтің
мәні болады.
Символдар ASCII кодтары мәндерінің өсуі бойынша реттелген.
Мысалы, ‘A’’B’’C’ ...
Char типтегі мәліметтер жадта1 байт орын алады.
Қарапайым айнымаларды сипаттау мысалы:
Var i, j, k: integer;
х, y, z: real;
р, l, m: byte;
рt: longint;
р, g: boolean;
sir: char;
Программист анықтайтын қарапайым типті қарапайым айнымалылар.
Программист өзі анықтай алатын мәліметтердің қарапайым типіне атап
шығатын (көрсетілетін) тип және тип – диапазон кіреді.
Көрсетілетін тип. Кез-келген көрсетілетін типті дөңгелек жақшада
идентификаторлары көрсетілген реттелген мәндер жиынымен сипаттайды. Бұл тип
вyte типті мәліметтерді “әдемі” түрде ұсыну үшін қолданылады. Мысалы, type
day=(mon, tue, wed, thu, fri, sat, sun);
мұндағы day – көрсетілетін тип идентификаторы, ал жақшада day типті
реттелген мәндер идентификаторы көрсетілген, mon мәні 0 санына бара-бар, ал
sun мәніне - 6 саны. Әрине, mon tue wed thu fri sat sun
екендігі түсінікті ғой деп ойлаймыз.
Тип - диапозон. Бұл тип анықталған қарапайым типке шектеулерді енгізу
жолымен алынады. Шектеу диапазоны нақты жағдайға (есепке) байланысты, яғни
– осы диапазонда қажетті константалардың минимальді және максимальді
мәндері анықталады. Диапазон таңдалынатын типті базалық тип деп атайды.
Нақты сандар үшін диапазон қарастырылмайды.
Мысал қарастырайық:
Type a=10..100;
day=(mon, tue, wed, thu, fri, sat, sun);
work days = mon..fri;
weekend = sat..sun;
Мұнда, а типті дипазон үшін базалық тип - integer, workdays (жұмыс
күндері) және weekend (демалыс күндері) типтері диапозондары үшін – атап
шығатын (көрсетілетін) day (күні) алынған.
Диапазондарды қолдану жадты экономды пайдалануға мумкіншілік береді,
әсіресе, integer типті мәліметтермен жұмыс істегенде.
2.3.2. Құрылымдық (структуралық) айнымалылар
Т-Р-да қарапайым типтерден басқа құрылымды типтер де (жай типтерден
құралатын) пайдаланылады.
Құрылымдық типтердің қарапайымды типтерден айырмашылығы оның
мәліметтерінде компоненті санының бірден көп болуында. Құрылымдық типтің
әр компонентасы қарапай ым немесе құрылымдық типті болады.
Құрылымдық типтің ең төменгі деңгейіндегі компонентасы қарапайым
типтілер болады.
құрылымдық тип::=массив типі жазба типі
жолдық типі файл типі жиын типі.
Индексті айнымалылар
Индексі бар айнымалылар айнымалы-массив компоненттерін құрады. Массив-
бұл бір типті компоненталардан (элементтерден) құрылған мәліметтердің
құрылымдық типі шектеулі сан. Массивтің жеке компонентіне қол жеткізу
компонента индексі бойы0нша іске асады. Компонента индексі-қарапайым типті
өрнек (тек нақты тип емес),әдетте диапазонды тип.
Массивті анықтау (сипаттау) array қызметші сөзінен басталады,одан
кейін квадрат жақшаларға алынған индекс типі көрсетіледі.Индекс типінен
кейін of қызметші сөзі және компонента типі жазылады. Мысалы:
type vector=array[1..10] of real;
mas=array[1..10] of char;
Егер массивтің типі қайтадан массив болса,онда бастапқы массив екі
өлшемді деп аталады. Екі өлшемді массив үшін тип идентификаторын
төмендегідей анықтауға болады:
type vector=array[1..10] of real;
matrix=array[1..8] of vector;
немесе
type matrix=array[1..8] of array[1..10] of real;
Ең ыңғайлы анықтау:
Type matrix=array [1..8,1..10] of real;
Егер индекстердің n типтері берілген болса,онда массив n өлшемді деп
аталады, ал оның компоненталары индекстік өрнектер көмегімен көрсетілетін
болады. Массивтерді сипаттау келесі түрде жүргізіледі:
-типті анықтаумен:
type vector=array [1..10] of real;
matrix=array [1..8,1..8] of real;
tenz=array [1..2,1..3,1..5] of char;
var v:vector;
m:matrix;
buk:tenz;
-типті анықтамай:
var v:array [1..10] of real;
m:array [1..8,1..8] of real;
buk:array [1..2,1..3,1..5] of char;
{мәтін екі бетте,әрқайсысында үш жолдан,әрбір жолда бес символдан}.
Айнымалы жазбалар
Айнымалы жазбалар жазба типті берілгендерге жатады.
Жазба – бұл аяқты сан компоненталардан құрылған мәліметтер құрылымы.
Массивпен салыстырғанда жазба компоненттері әртүрлі типтерге ие болуы
мүмкін және оларға өріс индекс бойынша емес құрама ат бойынша жүргізіледі.
Жазба компонентасы өріс өз идентификаторына ие, сол ат бойынша оған жету
іске асырылады. Әрбір жазба record қызметші сөзінен басталады. Содан кейін
өріс идентификаторлары жазылады. Ең соңында end қызметші сөзі жазылады.
Мысалдар:
Type date=record
Day:1..31;
Mon: (jan,feb,mar,apr,may,jun,jul,aug,se p,oct,nov,dec);
Year:1900...1999
End: (*date*)
Person=record
Name:string[20];
Birth:date;
End;(*person*)
Var p: person;
Мысалы sotr (қызметкер) типіне сәйкес келетін варианттары бар жазба
құрылымын қарастырайық.
Қызметкер туралы мәліметтер. Жалпы фамилиясы және инициялдары (fam).
Жеке.
Қызметкер:
-1-ші бөлім: қызметі (dol 1), еңбек ақы мөлшері (оkl1);
-2-ші бөлім: қызметі (dol 2), еңбек ақы мөлшері (okl2); жұмыс стажы (st);
-3-ші бөлім: ақпарат жоқ.
Жазба мәтіні (тексті):
type otdel=(otd1,otd 2,otd 3);
sotr=record
fam:string[80];(*белгіленген бөлігі-өріс,барлық sotr үшін жалпы*)
case v: otdel of (*варианттық бөлігі*)
otd1: (dol1: string [10]; okl1:100..600);
(*1-ші бөлімнің қызметшілері үшін өрістер тізімі*)
otd2: (dol2:string[10];okl2:250700; st:byte);
(*2-ші бөлімнің қызметшілері үшін өрістер тізімі*)
otd3:();(*өрістер тізімі бос*)
end;(*sotr*)
var s: sort;
Ескертулер:
- әртүрлі варианттарда кездескенімен өрістердің барлық идентификаторлары
бірегей болуы керек;
- егер вариант бос болса, яғни, өріс жоқ, онда жоғарыдағы мысалындағыдай
жазылады: otd3:();
- жазбаның тек бір ғана варианттық бөлімі болады және ол соңғысы болуы
керек;
- бір – біріне енген варианттар болуы, яғни, әрбір вариант тағы басқа бір
варианттарды қамтуы мүмкін;
Айнымалы жолдар
Т-П тілінде символдар қатарын өңдеу үшін құрылымдық берілгендер
(мәліметтер) типі – жолдық тип анықталған.
Жолдық типті анықтау string қызметші сөзінен, одан кейін квадрат жақшада
жолдың максималды ұзындығы көрсетіледі. Жол ұзындығы 1-ден 255-ке дейінгі
диапазондағы бүтін санмен беріледі.
Жолдық айнымалыларды сипаттау төмендегіше жүргізіледі:
-типті анықтаумен:
type filname=string[14];
screenline=string[80];
var fil: filname;
scr: screenline;
-типті анықтаусыз:
var fil: string [14];
scr: string [80];
Ұзындығы көрсетілмеген string типті идентификатор 255 символдан тұратын
жолды анықтайды:
var s: string;
Айнымалы файл
Файл - айнымалылар бір типті компоненттертізбегінекн құрылады. Кез
келген уақытта файлдың тек бір ғана компонентасына жетуге болады.Файл
компонентінің саны өзгеруі мүмкін. Әрбір файл үшін бұл сан ең алдымен 0-ге
тең, одан кейін тек көбейе бастайды.
Файл төмендегідей хабарламамен анықталады:
type intfile=file of integer;
Бұл файлдың компоненттері бүтін сандар болады.
Т-П-да текстік файлдар ерекше орын алады.
Текстік файл деп еркін ұзындықты жолдарға бөлінген символдардың тізбегін
айтады, ол тізбектер файл компоненттері болады.
Текстік файлдармен жұмыс істеген кезде компилятор нақты типті берілгендерді
(integer, real, byte және т.б.) ASEII кодтарына сәйкес символдар (char
типті) тізбегіне келтіреді.
Текстік емес файлдармен жұмыс істеген кезде мәліметтерді мұндай түрлендіру
жүргізілмейді, сондықтан файлды өңдеуге аз уақыт жұмсалады. Алайда текстік
емес файлдарды операциялық жүйенің әдеттегі құрамдармен терминалға немесе
принтерге шығару мүмкін емес және мұндай файлдарды редакторлар көмегімен
құруға болмайды. Себебі тестік емес файлдағы мәліметтер ASEII кодтары емес
бойынша екілі формада сақталады.
Текстік файл типін анықтау:
varидентификатор [,идентификатор]... text;
Файл компоненттеріне файлдық айнымалылар арқылы қол жетуге болады.
Файлдық айнымалыны сипаттау келесі түрде жүргізіледі:
-типіанықталуы бойынша:
type range=1...10;
vector=array[range] of real;
complex=record
re, im: real;
end;
intfile=file of integer
refile=file of real
chfile=file of chаr;
vecfile=file of vector;
compfile=file of complex;
var int: intfile;
re :rewfile;
vec:vecfile;
ch: chfile;
comp: compfile;
типті анықтамай:
var vec:file of array[1..10] of real;
comp:file of record
re,im: real;
end;
inf:file of integer;
re:file of real;
ch:file of char;
Текстік файл айымалысын сипаттау типті алдын – ала анықтаусыз іске
асады:var f:text;немесе var f:file of char;
Жиын – айнымалы.
Турбо Паскаль тіліндегі жиын – бұл максималды саны 256 болатын бір
типтес элементтердің кез-келген жинағы. Жиын типтес берілгенді (мәліметті)
анықтау үшін set қызметші сөзі қолданылады.
Мысалы,
Type charset=set of char; мәні жиын болатын жиын типті көрсетеді, ал
жиын элементтері символдар болады. Жиын элементтері үшін кез-келген
қарапайым тип болады, бірақ real типінен басқа.
Толық мәліметтерді анықтайтын типтер үшін type типі және тип
–диапазан.
Төмендегі мысалды қарастырайық:
Type day= set of 0...31;
Let =set of ‘a’..’z’;
Color=set of (red,green,blue);
Bit=set of byte;
Var d: day;
L:let;
Col :color;
b:bit;
2.4.Константалар (тұрақтылар).
Турбо Паскаль тілінде константалардың үш типі пайдаланылады:
литералда, аталынған константалар және типтелінген константалар.
2.4.1. Константалар-литералдар
Литералдар – бұл сандар, бүтін және нақты символдар және символдар
қатарлары.
Бүтін сандық константалар (longint) - бұл ондық немесе он алтылық
шамалар:
- ондық өрнектеулер, -2147483648-ден +2147483647-ге дейінгі диапазонда;
- он алтылық өрнектеу, $06000000-ден $ҒҒҒҒҒҒҒҒ- ге дейін;
Нақты константаларды (real) төмендегі формат бойынша беруге болады:
- белгіленген нүктелі (5.3,-1.01,100);
- жылжымалы нүктелі (0.5Е2,-1Е-5).
Жолдық константалар (string) – бұл апострофтарға алынған символдар
тізбегі.
Мысалы,
‘Тізбектей жуықтау әдісі’
Егер де қатарда апострофқа алуға қажетті тест болса, онда қатарынан
бірге жазылған екі апостроф жазылады.
Мысалы,
‘”көпіршік”әдісі’
Жиі кездесетін жолдық константалар:
- пробел – ‘’ ;
- бос қатар – ‘’ ;
- бір апострофтан тұратын қатар, - ‘’’’ .
2.4.2. Аталынған константалар
Аталынған константа – бұл белгіленген мән, оған программаның басында
константаны анықтаған кезде ат беріледі (идентификатор).
Аталынған константаларды анықтау бөлімі келесі түрде болады:
Constидентификатор =константа;
[идентификатор=константа;]...
Мысалы,
Const gravity = 9.81;
Max = 1000;
Head = ‘кесте 5’;
Pr = ‘’ ;
C = 2147483647;
Co = -2147483647 ;
Константаларға ат қою программаны түсінуге және оған қажетті
өзгерістерді енгізуге мүмкіндк береді. Турбо Паскаль тілінде кейбір
аталынған константалар алдын – ала анықталған, сондықтан оларды алдын – ала
сипаттамай – ақ қолдануға болады. Мұндай аталынған константалар төменде
көрсетілген:
False =’өтірік’ ; {логикалық константа}
True = ‘шындық’ ; {логикалық константа}
Maxint = 32767;{максималды бүтін сан}
Pi =3.14159265358979E + 000; {пи саны}
Maxlongint = 2147483647 ;{максималды ұзын бүтін сан}
2.4.3. Типтелінген константалар
Типтеленген константалар тек Турбо Паскальда ғана қолданылады. Олар
аталынған константалар секілді анықталады, алайда константа типін көрсету
қажет.
Типтелінген константалар мәндерін өзгерте алады, бұлар негізінен
бастапқы мәндерді меншіктеуде пайдаланылады. Типтелінген константаларды
анықтау синтаксисі:
Constидентификатор:тип идентификаторлары=константа;
[идентификатор:тип идентификаторы=константа;];
Қарапайым типтелінген константалар:
Const number: integer=1990;
Inter: real=19.90
Zang: string [7]=’массив’;
Alf: char=’h’;
Sl: word=65635;
Sq:=shortint=127;
Құрылымдық типтелінген константалар. Бұл константалардың 3 типі болады
- массивтер, жазбалар және жиындар.
- Типі - массив константалар. Бір және екі өлшемді массивтер ең жиі
пайдаланылады.
Мысалы,
Const a: array[1..5] of integer=(0,0,0,0,0);
Maze: array[0..1,0..1] of integer=((0,1),(2,3));
Type status=(act, pas, wat);
Rep=array [status] of string [7];
Const stat: rep=('қыс','жаз','көктем');
а массивінің 5 элементінің әрқайсысы 0 (ноль) мәніне ие болады. Екі
өлшемді maze массивінің элементтері: maze [0,0], maze [0,1], maze [1,0],
maze [1,1]-сәйкесінше 0,1,2,3 мәндерін алады.
Stat [akt], stat [pas], stat [wat] константалары сәйкесінше
'қыс','жаз,''көктем' мәндеріне ие болады.
- Жазба типті константалары:
Type point=record
X,y,z: integer;
End;
Const origo: point=(x:0; y:1; z:5);
Бұл константалар программада origo х, origo у, origo z (немесе x,y,z,
егер де with операторы пайдаланылса) түрінде қолданылады және сәйкесінше
0,1,5 мәндеріне ие болады.
- Жиын типті константалар:
type low=set of ‘a’..’z’;
const voc: low=[‘a’,’r’,’s’];
2.5. Белгілер
Белгі - бұл 0...9999 диапазонындағы таңбасыз бүтін немесе программист
анықтайтын идентификатор.
Белгілер операторлар бөлімінде пайдаланылады. Олар операторлар алдына
қойылады және олардан қос нүкте арқылы ажыратылады. Белгілер пайдалану
алдында программаның сипаттама бөлімінде хабарланады. Белгілерді көрсету
label қызметші сөзімен басталады, одан кейін не таңбасыз бүтіндер немесе
идентификаторлар тізімі келтіріледі, олар өзара үтірлермен бөлінеді; тізім
соңында нүкте - үтір қойылады.
Program primer 2;
Label 10, err, 999;
Begin
10:оператор;...;
err:оператор;...;
999оператор;...;
end.
2.6. Стандартты функциялар
Жиі кездесетін есептеу амалдарын орындау үшін және әртүрлі типке
жататын мәліметтерді түрлендіру үшін Турбо-Паскальда төмендегі стандартты
функциялар (олар жеке сипаттауды қажет етпейді) қолданылады:
- арифметикалық;
- типтерді түрлендіру және реттеу;
- логикалық;
- жолдық;
- файлдық;
- адрестік.
1. Арифметикалық функциялар
Abs(x) – x - тің абсолютті мәні есептелінеді, ол х секілді типке (real,
integer) ие.
Arctan(x)-арктангенс х-ті есептейді, нәтижесі радианмен алынады.
Cos(x)-косинус х-ті есептейді, х радианмен беріледі.
Exp(x)-e санының х дәрежесін есептейді.
Ln(x)-натурал логарифм х - ты есептейді.
Sin(x)-синус х-ті есептейді.
SQR(x)-х-тің квадратын шығарады.
Sqrt(x)-х-тен квадраттық түбірді есептейді..
Random – 0-ден 1-ге дейінгі диапазонда real типті кез-келген санды
бірқалыпты бөліктеу заңдылығымен генерациялайды.
Random(х) - 0-ден х-ке дейінгі диапазонда кез-келген бүтін санды
бірқалыпты бөліктеу заңдылығымен генерациялайды, х – integer типті сан.
Ескерту: өне бойы бір тұрақты кездейсоқ санның шығып тұруын болдыртпау
үшін Random және Random(х) функцияларының алдында randomize процедурасын
(кездейсоқ сандар генераторын инициализациялайды) қосқан жөн болады.
Arctan, cos, exp, ln, sin, sqr, sqrt стандартты функциялары үшін х
аргументі real немесе integer типтес болуы мүмкін, ал нәтижесі әрқашан да
real типтес болады.
2.6.2.Типтерді түрлендіру және реттеу функциясы
Frac(x) – x- тің бөлшек бөлігін есептейді, бүтін бөлігі алып
тасталынады; х-real типті; нәтижесі – real типті.
Мысалы:
Frac (123.456); {0.456} frac (-123.456); {-0.456}
Int (x), trunc (x) – х- тің бүтін бөлігін есептейді, бөлшек бөлігі алып
тасталынады; х – real типті; нәтижесі – integer типті (trunc үшін), real
типті (int үшін).
Мысалы,
Trunc (325.568);{325} trunc (-325.568); {-325}
Round(x) – дөңгелектелінген бүтін бөлікті есептейді; х-real типті;
нәтижесі –integer типті.
Мысалы,
Round (325.568); {326}round (-325.568); {-325}
Round (325.268); {325} round (-325.268);{-324}
Chr(x) - сандық коды бойынша ASCII-гі символды анықтайды; х-integer
типті; нәтижесі-char типті.
Мысалы, char(65); {‘A’}
Ord(x)-символдардың реттелген жиынынан символдың реттік номерін
есептейді (реттік нөмір 0-ден басталады); х-char типті; нәтижесі-integer
типті.
Мысалы,
Program primer 3;
Type day=(mo, tu, we, th, fr, sa, su);
Var x: day;
Begin x:=we;
Writeln (ord(x));
End.
Нәтижесі-{2}
Succ(x)-х-тен кейінгі келесі мәнді береді; х-кез келген қарапайым типті
мән (real-дан басқа).
Pred(x)-х-тің алдындағы мәнді береді; х-кез келген қарапайым типті мән
(real-дан басқа).
Мысалы,
Colors=(red, blue, green);
Succ(blue); {green}
Pred (blue); {red}
2. Логикалық функциялар
Odd(x) - егер х-тақ сан болса, true мәнін береді және false керісінше
болса; х-integer типті.
Eof(f) - true мәнін береді, егер де файлды оқыған кезде f файлды
айнымалысы файл соңына жеткен болса, кері жағдайда оның мәні false.
Eoln(f) функциясы true мәнін қабылдайды, егер текстік файлды оқыған
кезде f файлдық айнымалысы ағымды жолдың соңына жеткен болса, кері жағдайда
оның мәні false.
2.6.3. Жолдық функциялар
Copy(str, n1, n2) – функциясы жұмысының нәтижесінде str жолдық қатарынан
n1нөмірден бастап ұзындығы n2 ішкі жолдық қатар алынады, мысалы:
Copy(‘a b c d e f g’,5, 2); {‘e f’}
мұнда str – жолдық типті өрнек, n1 n2 – іnteger типті.
Ескертулер:
- егер n1-дің мәні str жолдық қатарының ұзындығынан үлкен болса, нәтижесі
бос жол;
- егер (n1+n2)-нің мәні str жолдық қатарының ұзындығынан үлкен болса, онда
символдары str шегінде болатын ішкі жолдық қатар нәтиже ретінде болады.
Ал егер n1 мәні 1..255 диапазонынан шығып кетсе, онда нәтиже қате.
Concat(str1, str2,...,strn) - жолдық қатарлардың бірігуі функция жұмысының
нәтижесі болады; аргументтер саны еркін болуы мүмкін; аргументтер үтірмен
ажыратылады;
Str1, str2,...,strn – жолдық қатарлар типті өрнектер.
Мысалы,
Concat(‘ab’, ’cd’, ‘ef’); {‘a b c d e f ’}
Осы функцияның көмегімен атқарылатын амалды + операциясының көмегімен
жүзеге асыруға болады.
Length (str) – жолдық қатарындағы символдар санын есептейді; str – жолдық
қатар типті өрнек; нәтижесі - integer типті.
Мысалы,
Lenght (‘a b c d e f’); {6}
Pos (str1, str) - функцияның жұмыс істеу нәтижесінде str жолдық қатарының
позициясынан str1 ішкі жолдық қатардың бірінші символының кездесетіндігі
туралы хабар алынады, ал егер де ондай символ кездеспесе нәтиже ноль;
бүтін сан. Мұнда str1, str – жолдық типті өрнектер, нәтиже – integer типті.
Мысалы,
Pos (‘de’,’a b c d e f’); {4}
Pos (‘gh’,’a b c d e f’); {0}
2.7. Өрнектер
Паскаль түріндегі өрнек операндалардан (константалар, айнымалылар,
функциялар), амалдар (операциялар) белгілерінен және дөңгелек жақшалардан
құрлады.
Операндалар типтеріне және өрнектегі амалдар түріне байланысты өрнектер
арифметикалық, логикалық, жолдық және жиындық болып бөлінеді.
2.7.1. Арифметикалық өрнектер
Арифметикалық өрнектердің операндалары болып константалар, айнымалылар және
real немесе integer типтес функциялар қатысады. Осы операндаларға келесі
арифметикалық операциялар анықталады:
+ -қосу;
- -алу;
* -көбейту;
-бөлу (екі операнда да real немесе integer типтес, нәтиже - real );
div - бүтін сандық бөлу (екі операнда да integer типтес, нәтиже - integer
).
mod – бүтіндей сандық бөлудің қалдығы;
Арифметикалық өрнектерді есептеу кезінде амалдар приоритетін анықтауға
байланысты келесі ережелер қабылданған:
- унарлық минусты - меншіктеу операциясы ең жоғарғы приоритетке ие;
- + және – операцияларына қарағанда *, div, және mod операциялары жоғары
приоритетке ие.
- Егер операциялардың приоритеттері бірдей болса, онда сол жақ операциялар
ерте орындала бастайды;
- Жақшадағы өрнек бір бүтін операнда ретінде қабылданады;
- Жақшалар бір-бірлеріне енгізілген болулары мүмкін: a(b*(c-b)).
- Арифметикалық өрнектерді жазуда дөңгелек жақшалардың қос – қостан
пайдаланатындығын ұмытпауымыз керек, яғни, ашылатын жақшалардың саны
жабылатын жақшалардың санымен бірдей болулары керек.
- Div және mod операцияларын жазған кезде пробелдер (бос орын) міндетті
түрде қажет: i div j; i mod j. Пробел қойылмаса компилятор i div j және i
mod j – лерді идентификаторлар ретінде қабылдайды
2.7.2. Логикалық өрнектер
Логикалық өрнектерде логикалық операндалар, логикалық операциялар
және қатынастар қатысады. Логикалық операндаларға логикалық константалар,
логикалық айнымалылар және логикалық функциялар жатады.
ТП-да логикалық өрнектер 4 логикалық опрациялардың операндалары болуы
мүмкін:
Not (жоқ) – жоққа(теріске) шығару;
And (және)-логикалық көбейту;
Or (немесе)-логикалық қосу;
Xor-немесені алып тастау.
Логикалық өрнектердің мәндері кестеде келтірілген:
P q not p p and q p or q px or q
false false true false false false
true false false false true true
false true true false true true
true true false true true false
Төмендегі қатынас амалдарымен:
= (тең), (тең емес)
(аз), =(аз немесе тең)
(көп), =(көп немесе тең)
байланысқан өрнектер конструкциясын қатынас деп атайды. Барлық қатынас
операциялары boolean (true немесе false) типті нәтиже береді.
Мысалы:
1=2{true}
47 {false}
Т-П тілінде not, and, or, xor логикалық амалдарын integer типті
операндаларға да пайдалануға болады, бұл жағдайда әр бит бойынша жоққа
шығару, әр бит бойынша логикалық көбейту және қосу орындалады.
Сонымен қатар бұл тілде бүтін санды операндалар үшін әр бит бойынша
солға (shl) және әр бит бойынша оңға (shr) жылжыту амалдары анықталған.
3. Жолдық өрнектер.
Жолдық өрнектер құрамына жолдық константалар, жолдық айнымалылар,
жолдық функциялар және + операциясы (жолдық типті операндаларды
біріктіру) кіреді.
Мысалы,
‘TURBO’ + ‘’ + ‘PASCAL’=’TURBO - PASCAL’;
‘1 2 3’ +’’+ ‘4 5 6’ = ‘1 2 3. 4 5 6’.
Екі жолды салыстыру қатынас амалдары көмегімен әр символдың ASCII-дегі
кодтарын ескере отырып жүргізіледі.
Мысалы,
‘а’ ’б’ {true};
‘а’ ’б’ {false};
‘TURBO’=’TURBO’{true};
‘turbo’=’turbo’ {false}
Егер жолдар ұзындықтары әртүрлі болса, бірақ та соңғы символға дейін бір –
біріне сай келсе, онда қысқа жол ұзынынан кіші болып есептелінеді.
Мысалы,
‘turbo’’turbo_’ {true}.
2.7.4.Жиындық өрнектер
Жиындық өрнектер жиындық константалардан, жиындық айнымалылардан,
жиындық конструкторлардан және жиындарға қолданылатын амалдар таңбаларынан
тұрады.
Жиындық конструктор – ол квадрат жақшаға алынған жиын элементтерінің
тізімі.
Мысалы,
[] {бос жиын};
[1..5] {жиын - диапазон};
[1,2,3,4,5] {алдыңғыға эквивалентті жиын}
Жиындарға қолданылатын амалдар (операциялар): жиынды біріктіру (+),
қиылыстыру (*), айырым (-), қатынас амалдары (=, , =, =, , ) және
жиынға енетіндігін (in) тексеру амалы.
Екі жиынның бірігуі екі жиынның элементтерін қамтиды,екі жиында да
кездесетін бірдей элементтер бір – ақ рет кіреді.
Мысалы,
[red,green ] + [green,blue] = [red,green,blue].
Қиылысу екі жиында да бар ортақ элементтер болады. Мысалы,
[red,green,blue] * [green] =[green].
Екі жиынның айырымы екінші жиынға жатпайтын біріінші жиынның элементтерінен
тұрады.
Мысалы,
[red,green,blue] – [green] =[red,blue].
Егерде екі жиынның екеуінде де бірдей элементтер бар болса, онда тепе-
теңдік болады.
Мысалы,
[red,green] = [green,red] {true}.
Егер де екі жиынның арасында бір элементке болса да айырмашылық бар болса,
онда тепе - теңсіздік болады.
Мысалы,
[red,green,blue] [red,green] {true}
Жиынды қамту.
Мысалы,
[red,green,blue] = [red,green,blue,orange] {true}, өйткені бірінші
жиынның барлық элементтері екінші жиын элементтері болып тұр.
Элементтің жиынға енетіндігін тексеру.
Егер х элементі s жиынына енетін болса, онда x in s өрнегінің мәні true,
кері жағдайда – false. x айнымалысының типі s жиынының базалық типімен
бірдей болулары керек.
Мысалы,
3 in [1..5] {true};
‘A’ in [‘a’..’z’] {false}.
5. Өрнектердегі операциялардың
орындалуының приоритеті.
Егерде өрнекте жақша болмаса, онда амалдар (операциялар) төмендегідей
ретпен орындалады:
1). Функцияларды есептеу;
2). Унарлық минусты меншіктеу;
3). Not;
4). *, , div,mod, and, shi , shr ;
5). + , - , or, хor ;
6). =, , , =, = , in .
Бірдей деңгейдегі операциялар солдан оңға қарай орындалады, ал жақшалардың
көмегімен кез – келген есептеу ретін беруге болады.
2.8.Өрнек - константалар
Өрнек - константалар программа орындалғанға дейін компиляциялау
кезінде компилятормен есептеледі. Өрнек – константаларда айнымалыларды,
типтелінген константаларды және төмендегі тізбекке кірмейтін функцияларды
қолдануға болмайды:abs, chr, length, odd, ord, pred, round, succ, trunc.
Өрнек – константаларды константаларды сипаттауда қолдануын қарастырайық:
const min = 0;
max = 100;
оеntr = (max - min) div 2;
message =’out of memory’;
errstr = ‘error :’ + message + ’. ’;
ІІІ- БӨЛІМ. Турбо Паскаль тілінде программалау
Құрылымдық программалаудың негізгі принциптерін қарастырған кезде
әдетте программаларда төрт басқарушы құрылымдарды бөле атап айтады: бірінен
кейін бірі (тізбектей) таңдау, қайталау және топтау.
Жоғарғы дәңгейдегі программалау тілдерінде негізгі конструкция ретінде
бірінен кейін бірі (сызықты) құрылым – егер бір оператор программада
келесіден кейін орналасса, онда ол кейінірек орындалады - қарастырылады.
Таңдау конструкциясы мына жағдайларда қолдынылады, егерде программаны
орындау кезінде есепті шығару үшін бірнеше мүмкін болатын бағыттардың
ішінен біреуін таңдау қажет болатын болса. Программаның қайталанатын
бөлігін цикл деп атайды. Циклға инициализациялау блогы, циклдан шығуды
тексеретін блок және бірнеше рет қайталанатын цикл денесі кіреді (енеді).
Топтау – операторлар тобынан (процедуралар, функциялар) блок
ұйымдастыру деген сөз. Үлкен программалар үшін блоктардан модульдерді
құруға болады.
Оператор – бұл қандай да бір іс - әрекетті орындау үшін компьютерге
берілетін нұсқау.
Турбо Паскаль тілінің синтаксисін және операторларын қолдануды, типі
және күрделілігі әртүрлі деңгейдегі программаларды құру мысалдарында
келтірілетін болады.
3.1. Сызықты программа
Сызықты программа (бірінен кейін бірі конструкциясы) енгізу, шығару
және меншіктеу операторларын қамтиды.
Енгізу ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz