Назар аударыңыз. Бұл материалды сайт қолданушысы жариялаған. Егер материал сіздің авторлық құқығыңызды бұзса, осында жазыңыз. Біз ең жылдам уақытта материалды сайттан өшіреміз
Жақын арада сайт әкімшілігі сізбен хабарласады
Бонусты жинап картаңызға (kaspi Gold, Halyk bank) шығарып аласыз
Turbo Pascal және Delphi тілдерінде программалау
Дипломдар мен сертификаттарды алып үлгеріңіз!
Материалдың толық нұсқасын
жүктеп алып көруге болады
Медешова А.Б.
Мухамбетова Ғ.Г.
Turbo Pascal және Delphi
тілдерінде программалау
Орал 2012
2
ӘОЖ 025.4
Авторлар: Медешова А.Б.
Информатика кафедрасының доценті, п.ғ.к.
Мухамбетова Ғ.Г.
Информатика кафедрасының аға оқытушысы
Сын пікір бергендер:
Сартабанов Ж.А. - физ- мат.ғ.д., профессор, Қ.Жұбанов
атындағы Ақтөбе мемлекеттік университеті
Қажиакпарова Ж.С. - п.ғ.к., Еуразия академиясы,
Еуразия институтының “Информатика және
есептеу техникасы” мамандықтары деканы
Жумагалиева А.Е. -физ- мат.ғ.к., доцент,
М. Өтемісов атындағы БҚМУ
Баспага Абай атындагы Казак УПУ -дын жанындагы "Билим" тобындагы мамандыктар бойынша
ок- адистемелик секциясы жане КР БГМ Республикалык оку - адистемелик Кенеси усынган
Хаттама №18 15.05.2012ж
Оқу-әдістемелік құрал «Информатика», «Ақпараттық
жүйе», «Есептеу техникасы және программалау»
мамандықтары бойынша білім алатын студенттерге
“Программалау тілі” пәнін оқытуға көмекші құрал ретінде
ұсынылады. Құралда Turbo Pascal және Delphi программалау
тілінің негізгі тарауларына теориялық материалдар беріліп,
оны практикалық жүзеге асырудың мысалдары қарастырылған.
Әр тақырып соңында студенттің өз бетімен орындауына
арналған жаттығулар беріліп, бақылау сұрақтары және тестілік
тапсырмалар келтірілген.
Құралдың Turbo Pascal және Delphi программалау
тілдерін өз бетімен үйренушілер үшін көмегі тиері сөзсіз.
© А.Б. Медешова, Г.Г.Мухамбетова. 2012 ж.
© М. Өтемісов атындағы БҚМУ, 2012 ж.
3
АЛҒЫ СӨЗ
Ақпараттық технологияның қарқынды дамуына
байланысты соңғы кездері программалауға деген
қызығушылықтың арта түскені белгілі. Жоғарғы оқу орнының
“Информатика”, “Есептеу техникасы және программалау ”,
“Ақпараттық жүйелер”, ”Физика және информатика”
мамандықтарының оқу жоспарында “Программалау тілі” пәнін
оқытуға үлкен көңіл бөлінген. Программалау тілдерінің ішінде
қазіргі кезде кең танымал тіл- Turbo Pascal және оның объектілі
– бағдарлы кеңейтілімі Delphi программалау тілдері. Turbo
Pascal - оқып үйренуге жеңіл, түрлі салалық ақпаратпен жұмыс
істеуде нәтижелі, мүмкіндігі мол алгоритм құрылымы
сақталып жасалған құрылымдық программалау тілі, ал Delphi
заманауи Windows қосымшалар құруға арналған объектілі-
бағдарлы программалау (ОБП) тілі болып саналады.
Құрал екі бөлімнен тұрады. Бірінше бөлімде Pascal тілінің
негізі, тілдің негізгі операторлары, құрылымдық типтер, CRT
модулі, Pascal графикасы тарауларынан тұрады. Әр тарауда
негізгі ұғымдардың анықтамасы беріліп, командалардың
жазылу үлгісі жазылып және оларды қолдануға мысалдар мен
жаттығулар қарастырылған. Құрылымдық типтер тарауында
массив, жиын, жазу және файлмен жұмыс істеу операторлары
жан- жақты қарастырылады. Қолданушыға Pascal -дың
мәтіндік режиміндегі экран мен пернетақтаны басқаратын,
дыбыстық мүмкіндікті жүзеге асыратын CRT модулінің
операторларымен танысып, графиктік режим операторларын
оқып үйрену мүмкіндігі қарастырылған. Функция графигін
салудың Pascal тілінде прогрмамасы қарастырылған.
Паскальдың графиктік операторларын қолдануға берілген
студенттердің шығармашылық жұмыстарынан үзінділер
келтірілген.
Құрылымдық программалау тілдеріне қарағанда Delphi
ОБП тілінде жасалған программалар студенттердің
қызығушылығын туғызып, программалауға деген құлшынысын
арттырады. Күнделікті өздері қолданып жүрген Windows
қосымшаларды жасау (мысалы, Калькулятор, Блокнот т.б.)
студенттердің өз іс-әрекетіне деген сенімділігін туғызып,
оларды өз бетінділікке, шығармашылыққа тәрбиелейді.
Сонымен қатар, студенттер Delphi ОБП құралдарын қолданып,
4
пернетақталық жаттықтырғыш, әртүрлі тестілеу және үйретуші
программаларды жасауға үйренеді. Қазіргі кезде түрлі
жобалардың интерфейстері, оқыту программалары және
электрондық оқулықтар Delphi ОБП тілінің құралдарын
қолданып жасалынады.
Құралдың екінші бөлімінде Delphi ортасында
қолданбалы программалар жасау негіздері, Delphi-дің жиі
қолданылатын компоненттері, Object Pascal тілінің негізгі
командалары т.с.с қарастырылған. Delphi-дің графикалық және
мультимедиалық мүмкіндіктері, Delphi-де деректер
қоймасымен жұмыс, функция графигін салу сияқты сервистік
мүмкіндіктермен толықтырылған. Әр тараудың тақырыптары
бойынша қысқаша теориялық матер иал берілген. Әр
тақырыптың соңында практикалық мысалдар қарастырылып,
олардың Delphi тіліндегі программасы беріліп, жобаны
орындату нәтижесінің интерфейсі көрсетілген. Әрбір
тақырыптан соң қолданушының өз бетімен практикалық
тапсырмалар орындауына жаттығулар берілген.
Қолданушылардың оларды зертханалық жұмыстарда немесе
берілген теориялық материалдарға сүйеніп, өз бетінше
орындауына болады. Студенттердің материалды меңгеруі
бақылау сұрақтары арқылы тексеріледі.
Құралдың соңында студенттің алған білімін тексеруге
арналған тестілік тапсырмалар берілген.
Құралдың жоғары және арнаулы орта оқу орындарының
студенттері мен орта мектептердің оқушыларына және
информатика пәні мұғалімдері үшін пайдасы мол болады деген
ойдамыз.
5
I БӨЛІМ. TURBO PASCAL
I. TURBO PASCAL ТІЛІНІҢ НЕГІЗІ
1.1 Паскаль программалау тіліне кіріспе
Компьютерге түсінікті командалар тізбегі арқылы
жазылған алгоритм – программа деп, ал программа құру
процесі программалау деп аталады. Программа компьютерде
деректерге әрекет орындау үшін берілген командалар тізбегі
болып табылады.
Программалау тілдері – бұл адамның компьютермен
қарым-қатынасы үшін арнайы пайда болған формальді тілдер.
Программалау тілдерінің де "жаратылыс тілдері" (орыс,
ағылшын тілі т.с.с.) сияқты өзінің алфавиті, сөздік қоры,
грамматикасы және синтаксисі, сонымен қатар семантикасы
болады.
Программалау тілдері – жасанды тілдер. Олар жаратылыс
тілдерінен мағыналары трансляторға түсінікті және
командалары өте қатаң ережелермен жазылуымен,
«сөздерінің» санының шектелуімен ерекшеленеді.
Программалау тілінің осыған қатысты талаптарын синтаксис
бейнелейді, ал әрбір командалардың мағыналарын және тілдің
басқа конструкцияларын – оның семантикасы бейнелейді.
Программалау тілі – ЭЕМ-де шешілетін әртүрлі есептердің
программасын компьютерге түсінікті формада жазу тәсілі
болып табылады.
Программалау тілдері жоғарғы және төменгі деңгейлі
тілдер болып бөлінеді. Қолданбалы мазмұнды есептерді
шешуге бағытталған, командалардың мол жиынтығынан
тұратын табиғи тілге ұқсас программалау тілі – жоғарғы
деңгейлі программалау тілі деп аталады.
Жоғары деңгейдегі программалау тілі келесі қасиеттерге
ие:
- Тіл алфавиті машиналыққа қарағанда біршама молырақ;
- Пайдалануға берілетін операцияларды теру машиналық
операцияларды теруден тәуелсіз;
- командалар конструкциялары (операторлардың) мәтінді
қайта қарау кезіндегі мазмұнды түрлерін бейнелейді және
адамға ыңғайлы түрде беріледі;
6
- айнымалылардың және олармен әрекеттердің аппараты
қолданылады;
- мәліметтер типі әртүрлі.
Қазіргі кезде жоғары деңгейлі программалау тілінің бірнеше
түрі бар. Кең қолданылатын жоғарғы деңгейлі программалау
тілдерінің бірі – Паскаль тілі. Оның алғашқы вариантын 1971
ж. Швейцария ғалымы Никлаус Вирт жарыққа шығарған
болатын. Автор атақты француз математигі Блез Паскальдың
(1623-1662 ж) құрметіне жаңа программалау тіліне оның атын
берді. Паскаль тілі оқып үйренуге жеңіл, алгоритм құрылымы
сақталған, қолданушыға ыңғайлы тіл болып қана қойған жоқ,
сонымен қатар көптеген күрделі есептерді шешу үшін
қолданылатын қуатты программалау тілі болып табылады.
Паскаль тілінің бірнеше баламалары бар. Қазіргі кезде кең
қолданылатыны – Турбо Паскаль7.0 баламасы. Кез-келген
Паскаль программа жеке атынан және .pas кеңейтілуінен
тұратын мәтіндік файл болып табылады. Паскаль тілінде
құрылған программаны мәшинелік тілге аудару үшін
компилятор қолданылады. Турбо Паскаль жүйесі ТР
бумасында жазылады. Программаны жүктеу файлы: turbo.exe,
ол әдетте BIN ішкі бумасында орналасады (мысал: C:\TP\BIN\
turbo.exe). Турбо Паскаль7.0 программасының жұмыс ортасы
1- суретте көрсетілген.
Сурет 1. Turbo Pascal программасының жұмыс ортасы
Файлды жабу
батырмасы
Меню қатары
Көмек қатары Жылжыту
жолақтары
Файл атауы
Екпінді меню
7
Turbo Pascal-дың құрамдас жұмыс ортасы келесі бөлімдерден
құралған (1- сурет):
1. Жұмыс терезелері
2. Меню қатары
3. Көмек қатары
Файлды сақтау терезесі 2- суретте көрсетілген.
Сурет 2. Файлды сақтаудың сұқбат терезесі
1.2 Паскаль тілінің алфавиті. Деректер типтері
Барлық программалау тілдерінің өз алфавиті болады.
Алфавит – программада пайдаланылатын түрлі символдар
(әріптер, цифрлар, таңбалар, белгілер).
Паскаль тілінің алфавиті:
1. Латын алфавитінің бас (A-Z) және кіші (a-z) әріптері және _
астын сызу белгісі.
2. Араб цифрлары: 0 – 9
3. Арнайы символдар: а) арифметикалық операция белгілері: +,
-, *, /
б) қатынас операцияларының белгілері: =, <> (тең
емес), >, >=, <, <=
в) тыныс белгілері: ; : . , ..
г) қосарлы символдар: {}, [], (), (* *), (. .)
д) меншіктеу белгісі: : =
е) символдар: @, $, #, ^
Файл атауын
енгізу
қатары
Тізімді ашу
батырмасы
Анықтама
алу
батырмасы
Таңдалған
команданы
орындамау
батырмасы
Таңдалған
команданы
орындау
батырмасы
Берілген
дисктегі
файлдар
тізімі
8
4. Қызметші сөздер: and, begin, if, then, else, end …
Паскальдағы деректер типтері
Паскальдағы кез-келген деректер, яғни айнымалылар,
тұрақтылар, функция мәндері және өрнектер, өздерінің типтері
арқылы сипатталады. Тип аталған объектінің қабылдайтын
мәндерінің жиынын және деректердің компьютер жадысында
ішкі өрнектелу форматын анықтайды.
Паскаль тілінде деректердің төмендегідей типтері бар:
1. Стандарт жәй тип: бүтін (integer), нақты (real),
логикалық (boolean) процедуралық, символдық (char,
string)
2. Стандарт емес жәй тип: санақты және шектеулі типтер
3. Құрылымдық тип: массив, жазба, жиын, файл
Бүтін және нақты сандардың integer және real-дан басқа
бірнеше типтері қолданылады. Олар төмендегі 1- кестеде
көрсетілген.
Кесте 1. Деректер типтері
Char – мәні символ болатын айнымалы типі, жадыдан 1 байт
орын алады.
String – символдар жолы, жадыдан max+1 орын алады.
Мұндағы max – жолдағы символдардың ең көп саны.
Boolean – логикалық тип, false (ақиқат) немесе true (жалған) екі
мәннің біреуін қабылдайды, жадыдан 1 байт орын алады.
Типтің аты Сан аралығы Форматы (байт)
1. Өрнектердің бүтін типтері.
Shortint (қысқа бүтін) - 128 .. 127 1
Integer (бүтін) - 32768 .. 32767 2
Longint (ұзын бүтін) - 2147483648 .. 2147483647 4
Byte (байт) 0 .. 255 1
Word (сөз) 0 .. 65535 2
2. Деректердің нақты типтері.
Real 2.9 e – 39 .. 1.7 e38 6
Singlе 1.5 e – 45 .. 3.4 e38 4
Double 5.0 e – 324 .. 1.7 e308 8
Extended 3.4 e – 4932 .. 1.1 e4932 10
Comp - 9.2 e18 .. 9.2 e18 8
9
1.3 Стандарт функциялар. Өрнектер
Мәндері компьютердің арнайы программалары арқылы
автоматты түрде есептелетін функциялар – стандарт
функциялар деп аталады.
Паскаль тілінің стандарт функциялары 2- кестеде
көрсетілген.
Кесте 2. Паскаль тілінің стандарт функциялары
Математикалық
функцияның
жазылуы
Паскаль
тілінде
жазылуы
Аргумент
типі
Нәтиженің
типі
Ескерту
| x | abs (x) real,
integer
real,
integer
sinx sin(x) real real х- радиан
cosx cos(x) real real х- радиан
arctgx arctan(x) real real х- радиан
e
x
exp(x) real real e = 2,718 …
lnx ln(x) real real x>0
PI - real = 3.14…
x
2
sqr(x) real real x
sqrt(x) real real x>=0
х санының
бүтін бөлігі
int(x) real integer 5.76 5
х саны ның
бүтін бөлігі
trunc(x) real integer
5.76 5
х санының
бөлшек бөлігі
frac(x) real real 5.76 0.76
х санын бүтінге
дейін
дөңгелектеу
round(x) real integer 5.76 6
кездейсоқ сан random - real (0,1)
аралығындағы
кездейсоқ сан
кездейсоқ сан random(x) integer integer (0,х-1)
аралығындағы
кездейсоқ сан
кездейсоқ
сандар
генераторы
randomize - - кездейсоқ
сандар
генераторын
іске қосу
10
Барлық басқа функциялар түрлендіріліп, стандарт
функцияларға келтіріледі.
Паскаль тілінде арктангенс бір ғана кері тригонометриялық
функция анықталған. Қалған функцияларды анықтау үшін
төмендегі формулалар қолданылады: )/1()(
)/1()arccos(
)1/()arcsin(
2
2
xarctgxarcctg
xxarctgx
xxarctgx
Паскаль тілінде дәрежелеу операциясы жоқ. х санын n
дәрежеге шығару үшін төмендегі формула қолданылады.
x
n
= e
nlnx
exp(n*ln(x))
Мысал: 1. x
5
exp (5*ln(x))
2. x
3
= x
3/2
exp (3/2 * ln(x))
3. sin 30° sin (pi*30)/180) (радианға айналдыру)
4. log2 x log a b = log cb / logca ln(x)/ln(2)
Өрнектер тұрақтылар мен айнымалылардан,
арифметикалық, логикалық және қатынас операциясының
белгілерінен және стандарт функциялардан құралады.
Математикалық өрнек және оның сәйкес Паскаль тілінде
жазылуына мысалдар:
1. 4 2x-y 4* SQRT(2*x-y)
2. ctgx+cos60º cos(x)/sin(x)+cos((60*pi)/180)
3. (-b+ SQRT(D))/(2*a)
4. cos
2
x
2
SQR(cos(SQR(x)))
5. e
sinx
exp (sin(x))*SQRT(x)
1.4 Паскаль тіліндегі программаның негізгі құрылымы
Паскаль тілінде кез-келген программаның мәтіні бірнеше
бөлімнен тұрады:
1. программа тақырыбы
2. сипаттау бөлімі
3. операторлар бөлімі
a
Db
2 x
11
Программа тақырыбы
Программа тақырыбының құрылымы:
Program программа атауы;
Ескертулер:
1. Программа атауы үшін латын алфавитінің әріптері, цифр
және __ астын сызу белгісі қолданылады
2. Атаудың бірінші символы цифр болмау керек.
3. Атауда бос орын белгісі қолданылмайды.
Программа тақырыбына мысалдар:
Program Geron;
Program Min;
Program Summa;
Program P_1;
Сипаттау бөлімі
Көптеген программалау тілдерінде, соным ен қатар
Паскальда программада
қолданылатын шамалар жөніндегі барлық ақпарат
программаның сипаттау бөлімінде міндетті түрде көрсетілуі
қажет. Сипаттау бөлімдері төмендегідей бөлімдерден тұрады:
1. Таңбалар бөлімі
2. Тұрақтылар бөлімі
3. Типтер бөлімі
4. Айнгымалылар бөлімі
5. Процедура мен функциялар бөлімі
1. Таңбалар бөлімі
Оның құрылымы: label таңба;
label (таңба) – қызметші сөз. Таңба кез-келген идентификатор
немесе бүтін сан болып табылады. Егер программада бірнеше
таңба қолданылса, онда олардың арасына үтір белгісі
қойылады.
Мысал : label 1;
label a1, b1, c1;
Таңбалар бөлімінің болуы операторлар бөлімінде кейбір
оператордың ерекше аталып көрсетілетінін білдіреді. Таңба
мен оператор арасына қос нүкте белгісі қойылып жазылады.
Мысал: 1: 1-оператор;
a1: 2-оператор;
b1: c1: 3-оператор;
12
2. Тұрақтылар бөлімі
Тұрақты деп программадағы мәні өзгермейтін шаманы
атайды. Оны сипаттау бөлімінің құрылымы:
Const тұрақтының аты = мәні;
Мысал: const x=25; n=4;
Text = ‘Программа’;
3. Типтер бөлімі
Оның құрылымы:
Тype типтің аты = типі;
Турбо Паскальда деректердің стандарт 5 типі бар екені
белгілі:
бүтін (integer), нақты (real), символдық (char), логикалық
(boolean), жолдық ( string). Сонымен қатар
программалаушының өзі санақты және шектеулі (немесе
аралық )деп аталатын стандарт емес жаңа тип енгізуі мүмкін.
Санақты тип- мәндері латын әріптерімен белгіленетін, әр мән
өзінің атауы бойынша ғана анықталатын скаляр тип. Оның
сипатталу үлгісі:
Тype типтің аты = (мәндер тізімі);
Var айнымалының аты: типтің аты;
Мысал : Type Month = (January, February, March, April, May);
Colors = (red, write, blue);
Var a: Month; b: Colors;
Шектеулі тип – екі бүтін санның, екі реттелген символдық
тұрақтының, не санақты типті екі мәннің аралығындағы
мәндерді қабылдайтын айнымалылар типі.
Сипатталу үлгісі:
Type типтің аты = 1-мән . . 2-мән;
Var айнымалының аты: типтің аты;
Мысал: Type San = 5..15;
Text = ‘a’.. ‘k’;
Month = 1..12;
Var a: San; b: Text; c: Month;
4. Айнымалылар бөлімі
Айнымалыны сипаттау бөлімінің құрылымы төмендегіше
болады:
13
Var айнымалының аты: типтің аты;
(variable-айнымалы). Бірдей типті айнымалылар үтір қойылып
жазылады.
Мысал: Var a, b, c: integer;
x,y: real; text1: string;
Операторлар бөлімі
Программаға операторлар бөлімінен басқа бөлімдердің
енгізілуі міндетті емес. Олар қажетіне қарай енгізілуі тиіс.
Program тақырыбының да жазылуы міндетті емес, ол
программаны оқуға ыңғайлы болу үшін жазылады.
Операторлар бөлімі – программаның орындалу бөлімі. Ол
Begin қызметші сөзінен басталып end сөзімен аяқталады. End
сөзінің соңына нүкте қойылуы тиіс, ол программаның аяқталу
белгісі. Нүкте компиляторға програм ма мәтінінің
аяқталғандығын хабарлайды. Begin (басы), end (соңы) – ашу,
жабу жақшаларының ролін атқаратын қызметші сөздер немесе
оларды басқаша операторлық жақша деп те атайды.
Бақылау сұрақтары:
1. Стандарт функциялар деген не?
2. Паскаль тілінде қандай стандарт функциялар бар?
3. Паскаль тілінде стандарт функциялар қандай модульде
жинақталған?
4. Арифметикалық өрнек деген не?
5. Паскаль тілінде арифметикалық өрнек қалай жазылады?
6. Өрнектегі операциялар қандай ретпен орындалады?
7. Операциялардың орындалу ретін қалай өзгертуге болады?
8. Дәрежелеу амалы Паскальда қандай формуламен
есептеледі?
9. Төмендегі өрнектер Паскаль тілінде қалай жазылады?
a) lge
x+2
b) 2п*ctg45 c) 3,14*arcsinx d) tg
2
x
2
+e
cosx
10. Паскаль тілінде жазылған өрнектерге сәйкес
арифметикалық өрнектерді жазыңдар:
a) sqr(3)+63/(sin(30*pi/180)+sqrt(6.5));
b) abs(sin(12*pi/180))/exp(1/3*ln(x));
c) ln(3)/ln(x)+exp(5*ln(x))/(sqrt(a*b)+3*a)
d) sqr(x+ln(2))+abs(sin(x*pi/180)-sqrt(exp(5*ln(x)))
14
Жаттығулар:
Төменде берілген математикалық өрнектерді Паскаль тілінде
жазыңдар. Айнымалылардың типін анықтаңдар. a
x
x
ea
aa
ex
x
tg
tgx
e
xx
xe
a
b
b
yx
x
xctgx
a
acbb
x
53
ln3
34
3
2
2
0
0
35
32
2
1
sin
.10
.9
3
lg
5
.8
lglog.7
2
sin1
.6
30cos
60sin
.5
2
cos.4
.3
sin.2
2
4
.1
0
5
33
ln
33
3
2
40
0
5
1
5
3
5
324
0
2
5sin
cos
.20
.19
39
.18
log.17
5ln
sin1
.16
345,0
60cos
.15
20sin
.14
.13
sin
.12
15.11
ab
x
x
x
eb
ba
ea
x
tg
ctgx
e
xx
tgx
x
a
b
ytgx
e
x
x
xxtg
ctg
a
ab
15
II. ПАСКАЛЬ ТІЛІНІҢ ОПЕРАТОРЛАРЫ. ШАРТТЫ
ЖӘНЕ ТАҢДАУ ОПЕРАТОРЛАРЫ
2.1 Меншіктеу, мәліметтерді енгізу, шығару операторлары.
Сызықтық программа
Паскаль тіліндегі меншіктеу операторының жалпы түрі:
айнымалы: = өрнек;
Мысал: x:=0.5;
y:=a+b;
D:=b*b-4*a*c;
p:=(a+b+c)/2;
Енгізу операторының жазылу үлгісі:
Read (айнымалылар тізімі);
(read-оқу)
Мысал: read(a,b,c);
Енгізілетін мәндер бос орын арқылы теріледі. Read
операторының соңына ln жалғауы қосып жазылуы мүмкін:
readln (readline-жолды оқу). Бұл жағдайда курсор келесі
жолдың басына көшіріледі де, мәліметтер бірінің астына бірі
әрбір жаңа жолға енгізіледі.
Мысал: readln(a); readln(b); readln(c);
Мәндерді экранға шығару үшін Паскаль тілінде төмендегі
оператор қолданылады:
Write (параметрлер тізімі);
(write-жазу)
writeln болып жазылса (writeline –жолды жазу) курсор жаңа
жолға көшіріліп, мәліметтер бірінің астына бірі шығады.
Мысал: 1) Write (‘x- ті енгіз=?’);
read (x);
2) M:=10; N:=25;
Writeln (M);
Writeln (N);
Write(x:n:m) –нақты типті х айнымалысының мәнін экранға
көрсетілген үлгіде шығару.
Мұндағы n- экранға шығатын барлық символ саны.
m- бөлшек бөліктің цифрлар саны (0≤m≤n)
16
Мысал: 1)
х-тің мәні оператор экранда көрінуі
145 write (x:7) _ _ _ _ 145
86..92 write (x:7:3) _ 86..920
3.14589 write (x:4:2) 3.14
2) Write (x, ‘ ’, y); -х және у мәндерінің арасына бос орын
қалдыру.
Write (‘s=’, s:5:2);
Write (x+25, 3*x)- өрнек мәнін шығару.
Меншіктеу, енгізу, шығару операторларын қолданып құрылған
сызықтық программалар қарастырайық.
Мысал1. Үш қабырғасы берілген үшбұрыштың ауданын табу
программасын құрыңдар.
Program Geron;
Var a,b,c: integer;
P,S:real;
begin
Write (‘Үшбұрыш қабырғаларын енгіз ’);
read (a,b,c);
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln (‘Үшбұрыш ауданы =’, S);
end.
Мысал2. Радиусы 5,2-ге тең шеңбердің ұзындығын және
дөңгелектің ауданын табу программасын құрыңдар.
Program Audan;
Const r=5.2;
Var L,S:real;
begin
L:=2*pi*r;
S:=pi*sqr(r);
Writeln (‘Дөңгелек ауданы =’, S:4:2);
Writeln (‘Шеңбер ұзындығы =’, L:5:2)
end.
Программаны оқуға жеңіл, түсінікті болу үшін күрделі
программаның әр жеріне түсініктемелер қоюға болады. Олар
немесе (* *) қосарлы жақшаға алынады.
17
Мысалы: Аудан есептеу
(* Герон формуласы*)
Мысал3. Қабырғасы а-ға тең кубтың көлемін есептейтін
программа құрыңдар.
Program Pl1;
Var a,V: integer; a-кубтың қабырғасы, V-көлемі
begin
read(a); қабырғаны енгізу
V:=exp(3*ln(a)); (* куб көлемі V=a^3 *)
Writeln (‘V=’, V);
end.
Мысал4. Екі қабырғасы мен арасындағы бұрышы берілген
үшбұрыштың үшінші қабырғасын және ауданын табу
программасын құрыңдар.
Program Audan;
Var a,b,x: integer;
c, S:real;
begin
Write (‘Үшбұрыш қабырғаларын және бұрышты енгіз ’);
read (a,b,x);
c:=sqr(a)+sqr(b)-2*a*b*cos(x*pi/180);
S:=1/2*a*b*sin(pi*x/180);
Writeln (‘Үшбұрыш ауданы =’, S,’үшінші қабырғасы=’, с);
end.
Мысал5. Берілген үш таңбалы бүтін санның цифрларының
қосындысын табыңдар.
Program Summa;
Var x,a,b,c,d,S:integer;
begin
Write (‘Үш таңбалы бүтін сан енгіз ’); read (x);
a:=x div 100; b:=x mod 100;
c:=b div 10; d:=b mod 10;
S:=a+c+d;
Writeln (‘S=’, S);
end.
18
2.2 Шартты оператор
Шартты оператор қандай да бір шартты тексеріп, оның
нәтижесіне байланысты белгілі бір әрекетті орындауды жүзеге
асырады.
Оның жазылу үлгісі:
1) IF шарт THEN 1-оператор ELSE 2-оператор;
2) IF шарт THEN оператор;
1-жағдай шартты оператордың жазылуының толық түрі, 2-
жағдай қысқа түрі деп аталады.
Мысал 6. Екі санның үлкенін табыңдар.
Program m1;
Var a,b, max: integer;
begin
Write (‘2 санды енгіз’); read (a,b);
If a>b then max:=a else max:=b;
Writeln (‘Жауап:’, max);
end.
Кейде then, else қызметші сөздерінен кейін бір емес, бірнеше
оператор енгізілуі мүмкін. Паскальда осы сияқты 1 серияда
орындалатын операторлар тізбегі бір оператор түрінде
қарастырылады да, оны құрама оператор деп атайды. Құрама
оператор begin, end операторлық жақшаға алынады.
Мысал 7. Квадрат теңдеудің түбірін табыңдар.
Program m2;
Var a,b,c,D:integer;
x1,x2: real;
begin
Write (‘кв.теңдеу коэффициенттерін енгіз:’); readln (a,b,c);
D:=b*b-4*a*c; дискриминантты есептеу
If d<0 then writeln (‘түбірі жоқ ’)
else begin x1:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a);
Writeln (‘x1=’, x1, ‘x2=’, x2); end;
end.
Мысал 8. Екі бүтін санның үлкені мен кішісін табыңдар.
Var a,b, max, min: integer;
begin
read (a,b);
19
if a>b then begin max:=a; min:=b end
else begin max:=b; min:=a end;
Writeln (‘max=’, max, ‘min=’, min)
end.
Егер шарттың саны біреуден артық болса, онда ол құрама
шарт деп аталады. Құрама шарттар арасына and (және), or
(немесе), not (емес) қызметші сөздері жазылады және жәй
шарттар жақшаға ( ) алынып жазылады.
0<x≤5 шарты Паскальда былайша жазылады: (х0) and
(х5)
Мысал9. Жазықтықта берілген нүкте центрі координалар
басындағы, ішкі радиусы 2-ге, сыртқы радиусы 3-ке тең
сақинаға тиісті бола ма?
Program m4;
const r12; r23;
var x,y:real;
begin
Write ('нүкте координасын енгіз); read(х, у);
if (х*х+у*у4) and (х*х+у*у9) then
Writeln (нүкте сақинаға тиісті) else writeln (тиісті
емес)
end.
Мысал10. Функцияны есептеу прогрммасын жазыңдар:
y 0,
10,cos
1,
егерхtgx
хегерx
егерхx
var x,у: real;
begin
read (х);
if х1 then y:sqrt (х)
else if x0 then y:sin(х)/cos(х)
else y:cos(х);
writeln (y)
end.
Мысал11. Екі бүтін санның үлкені мен кішісін табыңдар.
Var a,b, max, min: integer;
begin
20
read (a,b);
if a>b then begin max:=a; min:=b end
else begin max:=b; min:=a end;
Writeln (‘max=’, max, ‘min=’, min)
end.
Мысал12. Жазықтықта берілген нүкте центрі (2,3) нүктесіндегі,
ішкі радиусы 1-ге, сыртқы радиусы 2-ке тең сақинаға тиісті
бола ма?
Program m3;
const r11; r22;
var x,y:real;
begin
Write ('нүкте координаларын енгіз); read(х, у);
if (sqr(х-2)+sqr(у-3) sqr(r1)) and (sqr(х-2)+sqr(у-3) sqr(r2))
then
Writeln (нүкте сақинаға тиісті) else writeln (тиісті емес)
end.
2.3 Таңдау операторы
Таңдау операторы арқылы программадағы мүмкін болатын
бірнеше оператордың біреуі таңдалады. Real және String
типтерінен басқа кез-келген типті қабылдайтын айнымалы
немесе өрнек таңдау параметрі болып табылады. Ол
сұрыптаушы деп аталады.
Таңдау операторының құрылымы:
Case сұрыптаушы of таңдау тізімі else оператор end;
немесе
сase өрнек of
1- тұрақты: 1- оператор;
2- тұрақты: 2- оператор;
…
n- тұрақты: n- оператор
else оператор
end;
сase-жағдай, of-бойынша қызметші сөздері.
Бұл оператор былайша жұмыс істейді:
21
Алдымен өрнектің мәні есептеледі, сонан соң өрнектің
мәніне тең тұрақты ізделінеді. Сәйкесінше сол тұрақтыдан
кейін жазылған оператор орындалады да , таңдау
операторының жұмысы аяқталады. Егер тізімде есептелген
мәнге тең тұрақты табылмаса, басқару else сөзінен кейін
тұрған операторға беріледі.
Мысал13. Апта күндерінің нөміріне байланысты оның атауын
экранға шығаратын программа.
Program m1;
var n: byte;
begin
write (1-ден 7-ге дейінгі санды енгіз);
read (n);
сase n of
1: Writeln (Дүйсенбі);
2: Writeln (Сейсенбі);
3: Writeln (Сәрсенбі);
4: Writeln (Бейсенбі);
5: Writeln (Жұма);
6: Writeln (Сенбі);
7: Writeln (Жексенбі)
else writeln (Дұрыс емес)
end; таңдау операторының соңы
end. программаның соңы
Мысал 14. Y немесе y символы енгізілсе экранға «иә» сөзі,
N немесе n символы енгізілсе «жоқ» сөзі шығатын программа.
var c: char;
begin
readln (с);
сase с of
`n`, `N`: writeln (`жоқ );
`y`, `Y`: writeln (`иә);
end
end.
Мысал15. Енгізілген ай нөміріне байланысты (1-ден 12-ге
дейінгі бүтін сан) жыл мезгілін экранға шығаратын
программа.
var k: byte;
begin
22
write (`Ай нөмірін енгіз:1-12); read (к);
сase к of
1..2,12:Writeln (Қыс);
3..5: Writeln (Көктем);
6..8: Writeln (Жаз);
9..11: Writeln (Күз);
else Writeln (қате);
end
end.
Мысал16. Берілген 0 мен 12 арасындағы натурал санға сәйкес
шығыс күнтізбесіне сәйкес жыл атауын шығаратын программа:
Program m1;
var n: byte;
begin
write (Жыл нөмірін енгіз); read (n);
сase n of
0: Writeln ( Мешін жылы);
1: Writeln ( Тауық жылы);
2: Writeln (Ит жылы );
3: Writeln (Доңыз жылы);
4: Writeln (Тышқан жылы);
5: Writeln (Сиыр жылы);
6: Writeln (Барыс жылы);
7: Writeln (Қоян жылы);
8: Writeln ( Айдаһар жылы);
9: Writeln (Жылан жылы);
10: Writeln (Жылқы жылы);
11: Writeln (Қой жылы);
else writeln (Дұрыс емес)
end; таңдау операторының соңы
end. программаның соңы
Бақылау сұрақтары:
1. Паскаль тілінде программа құрылымы қандай бөлімдерден
тұрады?
2. Программаның сипаттау бөлімі қандай бөлімдерден тұрады?
3. Сызықтық программа деген не?
4. Шартты операторлардың формалары және олардың жазылу
үлгілері қандай?
23
5. Құрама шарт деген не, олар қалай жазылады ?
6. Құрама оператор деген не және олардың жазылуы қандай?
7. Қабырғалары a,b,c сандарына тең үшбұрыш болудың шарты
қандай?
8. Шартты және таңдау операторының айырмашылығы
қандай?
9. Таңдау операторының құрылымы қандай?
10. Таңдау шарты қандай типті мәндерді қабылдамайды?
11. Таңдау операторы қалай жұмыс істейді ?
12. x = 3 үшін төмендегі программа нәтижесі нешеге тең?
Var x:byte; y:real;
begin
case x of
1: y: = sqr(x);
2: y: = sqrt(x);
3: y: = x+1;
4: y: = x-1; end;
writeln(y) end.
13. Программадағы қатені анықтаңдар.
var X: real;
begin
read (X);
case X of
1 y = sqr (X);
2 y = sqrt (X);
3 y = X + 1;
4 y = X-1;
writeln(y) end.
writeln(y) end.
Жаттығулар.
Төмендегі есептердің Паскаль тілінде сызықтық
программасын құрыңдар:
1. Қараша айында дүкенде А млн теңгеге тауар сатылды, бұл
қазан айындағыға қарағанда 15 % артық. Қазан айында
қанша ақшаға тауар сатылды?
2. Төбелері берілген үшбұрыштың периметрі мен ауданын
табыңдар.
24
3. Екі сан берілген. Бұл сандардың кубтарының
арифметикалық орташасын және модульдерінің
геометриялық орташасын табыңдар.
4. Қызметкердің жалақы мөлшері берілген. Жалақыдан
зейнетақы қорына кететін (10%) және кіріс (5%)
салықтарының мөлшерін анықтаңдар.
5. Берілген үш таңбалы санның цифрларының қосындысын
табыңдар.
6. Жазықтықта координаталары берілген 2 нүктенің ара
қашықтығын табыңдар.
7. Ақпарат көлемін байтпен өрнектейтін А шамасы берілген.
А-ны ақпараттың одан үлкен өлшем бірліктеріне
айналдырыңдар.
8. Шеңбер ұзындығы берілген. Осы шеңбермен шектелген
дөңгелек ауданын табыңдар.
9. Сыртқы радиусы R1, ішкі радиусы R2 сақинаның ауданын
табыңдар.
10. Алғашқы мүшесі, айырымы, n мүше саны берілген
арифметикалық прогрессияның n мүшелерінің қосындысын
табыңдар.
Төмендегі есептердің шартты операторды қолданып
программасын құрыңдар:
1. N натурал саны берілген. Егер ол сан тақ және оны екі
еселегенде алынған сан 32767- ден кем болса, онда ол санды
2- ге көбейтіңдер. Керісінше жағдайда берілген санды 5- ке
бөліңдер.
2. Берілген үш таңбалы санның цифрларының қосындысын
тауып, оның жұп не тақтығын анықтаңдар.
3. Берілген нүкте центрі (1,1) нүктесіндегі, радиусы R
шеңберге тиісті бола ма?
4. Үшбұрыштың үш қабырғасы берілген . Берілген үшбұрыш
а) тең бүйірлі
б) тең қабырғалы бола ма?
5. Бір-біріне тең емес x,y нақты сандар берілген. Олардың
кішісін берілген сандардың жарты қосындысымен, ал
үлкенін ол сандардың екі еселенген көбейтіндімен
алмастыр.
6. К саны а, в, с сандарының қайсысының бөлгіші болады?
7. Кездейсоқ берілген 3 санның неше әрекеттен кейін
«бақытты жетілік» құрайтынын анықтаңдар.
25
8. Үш таңбалы санның төңкермелі ме екендігін анықтаңдар.
9. Берілген күн датасы мен ай нөмірі бойынша сол күннің
жылдың басынан санағандағы реттік нөмірін анықтаңдар. (
Мысалы 25 февраль – 56-шы күн)
10. Берілген күннің реттік нөмірі бойынша сол күннің датасы
мен ай атын шығаратын программа құрыңдар.( Мысалы 33-
күн – 2 -февраль)
Төмендегі есептердің таңдау операторын қолданып
программасын құрыңдар:
1. Ай нөмірі бойынша сол айдағы мейрам күндерін экранға
шығаратын программа құрыңдар.
(Мысалы: n=1 1-қаңтар Жаңа жыл мейрамы, n=3 8-наурыз
Аналар мейрамы, 22-наурыз Наурыз мейрамы)
2. Қаладағы мектеп нөміріне байланысты ол орналасқан аудан
атауын экранға шығаратын программа құрыңдар.
3. Берілген факультет нөмірі бойынша факультет атауын
шығаратын программа құрыңдар.
4. Ертегідегі “Оңға жүрсең- атыңнан айрыласың, солға жүрсең-
ажал табасың, тіке жүрсең- дос табасың” әрекеттерінен
таңдау жасау программасын құрыңдар. (таңдау шарты: оңға-
“о”, солға- “с”, тіке- “т”)
5. Ай нөміріне сәйкес сол айдағы күн санын шығарыңдар.
6. Апта күні нөміріне байланысты, сол күнде болатын сабақ
санын шығарыңдар.
7. 1-ден 4-ке дейін енгізілген натурал санға байланысты
“Сәлем n-курс” хабарламасын экранға шығарыңдар (мысал:
n=1 болса, “Сәлем 1-курс”.)
8. Енгізілген жыл мезгілі нөміріне байланысты бұл мезгілге
сәйкес ай аттарын шығарыңдар.
9. 0-ден 9-ға дейінгі енгізілген санға сәйкес оның ағылшынша
атауын шығаратын программа құрыңдар.
10. Санның соңғы цифрына байланысты оның квадратының
соңғы цифрын шығарыңдар.
11. Енгізілген адам жасына байланысты оны 4 топқа:
мектепке дейінгі, оқушы, қызметкер, зейнеткер бөлетін
программа жазыңдар.
12. Берілген күн мен ай нөмірі бойынша сол күннің жыл
басынан санағандағы реттік нөмірін табыңдар.
26
III. ЦИКЛ ОПЕРАТОРЫ
3.1 Қайталау операторы (цикл)
Кейбір программаларда белгілі-бір шарттардың сақталуына
тәуелді командалардың қандай да бір бөлігі бірнеше рет
қайталанады. Мұндай әрекеттерді жүзеге асыратын
командаларды қайталану командасы деп атайды. Турбо
Паскаль тілінде программаның қайталанатын бөлігін
программалау үшін әртүрлі 3 оператор қолданылады.
Олар: 1) параметрлі цикл (немесе үшін циклі)
2) әзір циклі
3) дейін циклі
1. Параметрлі циклдің құрылымы:
FOR цикл параметрі:=бастапқы мән ТО соңғы мән ДО
цикл денесі;
Мұндағы for (үшін), to (дейін) do(орындау)- қызметші сөздер.
Бұл циклде цикл параметрі integer типті бүтін сан, цикл қадамы
1-ге ғана тең. Қадамның басқа мәндерінде әзір немесе дейін
циклі қолданылады.
Қадам -1-ге тең болған параметрлі цикл төмендегіше
жазылады:
FOR цикл параметрі:=бастапқы мән DOWNTO соңғы мән
ДО
Мысал17. Алғашқы 20 натурал санның қосындысын және
көбейтіндісін табыңдар.
а) var i, s, p: integer; б) var i, s, p: integer;
begin p:=1; begin p:=1;
for i:=1 to 20 do for i:=20 downto 1 do
begin begin
S:=S+i; S:=S+i;
P:=P*i; end ; P:=P*i; end;
Writeln (`S=`,S,`P=`,P) Writeln (`S=`,S,`P=`,P)
end. end.
Цикл денесі құрама оператордан тұратын болса, онда олар
begin, end операторлық жақшаға алынады.
Мысал18. n!-ды есептеу программасын жазыңдар.
Program m2;
var i, n : integer; P:longint;
27
begin
P:=1; read (n);
For i:=1 to n do
P:=P*i;
Write (`n!=’,P)
end.
Мысал19. 5 санының көбейту кестесін экранға шығаратын
программа құрыңдар.
1*5=5
2*5=10
3*5=15
…
9*5= 45
Program m3;
var i, p : integer;
begin
for i:=1 to 9 do
begin
p:=5*i;
Writeln (i,`*5=`, p)
end;
end.
Ал егер берілген кез- келген бүтін санның көбейту кестесін
экранға шығару қажет болса, онда программа төмендегіше
болады:
var i, n, p : integer;
begin writeln(‘Бүтін сан енгіз’); readln(n);
for i:=1 to 10 do
begin
p:=n*i;
Writeln (i,’*’, n, ‘=’, p)
end;
end.
Мысал20. 1- 20 аралығындағы қашықтық мәнін дюймнен
сантиметрге айналдыратын программа құрыңдар. (1 дюйм=2,5
см.)
Program m2;
var D,C : integer;
28
begin
For D:=1 to 20 do begin
C:=2.5*D;
Writeln ( D,’ Дюйм =’ ,C, ‘ См’ ) end;end.
2. Әзір немесе шартты алдын-ала тексеру циклі
Оның құрылымы:
WHILE шарт DO
цикл денесі ;
while (әзір), do (орындау)- қызметші сөздер.
Шарт- логикалық типті өрнек. Егер шарттың мәні ақиқат
(true) болса, цикл денесі орындалады және содан соң шарт
қайта тексеріледі.
Ал шарттың мәні жалған (false) мәнге тең болса, цикл денесі
орындалмай, басқару while циклінен кейін тұрған бірінші
операторға беріледі.
Мысал21. n!-мәнін есептеу программасын әзір циклі арқылы
жазайық..
Program m1;
var i, n: integer; P: longint;
begin
read (n);
P:=1;
i:=1;
While i<=n do
begin
P:=P*i;
i:=i+1;
end;
Write ('n!=', P);
end.
Мысал 22. x-тің мәні -5-тен 5-ке дейін 0,2 қадаммен өзгерген
мәндері үшін у=х
2
-1 функциясының мәндерін экранға
шығарындар.
Program m2;
var х, у: real;
29
begin
х:=-5;
While х<=5 do
begin
y:=sqr(x)-1;
Writeln (x,'---',y);
х:=х+0.2;
end;
end.
Мысал23. Барлық екі таңбалы жұп сандардың көбейтіндісін
табатын программа құрайық.
Program m1;
var i, P: integer;
begin
P:=1; i:=2;
While i<=98 do
begin
P:=P*i; i:=i+2; end;
Write (‘P=’, P);
end.
Мысал24. Екі натурал санның ең үлкен ортақ бөлгішін және ең
кіші ортақ еселігін табатын программа құрыңдар.
Program m2;
var a,b, EKOE,c: integer;
begin
read (a,b); c:=a*b;
While a<>b do
if a>b then a:= a-b else b:= b-a;
EKOE:=c/a;
Write ('2 санның ең үлкен ортақ бөлгіші=', а, '2 санның ең
кіші ортақ еселігі =', EKOE);
end.
3. Дейін немесе шартты соңынан тексеру циклі
Дейін циклінің құрылымы:
REPEAT
цикл денесі
30
UNTIL шарт
repeat (қайталау), until(дейін)-қызметші сөздер. Олар
операторлық жақшалар ролін де орындайды. Until- дің
алдындағы оператордан соң нүктелі үтір қойылмауы тиіс.
Дейін циклінде цикл денесінің операторы ең болмағанда бір
рет орындалады, содан соң шарт тексеріледі. Егер шарттың
мәні жалған болса, цикл денесі қайталап орындалады, шарт
ақиқат болғанда цикл аяқталады. Әзір циклінен
айырмашылығы бұл циклде кері шарт жазылады.
Мысал25. n!-ды есептеуді дейін циклін қолданып
программалауды қарастырайық.
Program m1;
var i, n: integer;
P: longint;
begin
read (n);
P:=1;
i:=1;
Repeat
P:=P*1;
i:=i+1
Until i>n
writeln ('n!=', P);
end.
Мысал26. Алғашқы 10 жұп санның көбейтіндісі мен
арифметикалық ортасын табыңдар.
Program m2;
var i, p, s: integer;
k: real;
begin
i:=2; S:=0; P:=1;
Repeat
P:=P*i; S:=S+i;i:=i+2;
Until i>20
k:=S/10;
writeln ('Көбейтінді=', P, 'Арифметикалық орта=',k)
end.