Цикл ішіндегі циклдер

Скачать



Мазмұны
Кіріспе
1. Turbo Pascal бағдарламалау тілінің негізі, даму тенденциясы;
1.1 Turbo Pascal бағдарламалау тілі, негізгі элементтері, құрылымы;
2.1 Файлдардың түрлері
2.1.1 Мәтіндік файлға мәліметтер жазу. Бір өлшемді массив.
2.1.2 Мәтіндік файлға мәліметтер жазу. Екі өлшемді массив
2.1.3 Мәтiндiк файлдан мәлiметтердi оқу
2.1.4 Мәтiндiк файлдан мэлiметтердi оку (жалғасы)
2.1.5 Типті файл. Типті файлдарға мәліметті жазу
2.1.6 Типті файлдан мәліметтерді оқу
2.1.7Әртүрлі базалық типтерді біріктіру. Жазба типі
2.1.8 Сыртқы кітапханалар. Модульдер
2.1.9 Модуль құрылымы
2.2 Turbo Pascal-дағы жолдық қатарлар
2.2.1 Жолдық қатарлар
2.2.2 Жолдық процедуралар мен фукнциялар
2.2.3 Жолдық қатарларға программа құру
2.2.4 Жолдық қатарлар мен амалдар орындау
2.3 Turbo Pascal-дағы көмекші бағдарламалар
2.3.1КӨМЕКШІ БАҒДАРЛАМАЛАР ЖӘНЕ ОЛАРДЫҢ ҚҰРЫЛЫМЫ.
2.3.2 Көмекші программа құрылымы
2.3.3 Процедуралар. Процедураның құрылымы
2.4 Қайталану командалары
FOR циклдік операторы ( Үшін циклі ).
WHILI … DO ЦИКЛДІК ( ӘЗІРШЕ ЦИКЛІ ).
REPEAT … UNTIL ЦИКЛДІК ОПЕРАТОРЫ ( Дейін ).
3. Міндетті орта білім беру мектептеріндегі 7-11 сыныптардағы геометриялық
3.1 Геометриялық есептердің Turbo Pascal бағдарламалау тілі көмегімен шешілуі;
Қорытынды
Қолданылған әдебиеттер тізімі
КІРІСПЕ
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның тұңғыш
Turbo Pascal – оның тұңғыш нұсқасын жоғарғы деңгейлі программалау
тілге дамытылған берілгендер типтері енгізілген. Олар өңделетін берілгендер элементтерін
мұнда кішігірім жеңіл программалармен бірге күрделі құрылымды программаларды құру
тіл синтаксисі қиын емес; нұсқаулардың (операторлардың) саны мүмкіндігінше азайтылған,
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі
Жоғарғы деңгейлі программалау тілдерінің бірі − Паскаль. Қазіргі
Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі
Паскаль тілі бұрын құрылған (Фортран, Алгол және т.б.) программалау
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын,
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
TURBO PASCAL БАҒДАРЛАМАЛАУ ТІЛІНІҢ НЕГІЗІ, ДАМУ ТЕНДЕНЦИЯСЫ
Паскаль тiлiн 1968-1971 жылдары швейцариялык. ғалым Никлаус Вирт оқып
Бұл тілде жазылған программа компьютерде орындалу барысында алдымен трансляцияланады
Қазiргi кезде Паскаль кез келген күрдлі есептерді шығара алатын,
Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару
Паскаль тілінде программа жеке - жеке жолдардан тұрады. Оларды
Паскаль тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып
Program BASTAU:
Сипаттау бөлімі
Begin
Операторлар бөлімі
End
Операторлар бөлімінде командалар ретімен орналасады. Олардың кейбірі шартқа байланысты
Деректер - сан мәндері мен мәтін түріндегі сөз тіркесін
Дерек енгізу - бастапқы деректерді пернетақтадан, дискіден немесе еңгізу
Операциялар немесе амалдар - берілген және есептелген мәндердің меншіктеу,
Шартты түрде атқарьшу белгілі бір көрсетілген шарттың орындалуына байланысты,
Цикл - белгілі бір шарттар орындалған жағдайда көрсетілген командалар
Көмекші программа - алдын ала қандай да бір атаумен
Түсініктеме - программа жолдары соңында немесе оның түйінді сөздері
Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері Паскаль тіліндегі алдын
Мәліметтердің немесе шамалардың типі деп, олардың қабылдай алатын мәндерінің
Мәліметтердің әр типі тек өзіне ғана сәйкес келетін операциялар
Паскаль тілінде пайдаланылатын барлық типтер скалярлық (қарапайым) және құрылымдық
• Бүтін - INTEGER;
• Нақты - REAL;
• Логикалық - BOOLEAN;
• Тіркестік - (STRING);
• Мәтіндік (ТЕХТ) тәрізді типтер жатады.
Құрылымдық типтері жиымдар - ARRAҮ, жазбалар - RECORD, жиындар
Бұлардан өзге типтер программаның типтері сипаттау бөлігінде анықталуы қажет.
Ол үшін type түйінді сөзі қолданылып, жазылу пішімін былай
болады:
Туре =;
Логикалық шамалар екілік сандар жүйесіне сәйкес «1» және «О»
Символдық шамалар апострофқа алынған бір символды ғана мән ретінде
Мәліметтердің қарапайым түрлерін стандартты типтер деп атау қалыптасқан. Стандартты
Стандартты типтер. Паскаль тілінде төмендегі қарапайым типтер пайдаланылады:
• Бүтін типтер - SHORTINT, INTEGER, LONGINT, ВУТЕ, WORD;
• Нақты тип - REAL, SINGLE, DOUВLE, EXTENDED, СОМР;
• Логикалық - BOOLEAN;
• Симводық - CНAR;
• Ауқымды (диапозонды) тип;
• Саналатын тип;
Паскаль тілінің программасы блоктардан құрылады. қандай да бір блок
Мәліметтерді сипаттау бөлімінің болуы міндетті емес, ал екінші негізгі
Негізгі блок - негізгі программа блогы, сондықтан ол басқа
Программалардың негізг объектілері болып саналатын айнымалы, тұрақты және oлapдың
Турбо Паскаль программасының тақырыбын (атауын) жазбай кетуге де болады,
Сонымен Паскаль тіліндегі кез келген программаның тақырыбы, одан кейін
Программамен байланысатын кітапханалық модульдер атауларының
тізімі (ол uses түйінді сөзімен басталады);
2) Белгілерді (lаbеl) сипаттау;
3) Тұрақтыларды (const) сипаттау;
4) Мәліметтер типтерін (true) анықтау;
5) Айнымалыларды (var) сипатгау;
6) Процедураларды (procedure) сипатгау;
7) Функцияларды (function) сипатгау;
Берілген мәндерді айнымалыға беру ушін меншіктеу операторы пайдалануға болады.
Паскаль тілінде мәліметтерді енгізу және шығару үшін, яғни адам
Паскаль тілінде мәлімет енгізетін READ ( READ - ағылшынша
операторының жалпы турі (пішімі) төмендегідей:
READ (а1, а2 ... ап);
READLN (а1, а2, ... , ап);
READLN;
Мұндағы а1, а2, ..., аn - айнымалы атаулары, оларды
Енгізілетін айнымалылардың мәндері integer, reаl, char немесе stгіпg (сөз
І/О error ХХ,
мұндағы ХХ - бүтін сан түріндегі қaтенің сипатына сәйкес
READ операторы орындалtанда параметрлер өздеріне сәйкес мәндері қабылдайды, бұл
Мысал.
var
І: real;
J: integer;
К: cҺar;
begin
Read (І, J, К);
...
Программаға мынадай бастапқы мәндер енгізіледі 212.5 38 ‘п’. Осыдан
Алғашқы нұсқасында мәлімет енгізу дұрыс орындалады, өйткені енгізілетін мәндер
Егер енгізу пернетақта арқылы емес, дискіден немесе файлдан жүзеге
READ (FN, аl, а2 ... ап);
READLN (FN, аl, а2, ... , ап);
READLN (FN);
Мұндағы FN - енігізілетін мәндер жазылған дискідегі файлдың аты;
Файлдардан мәлімет енгізу мысалдары кейінірек қарастырылады.
READ операторы кез келген сандармен, символдармен және сөз тіркестерімен
Сонымен, параметрлердің сандық мәндері бір - бірінен бос орын
ажыратылып жазылады. Мәндерді беріп болдық дегенді білдіру үшін Enter
А=5, В=6.2, С=4.5 мәндер қабылдайды. Осы мәндер арқылы программа
Бүтін айнымалыларға бүтін, нақты айнымалыларға нақты мәндер берілуі қажет.
Айнымалы сипатталғанда нақты ретінде көрсетілсе, оған нақты да, бүтін
Мысалы:
VAR
А, В: REAL;
BEGIN
READ (А, В);
...
END.
түрінде беріліп А,В айнымалылары үшін 4 5 Enter орындалса,
Сандар арасында бір немесе бірнеше бос орын қалдыруға болады,
Мәндерді енгізгенде мән енгізілген жолдан келесі жаңа жолға өту
Символдық деректерді пернетақтадан енгізу READ (READLN) операторы
арқылы жүргізіледі, оларды енгізудің төмендегідей ерекшеліктері бар.
1. Бос орын таңбасы - '_' Паскаль тілінде символ
символдық айнымалылардың мәндері (символдар) бос орынсыз жазылады.
2. Бір айнымалыға бір ғана символ меншіктеледі. Мысал ретінде
программа үзіндісін қарастырайық:
......................
VAR А, В, С: CHAR;
.......................
READ (А, В, С);
.......................
Бұл мысалдағы READ операторы орындаларда пернетақтадан мынадай мәндер SNR
3. Символдық айнымалыларды енгізудің тағы бір ерекшелігі - тек
пернесі басылса да, оны READ операторы бос орын символы
VARA, В: INTEGER;
С, D: CНAR;
BEGIN
WRlTELN (' А, В, С, D мәндерін енгізіндер :');
READ (А, В);
READ (С, D);
WRlTELN (А, В, С, D);
END.
Бұл программа орындалу кезінде пернетақтадан мынадай мәндер енгізілген болса:
3 4
WF
онда А = 3, В = 4, С=' "
READ (А, В);
READLN;
READ (С, D);
Осылай жазылған үш оператор А = 3, В =
READLN;
READ (С, D);
READ (А, В);
Программада сандық және символдық мән қабылдайтын айнымалылар
45 31
KN
онда дисплей экранында 4531К көрінеді, демек А
45 31 К N
Онда дисплейден 4531KN көрінеді, яғни осылай береді.
Readln операторы көмегімен пернетақтадан бір символ енгізіп оны экранның
var сҺ: cҺar;
begin
writeln ('Символ енгізіндер: ');
writeln (сҺ,' символы енгізілді ');
write ('Enter пернесін басыңдар'); readln
end.
Егер осы программаның 'Символ енгізіндер:' деген хабарламасынан кейін бір
Негізінде, перне басылғанда бірден екі код қалыптасады, оның алғашқысы
Uses CRT;
Var сҺ: cҺar;
Begin
Writeln ('Латын алфавитінің кіші әріптерін енгізіңдер (z-программадан шығу). ');
Repeat
сҺ := Read Кеу;
write (Up Case( сҺ));
until сҺ ='z",
end.
Төмендегі кесте басқару пернелерің немесе олардың комбинацияларының
сканерлеу коды берілген.
Басылған пернелер
Сканерлеу коды Басылған пернелер Сканерлеу коды
Ctrl+@Ctrl+3
SҺift+Tab
Alt+ 1..Alt+=
Alt+Q ..Alt+P
Alt+A ..Alt+L
Alt+Z ..Alt+M
Alt+Enter
Ноте
Ctrl+Home
Ctrl+PgUp
End
3
15
120..131
16..25
30..38
44..50
28
71
119
132
77
79
80 PgDn
lns
Del
Fl ..FI0
SҺift+F 1..SҺift+F 10
Ctr1+Fl ..Ctrl+Fl0
Alt+F 1..Alt+F 10
Ctrl+PrintScreen
PgUp
75
Ctrl+
Ctr1+End
Ctrl+PgDn 81
82
83
59..68
84..93
94 ..103
О 104..113
114
73
Ctrl+ 115
116
117
118
Төмендегі scan_codes программасы басылған пернелердың сканерлеу кодын
анықтауға арналған. Ол программамен жұмыс істеу барысында Сtгl +
Uses CRT;
Var сҺ: char;
Begin
Writeln ('Программа символ коды мен сканерлеу кодын анықтайды');
Wrіtеlп('Программа жұмысын тоқтату үшін Ctrl+Break пернелерін басыңдар');
repeat
wrіtеlп('Келесі перне: ');
сҺ: = Read Кеу;
writeln;
if cs #0 then
writeln ('Символдық перне. Огd (сҺ) = " Ord(ch))
else
begin
write (Басқару пернесі, символ коды: #0. ' );
сҺ : = Read Кеу;
writeln ('Сканерлеу коды: " Огd(сҺ));
end·,
until false;
end.
Бұл программа кейбір пернелерді басқанда, мысалы, F11 пернесін басқанда
4. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd
Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы
WRІTE (аl, а2, ... ,an);
Мұндағы жақша ішінде жай айнымалылар немесе апострофтармен қоршалған символдар
WRlTE ('В мәні=', В);
экранда
В мәні = 1.715Е+Оl
деген сөз тіркесі көрінеді.
Шығарлатын мәндердің түрі айнымалылардың типі арқылы анықталады, олар iпteger,
Шығарылатын параметрлер бір-бірімен үтір арқылы ажыратылыn, WRITE түйінді сөзінен
Шығару операторында жақша ішінде қағазға немесе экранға шығарлатын мәнінің
WRITE (b: n) немесе WRITE (b: 5)
операторы арқылы жүзеге асырылады. Мұндағы b - айнымалының атауы:
«56»
тіркесін шығарады.
Нақты сандар ушін оның жалпы енін, сонан соң бөлшегі
І- санға берілетін барлық орын.
ІІ- үтірден кейін алынатын бөлшек цифрлар саны.
Мынадай оператор берілсін делік: WRІTE (Ү: 5: 2)
Мұндағы 5 - нәтижеге берілген барлық орын, 2 үтіпден
WRITE (С: п: т);
мұндағы n - С мәнінің барлығына берілген орын саны;
WRITE (b: 8: 3,":4, с: 12: 4);
мұндағы 4 - b мен с сандарының арасындағы бос
Егер нақты сан үшін: WRIТЕ ('Ү =', Ү: 8:
Егер операторда пішім көрсетілмесе, онда нәтuжеде сол сан экспоненциальды
Паскаль тілінде параметрсіз шығару операторы WRITELN жаңа жолға өту
Егер WRITELN (аl, а2, ...,an); операторы қолданылса, онда аl,
WRITE операторын түсініктеме беруге қолдануға болады. Мысалы:
WRITE (' А, В, С мәндерін енгізіндер: ');
READ (А, В, С);
Мұндайда экранға:
А, В, С мәндерін енігізіндер:
түсініктеме сөзі шығады, сонан кейін үш сандық мән енгізілуі
Мысалы,
WRITE (' Т = ' , N: 3,": 4,
болса, онда Т-ның үш орынды мәнінен соң 4 бос
Айталық, х= 7, ү= 15, Z= 11, ал R=
шығарудың әр түрш тәсілдерін мына кестеде көрсетілген.
Оператордың жазылуы Экрандағы нәтижесі
Write (х, у);
Write (Х'_,_' ,у);
Write ('Х =',Х);
Write (Х, ": 3, Z);
Write (Х+Ү =',Х+Ү);
Write (Z,'- соңы);
Write ('бітті');
Write (R); 7 15
7_,_ 15
Х=7
7 11
Х+Ү=22
ІІ-соңы
бітті
4.5008Е+02
Блок схема құрылымы.
Бұл программада енпзу - шығару операторларына блок – схема
Бұл блок - схемада n таңбасын студенттер санына өзгертеміз.
Программаны іске қосыңыздар. Программа А:\ Student. ехе орналасқан.
Сіздің алдыңыздан меню терезесі көрінеді. Көрінген меню терезесінен керек
Егер сіз «Программа туралы» жолды таңдасаңыз, онда сіз Авторы
Егер сіз "Енгізу" жолын тандасаныз, онда алдыңыздан "Turbo Pascаl
Енгізілетін мәндерді енгізіп болғаннан кейін «Жауабы» жолын таңдасаңыз экранға
«Шығу» жолын тандасаңыз программадан шығасыз .
Программа.
{Приложение А.
{О каждом студенте известна следующая информация
~ Ф.и.о.
~ Год рождения
~ Группа
~ Оценка по математики
~ Оценка по истори
~ Оценка по в.т.
~ Оценка по статистики
Сформируйте таблицу, записав в нее всю известную о қаждом
{Автор: Смайлова Нұрбану}
{Подключения модуля CRT.}
Uses CRT;
{Описания записи о каждом студенте. }
type
tablica=record
паmе: string[15];
group: string[6];
god: integer;
vt, history, stat, math: byte;
sr bal:real;
end;
var
i,j, n:integer;a:tablica;
{Таблица- массив записей.}
mas: array [1 .. 30] of tablica;
{Переменные для сравнение средних значении пo предметам. }
s vt, s history, s stat, s math: real;
begin
{Bвод количества n записи.}
write('n='); readln(n);
{Ввод элементов в массив записей.}
for і:=l to n do
with mas [і] do
begin
writeln (' і=', і: 4);
writeln ('FIO');
readln (nаmе);
writeln('GROUP') ;
readln (group);
writeln ('Year');
readln (god);
writeln ('Otsenki');
readln(vt,history,stat,math);
sr_bal:=(vt+history+stat+math)/4;
end;
{Вычисление средних значении по каждому предмету. }
s vt:=0; s history:=0; s stat:=0; s math:=0;
for і:=l to n do
begin
s vt:=s vt+mas[i] .vt;
s history:=s history+mas[i] .history;
s stat:=s stat+mas[i] .stat;
s -math:=s -math+mas[i] .math;
end;
s vt:=s vt/n;
s history:=s history/n;
s stat:=s stat/n;
s math:=s math/n;
{Упорядочение массива записей в алфавитном порядке фамилии.}
for і:=l to п-l do
for j:=l to п-l do
if mas[j] .name>mas[j+l] .пате then
begin a:=mas[j];
та s [j ] :=та s [j +1] ;
mas[j+l] :=а;
end;
{Вывод результатов.}
clrscr;
write(' ':8,'FIO , , .. 4) .,•
wr і te (' ': 2, 'GROUP ');
write(' ':l,'Year ',":2);
write (": 3, 'OTSENKI', '
writeln('Sr.Bal') ;
for і:=l to n do
with rnas[i] do
begin
write(narne:15);
write (' ',group: 8);
write(' ',god:4);
-- _. о. _
writeln(' ',vt:з,' ',history:3,' ',stat:3,’math : 3,' ', sr_bаl :
end;
writeln (' , ' Sr. bа1: ' " ':
end.
Программаның нәтижеcі.
Енгізілген мәндер:
1. n = 3
2. і= 1 Ф.И.О.:Бисенов Нүргелді
3. Группа: 11-122
4. Год рождения: 1988
5. Отценки: 5454
6. і= 2 Ф.И.О. : Бақтығалиев Бекнұр
7. Группа: 11-122
8. Год рождения: 1989
9. Отценки: 5 4 5 5
10.і = 1 Ф.И.О.: Амангелді Медет
11.группа: 11-122
12.Год рождения: 1989
13.0тценки: 5 444
Енгізілген мәндердің нәтижесі:
Ф.И.О.
Бақтығалиев Бекнұр 11-122
Бисенов Нүргелді
Амангелді Медет
Средний бал:
Файлдармен жұмыс
1 Файлдардың түрлері
Осыған дейін, біз мәліметтерді пернетақтадан негізіп, оларды экранға шығардық,
Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы жадының
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
Borland Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады:
файлдың типі бойынша (оның логикалық құрылымына )
файл элементтеріне қатынау тәсілі бойынша
Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:
мәтіндік файл;
типтік файл;
типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
Тікелей қатынау файлдары
Кезекпен қатынау файлдары
Олардың айырмашылығы тікелей қатынау файлдарында арнайы
процедуралар және функцияларды пайдалана отырып, мәліметтерді, олардың
2. Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив.
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп, оларды
Есепті кезеңдерге бөлейік:
пернетақтадан мәліметтерді енгізу
оларды “mayFile.in” атты файлға жазу керек.
Бірінші кезеңді орындау үшін:
пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету керек
Сан мөлшерін білген соң, параметрлі циклді қолдану арқылы массив
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз. Айталық, санымыз
рrogram Misal_F1;
var
San: array [1..100] of integer;
i, SanMolcher: integer;
Мәліметтерді енгізу процедурасы келесі түрде болады:
procedure init; begin readln (SanMolcheri);
for i:=1 to SanMolcheri do
begin
write (“San[“,i,”]=’);
readln(San[i]);
end;
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес, сондықтан ол
procedure work ;
begin
end;
Енді екіншісі кезеңді қарастырайық, яғни мәліметтерді «mayFile.in» атты мәтіндік
var
FileOut: text;
Одан кейін біз программаға, “мәтіндік” типтегі FileOut атты айнымалының,
Файл аты мен оның кеңейтілуінен басқа орналасқан орнына
Name Var) процедурасы—файлды жазу үшін ашады және көрсеткішті файлдың
Енді мәліметтерді файлға жазуға бәрі дайын. Ол үшін бұрынан
Close(Name Var) процедурасы—файлдың соңына, файл соңы белгісін жазып, оны
Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып көрелік:
procedure exi;
var
FileOut:text;
begin
assing(FileOut,`mayFile.in`);
rewrite(FileOut);
write(FileOut, SanMolcheri);
for i=1 to SanMolcheri do
write(FileOut,San[i]);
close(FileOut);
end;
негізі программаның мәтіні өзгеріссіз қалады
begin
init;
work;
exi;
end.
Осы программаны ‘Misal_F1’ атымен дискіге жазып, оны орындауға жіберіңіз.
Ол үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі
а.әрбір мәнді бос орын (``)белгісі арқылы бөліп жазу
в.әрбір мәнді жаңа жолға жазу (баған бойынша).
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (``)
write(FileOut, SanMolcheri,``);
for i:= to SanMolcheri do
write(FileOut,San[i],``);
екінші жағдай үшін, writeln() процедурасын қолданамыз:
writeln(FileOut,SanMolcheri);
for i=1 to SanMolcheri do
writeln(FileOut, San[i] );
Тапсырма
1.Енгізілетін мәліметтер `mayFile1.in` атауымен берілген файлға, бір жолға және
2. Misal_F1 программасында берілген мәліметтер `mayFile2.in` файлына әрбір
3.Пернетақтадан 20 жол мәтін енгізіп, оны шығу файлына жазатын,
3. Мәтіндік файлға мәліметтер жазу.
Екі өлшемді массив.
Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды
Пернетақтадан, өлшемі 100х100, элементтері бүтін сан болатын, екі өлшемді
Бұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі
1.Пернетақтадан мәліметтерді енгізу
2.Оларды атауы `МayFile5.in` болатын, файлға жазу керек.
Бірінші кезеңді орындау үшін :
Пернетақтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу;
Массив өлшемдерін біле отырып параметрлі цикл операторын қолданып массив
Мәліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға болады. Ал
Массив элементтерін `МayFile5.in` файлына жазу процедурасының қандай болатындығын
procedure exi;
var
FileOut: text;
begin
{нақтылы файлмен айнымалы арасындағы байланыс}
assing (FileOut,`mayFile.in`);
{файлды жазуға дайындау}
rewrite(FileOut);
{массив өлшемдерiн жазу және курсорды жаңа жолға көшiру}
writeln(FileOut, JolSany,``, BaganSany);
for i=1 to JolSany do
begin
{массив элементтерiн бос орын арқылы жолға жазу}
for j=1 to BaganSany do
write(FileOut,San[i,j],``);
{j-циклiн аяақтаған соң, курсорды жаңа жолға көшiру}
writeln(Fileout);
end;
{файлды жабу}
close(FileOut);
end;
Негiзгi программа мәтiнiнiң өзгерiсiз қалатындығын айтпаса да болады. Осы
КурсордыExi процедурасын сипаттайтын жолдың басына қойыңыз;
Негiзгi менюдi Debug iшкi менюiн ашыңыз;
Add brekpoint… әрекетiн тандаңыз;
Enter пернесiн басыңыз.
Экранға Add brekpoint… (тоқтату нүктесiн қосу) сұхбат терезесi шығады
“Ok” батырмасын (сұхбат терезесіндегі) немесе “Enter” пернесін басыңыз.
Редактор терезесіндегі бұл жол басқа түспен бөлінеді. Енді Ctrl+F9
Бұл әрекеттер, программаның жеке бөліктерімен жұмыс жасағанда (жүріп өткенде)
Жеке модульдермен “жұмыс істеу” (программалау) мүмкіндігі.
Бір деңгейдегі “ойша” машиналардың тәуелсіздігі, программаның жекеленген бөліктерін,
Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.
Процедура мәтінімен жүріп өткенде құрама операторлардың жұмысына көңіл бөліңіз.
begin
{массив элементтерiн бос орын аркылы жолга жазу}
forj:=1 to BaganSany do
write (FileOut, San[i,j],``);
{j-цикл аякталган сон, курсорды жана жолга кошiру}
writeln(FileOut);
end;
Тоқтату нүктесін алып тастау үшін, келесі әрекеттерді орындаймыз:
Негізгі менюді бес\лсенділеңіз;
Негізгі менюден Debug ішкі менюін ашыңыз;
Breakpoints пернесін басыңыз.
Enter пернесін басыңыз.
Экранда программаға қойылған барлық тоқтату нүктелерінің тізімі көһрсетілген,
Қажетті элементті белгілеңіз;
“Delete” (сұхбат терезесінен) батырмасын немесе “D” (пернетақтадан) пернесін
Белгіленген тоқтату нүктесі тізімнен алынып тасталады. Егер сіз барлық
Тапсырма
Егер exi ішкі программасындағы write және writeln
Егер осы параметр тек writeln процедурасында көрсетілмеген болса
4. Мәтiндiк файлдан мәлiметтердi оқу
Өткен тақырыптарда сіздер, мәліметтерді мәтіндік файлға жазуды үйреніңіздер. Енді
Ол үшін `mayFile1/in` файлын пайдаланамыз. Мәліметтерді файлға жазу
var
Filelnt:text;
Одан кейін біз программада, “мәтіндік типті ” Fileln айнымалысы,
`mayFile1.in` атауымен берілген нақтылы файлмызды белгілейтіндігін көрсетуіміз керек. Ол
Енді файлдан мәліметтерді оқу үшін, берілген файлды ашуымыз керек.
`MayFile.in`файлындағы бірінші сан, файлдағы барлық сандардардың мөлшерін көрсетеді. Сондықтан,
Sanau айнымалысының мәнін оқытамыз,содан кейін параметрлі циклді қолданып, файлдағы
Енді, мәліметтерді фйалдан оқу процедурасы қандай болатындығын көрелік:
procedure lnit;
var
i:byte;
Fileln:text;
begin
assing(fileln,`mayFile1.in`);
reset(Fileln);
readln(Fileln,Sanau);
for i:=1 to Sanau do
read(Fileln,San[i]);
close(Fileln);
end;
Дәл осындай, егер өлшемдері белгілі болса, мәліметтерді екі өлшемді
procedure lnit;
var
i,j:byte;
{айнымалы атауын мәтiндiк файл түрiнде сипаттау}
Fileln :text;
begin
{айнымалыны нақтылы файл атымен байланыстыру}
assing(Fileln,`mayFile5.in`);
{файлды оқуға ашу}
reset(File);
{массив өлшемдерiн оқу, курсорды жаңа жолға көшiру}
readln(Fileln,JolSany,BaganSany);
{массив элементтерiн жол және баған бойынша оқу}
for:=1 to JolSany do
read(Fileln,San[i,j]);
{файлды жабу}
close(Fileln);
end;
Мынаған көңіл аударыңыз, массив элементтерін оқу кезінде, Readln() процедурасын
Тапсырма
Бір өлшемді массивті құрайтын `MayFile.in` файлынан мәліметтерді оқып, оларды
Екі өлшемді массивті құрайтын `MayFile5.in` файлынан мәліметтерді оқып,
MayFile6.pas` программасын пайдаланып, `MayFile2.in` файлынан мәліметерді оқыңыз. Алынған нәтижені
BP мәтіндік редакторын пайдаланып `MayFile1.in`, `MayFile2.in` және
procdure lnit;
var
{айнымалы атауын мәтiдiк файл түрiнде сипаттау}
Fileln:text;
Begin
{айнымалыны нақтылы файл атымен байланыстыру}
assing(fileln,`mayFile1.in`);
{файлды оғуға әзiрлеу}
reset(Fileln);
{санауыштын бастапқы мәнi}
Sanau:=0;
While Not EOF(Fileln) do
Begin
{санауыштын мәнiн бiрге арттыру}
inc(Sanau);
{массивтен элементтердi оқу}
read(Fileln,San[i]);
end;
{файлды жабу}
close(Fileln);
end.
Sanau-айнымалысы файлдағы жазбалардың санын анықтауға қызмет атқарады. Бұл айнымалыны
Var
San: arry[1…100] of integer;
Sanau: byte;
Жазбалар саны белгісіз файлдан мәліметтерді оқу жұмысының дұрыстығын
procedure exi;
var
i: byte;
begin
for i:=1 to Sanau do
begin
writeln(San[i]);
end;
end;
Егер сіз программа мәтінінің қалған бөлігін дұрыс құрастырыңыз, онда
Енді екі өлшемді массив мәліметтерін файлдан қалай оқуға болатындығын
procedure lnit;
var
i: byte;
{айнымалы атауын мәтiндiк файл түрiнде сипаттау}
Fileln:text;
Begin
{айнымалыны нақтылы файл атымен байланыстыру}
assing(fileln,`mayFile5.in`);
{файлды оқуға әзiрлеу}
reset(Fileln);
{жолда санауыштың бастапқы мәнi}
Sanau Jol:=0;
{массив элементтерiн жол бойынша оқу}
while Not EOF (Fileln)do
begin
{санауыштың мәнiн бiрге арттыру}
inc(Sanau Jol);
{бағанда санауыштың бастапқы мәнi}
SanauBagan:=0;
{массив элементтерiн жол бойынша оқу}
while Not EOF (Fileln)do
begin
{санауыштың мәнiн бiрге арттыру}
inc(Sanau Bagan);
{массив элементтерiн оқу}
read(Fileln, San[i,j]);
end;
{курсорды жаңа жолдың басына қою}
read(Fileln, San[i,j]);
end;
{файлды жабу}
close(Fileln);
end;
1.Бір өлшемді массивті құрайтын `MayFile.in` файлынан мәліметтерді оқып, оларды
6. Типті файл. Типті файлдарға мәліметті жазу
Келесі есепті қарастырып көрелік:
Мәтіндік файлға төрт таңбалы 50 сан жазу керек. Әрбір
Оны жуықтап бағалап көрелік. Әрбір таңба 1 байт орын
Бұл мәліметтерді кіші өлшемдегі файлдарда сақтауға бола ма?
Біздің программамыз мәліметтерді өңдей алуы үшін, біз оған алдын
Мұндай амалдарды мәліметтерді файлда сақтау кезінде қолдануға бола ма?
Типті файл – барлық элементтері бір типті мәліметтер болып
Әр элементті файлға жазу үшін, мәліметтердің типіне байланысты, міндетті
:file of
Біздің жағдайымызда:
FileOut:File of interger
Бұл жазу, берілген файлдағы мәліметтер – 32768-ден 32767 аралығында
Сонымен қатар, типті файлдармен жұмыс істегенде де, assign( )
Assign(,)
Біздің жағдайымызда:
Assign(FileOut ,’may.dat’)
Типті файлдармен жұмыс жасағанда мәтіндік файлдардағы секілді оларды жазуға
Rewrite() – процедурасын файлды жазуға ашады және
Типті файлдарға мәліметтерді жазу write() процедурасы арқылы жүзеге асырылады.
Типті файлдарға writeln() процедурасын қолдануға болмайды.
Типті файлдармен жұмыс аяқталған соң Close) – процедурасы
Енді тақырып басында берілген есепті шешуді жалғастырайық. 2.8.2 тақырыбындағы
Procedure Exi;
Var
FileOut :File
I
Begin
Assign (FileOut, ‘mayFile.in’);
Rewrite(FileOut);
For i:=1 to Sanau do
Write (FileOut, San[i]);
Close(f);
End;
Программаны толықтырып жазып Мisal_F8 атымен сақтаңыз. Программа орындалғаннан кейін
7. Типті файлдан мәліметтерді оқу
Титі файлдар тікелей қатынау файлдарына жатады, ол оның
Типті файлдардан мәліметтерді оқуға арналған негізгі проуедураларды қарастырамыз.
Типті файлдармен жұмыс жасар алдында, мәтіндік файлдардағыдай, файл атауын
Reset() – процедурасы файлдф оқуға ашады және көрсеткішті
Типті файлдан мәліметтерді оқу үшін read( ) процедурасын қолданады.
Бұл қиындықтан шығу үшін FileSize( ) функциясын қолдануға болады.
FileSize():longint – функциясы файлдағы компоненттер санын анықтайды. Яғни,
Procedure Init;
Var
FileInput : file of integer;
I, Sanau : integer;
San:array[1..100] of integer;
begin
assign(FileInput, ‘mayFile.in’);
reset (FileInput);
Sanau :=FileSize(FileInput);
For i:=1 to Sanau do
Read(FileInput, San [i]);
Close(FileInput)’
End;
Тақырыптың басында типті файлдар – тікелей қатынау файлдарына жататынын
Көрсеткішті қажетті мәліметті оқуға қою үшін, Seek() – процедурасын
Seek(, );
Сонымен қатар типті файлдарда нөмірлеу нөлден басталатыны есте ұстау
Seek(FileInput, 2);
немесе
Seek(FileInput, 3-1);
8. Әртүрлі базалық типтерді біріктіру. Жазба типі
Массив анықтамасында айтылғандай, массив дегеніміз құрылымына және қолдану тәсіліне
Мәліметтерді сақтау үшін оған екі массмвке орын бөлуімізге болатын
Файлдар туралы сұрақтарды талдағанда айтылғандай, файл элементтері тек бір
Мәліметтерді сақтай аламыз, бірақ болашақта бұл мәліметтермен жұмыс істеу
Бұл қиындықтан шығу үшін мәліметтердің құрама типі қолданады. Мәліметтердің
Жазба атауы Тізім
Өрістің атауы Фамилия Аты Туған жылы
Өрістер мәні Ахметов Алдияр 1980
Жазбаны өңдеу элементар объектә түрінде шығады. Мұндай объект типі
Жазбаларды сипаттау үшін, оның атауы, берілген өрісте сақталатын мәліметтердің
Type=Record
:;
:;
……………………
:;
end;
9. Сыртқы кітапханалар. Модульдер
Модульдер және олардың қолданылуы туралы айтпастан бұрын, Люйс Кэроллдың
Иә бұл өте жақсы ара ұясы, - деп Сері
Ал мен сізге тышқан қақпаны не үшін керек екенін
Қиын, бірақ болады, - деп Сері жауап берді. –
Білесің бе, - деп жалғастырды ол, үндемей тұрып, -
Ал ол не үшін? – деп қызықты Алиса.
Акулалар тістеп алмауы үшін, - деді Ақ Сері.
Бұны мен өзім ойлап таптым. Атқа шығуға көмектесші. Мен
Бәлішке арналған, - деді Алиса.
Онда оны өзімізбен бірге ала кетейік, - деп ұсынды
Бұл оңай болмады. Алиса дорбаны қатты ұстап тұрды, бірақ
Әрине онда оған орын аз, - деп ескерді Сері.
Ол дорбаны ер тоқымға іліп қойды, одан сәбіздің сабақтары,
Ақ Серінің аты және қаруы қалай көрінгенін елестете аласыздар
Borland Pascal сізге, үлкен саннан құралған тұрақтыларға, мәліметтер типіне,
Программалық модуль (Unit) тұрақтылар, мәліметтер типі, айнымалылар, процедуралар және
Модуль құрамына кіретін, процедуралар және функциялар, мәліметтер типін және
Модуль құрылымы программа құрылымына ұқсас. Модульдің ішіндегі барлық сипаттамалар
Модульдер программаға оның атын uses компилятор нұсқауында сипаттаудың
Uses Dos, Crt;
Аталған модульдердің құрамындағы барлық ішкі программалар, айнымалылар, типтер және
Ескерту. Модульдердің аттары оларды хабарлағанда үтірмен бөлінеді, ал соңғы
System модулі
System модулі барлық құралдар үшін, төменгі деңгейлі ішкі
System модулі Borland Pascal-дың барлық стандартты және құрылған процедураларынан
Ескерту. System модулі программаға автоматты қосылады (үнсіз келісім бойынша)
Стандартты емес модуьдерді пайдалану программаларды стандарттау мен құрылымдылығының деңгейін
Осындай алғы сөзден кейін, оқушының стандартты емес модульдерді пайдалануда
1. Модуль құрылымы
Модуль (unit) келесі бөліктерден тұрады:
аты немесе тақырыбы (мысалы, unit Мy_Мodyl);
интерфейс немесе хабарламалар бөлімі (Interfase);
орындаушы бөлігі немесе іске асыру бөлімі (Implementation);
Бұнда көрсетілген модуль бөлімдерінің тізбегі міндетті болып табылады, дегенмен
Модуль тақырыбы
Модуль тақырыбы unit түйінді сөзінен және бірегей атаудан (модуль
Модуль интерфейсі
Interface {бұл бөлімнің Uses-тен басқа барлық объектілері, мәліметтер сегментінде
[Uses … {Берілген модуль пайдаланатын, модульдердің ататры
[Cons … {Осы модуль қосқан программаға немесе басқа
[Var … {Программада көрінетін немесе басқа модульдерде
[Procedure…{Формальды параметрлер сипаттамасымен толық процедураның атауы келтіріледі}]
…{Осы моудьді іске қосқан программа немесе басқа модуьдерден қол
Модульдің орындаушы бөлігі
[Uses … {Берілген орындау бөлігінде пайдаланылған және интерфейс
[Lаbel… {Берілген модуль бөліміндегі, ішкі программаларда пайдаланылған таңбалар аттары
[Сonst… {Берілген модуль бөліміндегі ішкі программаларда пайдаланылған және интерфейс
[Var … {Берілген модуль бөліміндегі ішкі программаларда
[Procedure…{Interface-те сипатталған процедураның қысқаша немесе толық аты келтіріледі}]
{Процедура денесі}
[Function{Interface-те сипатталған функцияның қысқаша немесе толық аты келтіріледі}]
{Функция денесі}
Көріп отырғаныңыздай, бұл бөлімде интерфейсте сипатталған модульдің барлық ішкі
Инициализация бөлімі
Бұл бөлім, Assign процедурасының көмегімен сол немесе басқа файлдардың
Бөлім Веgin сөзімен басталып, одан кейін атқарушы операторлар тұрауы
Егер программада да және оның модулінде де айнымалы бір
программада көрінбейді. Оған программада қатынауды, осындай айнымалының алдына нүкте
Егер модуль айнымалыса мен ішкі программаның жергілкті айнымалысы
Сонымен қатар, квалификатор көмегімен ішкі программалардың ауқымды айнымалыларын Көрінетін
Егер сіздің программаңызға модуль қосылған, ал интерфейсте басқа модуль
Текстік режимде жұмыс
Экранда символдардың шығуы мен түзілуі монитордың видеоадаптерінің жұмысына байланысты
Көптеген программаларда текстік мәліметтерді Read, Readln, Write, Writeln процедураларының
Текстік режим кодтық кестенің барлық символдарын экранға шығару үшін
2.1. CRT модулінің процедуралары мен функциялары
Текстік режимді орнату үшін TEXTMODE процедурасы қолданылады. Программалау барысында
TEXTMODE(X); // Х – режим нөмірі
WRITE(LASTMODE); // экранға режим нөмірін шығару
Текстік режим нөмірлері мәндері монитор мен адаптерлер типтеріне байланысты
Экрандағы көріністі өшіріп тазалау үшін CLSSCR процедурасы қолданылады. Бұл
Курсор тұрған жерден бастап қатардың аяғына дейінгі символдарды өшіру
DELLINE процедурасы курсор тұрған қатардың барлығын өшіреді, нәтижесінде кейінгі
INSLINE процедурасы курсор тұрған жерге бір бос қатар қояды,
Экранда курсорды керекті жерге апарып қою үшін GOTOXY процедурасы
GOTOXY(10,15);
// курсорды X=10, Y=15 позициясына апарып қояды.
Курсордың тұрған жерін анықтау үшін WHERE функциясы қолданылады, жазылуы:
Write(WHEREX, WHEREY);
// экранға курсор тұрған жердің координаттарының мәндері шығады
Сондай-ақ текстік режимде клавиатураның жұмысын басқаратын KEYPRESSED және READKEY
KEYPRESSED – егер клавиатураның кез-келген клавишы басылса, онда функицяның
USES Crt;
Begin Clrscr;
Repeat
Writeln (‘TEXT’);
Until Keypressed; END.
READKEY – егер клавиатурадан берілген символ клавишы басылса, онда
USES Crt;
VAR N:Char;
Begin Clsscr; N:=‘g’;
Repeat
Writeln (‘TEXT’);
Until N=Readkey; END.
2.2. TEXTBACKGROUND және TEXTCOLOR процедуралары TEXTBACKGROUND процедурасы көмегімен текстің,
TEXTBACKGROUND(M);
// экранға М нөмерлі түспен шығарады
М – 0(қара)-ден 7(ақсұр)-ге дейін өзгереді.
TEXTCOLOR процедурасының көмегімен символдардың экранға шығатын түсі орнатылады, программада
TEXTCOLOR(M);
// тексті М нөмерлі түспен шығарады,
М – 0(қара)-ден 15(ақ)-ге дейін өзгереді.
0 – Қара(Black), 1 –
2 – Жасыл(Green), 3 – Көгілдір(Cyan),
4 – Қызыл(Red), 5 –
6 – Қоңыр(Brown), 7 – Ақсұр(LightGray),
8 – Қарасұр (DarkGray), 9 –
10 – Ашық жасыл(LightGreen), 11 – Ашық көгілдір(LightCyan),
12 – Ашық қызыл(LightRed), 13 – Ашық
14 – Сары(Yellow) 15 – Ақ(White)
128 – Символдарды жыпылықтату(Blink).
LOWVIDEO процедурасы экранға символдардың жарығын азайтып шығару режимін орнату
LOWVIDEO;
Writeln(‘TEXT’);
// TEXT сөзі экранға ең төмегі жарық режимінде шығады
NORMVIDEO процедурасы символдардың қалыпты жағдайдағы жарық режимінде шығу режимін
NORMVIDEO;
Writeln(‘TEXT’);
// TEXT сөзі экранға қалыпты жағдайдағы жарық режимінде шығады
HIGHVIDEO процедурасы экранға символдардың жарығын көбейтіп шығару режимін орнату
HIGHVIDEO;
Writeln(‘TEXT’);
// TEXT сөзі экранға ең жоғарғыжарық режимінде шығады
Текстік режимде кей жағдайларда бүкіл экран қажет болмай, бір
WINDOW(X1, Y1, X2, Y2);
Процедура орындалу нәтижесінде экранға диагоналының сол жақ жоғары төбесінің
USES Crt;
VAR X:String;
Begin Textbackground(6);
WINDOW(5, 8, 25, 21); Clrscr; Readln(X); END.
WINDOW процедурасы орындалысымен орнатылған терезе тазаланып, ол бүкіл экран
X:=Lo(WindMin)+1;
Х терезенің сол жақ ең жоғарғы нүктесінде мәнін меншіктейді.
Y:=Hi(WindMin)+1;
Y терезенің сол жақ ең жоғарғы нүктесіндегі мәнін меншіктейді.
X:=Lo(WindMax)+1;
Х терезенің оң жақ ең төменгі нүктесіндегі мәнін меншіктейді.
Y:=Hi(WindMax)+1;
Y терезенің оң жақ ең төменгі нүктесіндегі мәнін меншіктейді.
Мысалы төмендегі процедураның орындалу нәтижесінде екінші шығатын терезе параметрлері
USES Crt;
VAR X:String;
Begin Clrscr; Textbackground(2);
WINDOW(15,2,60,24);
Clrscr; Textbackground(5);
Window(Lo(WindMin)+1, Hi(WindMin)+1, (Lo(WindMax)+1)Div2, (Hi(WindMax)+1)Div2);
Clrscr;
Readln(X); END.
2.3. CRT модулінің құрамына дыбыс шығару процедуралары
CRT модулінің құрамына дыбыс шығару үшін қолданылатын келесі процедуралар
Белгілі бір жиілікпен дыбыс шығару үшін SOUND процедурасы қолданылады,
SOUND(X);
мұндағы: Х – жиілікті анықтайтын бүтін шама.
Нота дыбыстарының жиіліктері
Октавалар: Үлкен Кіші Бірінші Екінші
До 131 262 523
Ре 147 294 587
Ми 165 330 659
Фа 175 349 698
Соль 196 392 785
Ля 220 440 880
Си 247 494 988
Орнатылған дыбысты өшіру үшін параметрсіз NOSOUND процедурасы қолданылады, жазылуы:
NOSOUND;
Дыбыстық сигналды белгілі бір уақыт бойы ұстап тұру үшін
DELAY(T);
мұндағы: Т – программаның орындалуы тежеу уақыты (милисекунд)
Жоғарыда берілген үш процедураның көмегімен текстік режимде әртүрлі дыбыстық
PROGRAM Text3;
USES Crt;
CONST A:Array[1..7] Of Integer=(523, 587, 659, 785, 880, 988);
VAR K:Byte;
Begin Repeat
For K:=1 To 7 Do Begin
Sound(A[K]); Delay(800);
Nosound; Delay(300) End;
Until Keypressed;
END.
Сондай-ақ DELAY процедурасы циклдік операторлардың көмегімен текстік объектілерді жылжытуда
2.4. Текстік режимде программалау мысалдары
177. Экранның әртүрлі режимдерінде текст шығару.
PROGRAM Text1;
USES Crt;
BEGIN Clrscr; TextMode(Bw40);
Write(‘NN=’, LastMode);
Writeln(‘Rejim’); Readln;
TextMode(Co40);
Write(‘NN=’, LastMode);
Writeln(‘Rejim’); Readln;
TextMode(Bw80); Write(‘NN=’, LastMode);
Writeln(‘Rejim’); Readln;
TextMode(Co80); Write(‘NN=’, LastMode);
Writeln(‘Rejim’); Readln END.
178. Әртүрлі жарық режимдерінде текст шығару.
PROGRAM Text2;
USES Crt;
BEGIN Clrscr;
Writeln(‘Text’);
HighVideo; Writeln(‘Text’);
NormVideo; Writeln(‘Text’);
LowVideo; Writeln(‘Text’);
Readln END.
179. Тексті алдымен саты бойымен жазып шығарып, соңынан символдар
PROGRAM Text3;
USES Crt;
VAR K, X:Byte;
BEGIN Clrscr; X:=1;
For K:=1 To 25 Do Begin
Gotoxy(X,K);
Write(‘TEXT’); Inc(X,3); Delay(1000); End;
Readln; X:=6;
For K:=1 To 25 Do Begin
Gotoxy(X,K); ClrEol; Inc(X,3); Delay(1000); End;
Readln END.
180. Экранның фоны мен тексті әртүрлі етіп шығару.
PROGRAM Text4;
USES Crt;
VAR K:Integer;
BEGIN For K:=0 To 7 Do
Begin Textbackground(K); Clrscr;
Textcolor(K+1);
Gotoxy((Lo(WindMax)+1)Div2, (Hi(WindMax)+1)Div2);
Writeln(‘Text’);
Delay(30000) End;
Readln END.
181. Бір-бірінің ішінде орналасқан әртүрлі түсті 5 төртбұрыш шығару.
PROGRAM Text5;
USES Crt;
VAR K, X, Y:Integer;
BEGIN X:=0; Y:=0;
For K:=1 To 5 Do Begin
Textbaclground(K);
Window(K+X,K+Y, Lo(WindMax)+1-X, Hi(WindMax)+1-Y);
Clrscr; Inc(X,3); Inc(Y,1);
Delay(30000) End;
Readln END.
182. Төртбұрыштың ішіне текст жазып, дыбыспен жылжыту.
PROGRAM Text6;
USES Crt;
VAR K, X, Y:Integer;
BEGIN Textbackground(2); Clrscr;
X:=5; Y:=10;
Delay(1000); (*Үзіліс жасау*)
For K:=1 To 30 Do Begin
X:=X+2; Textbackground(9);
Window(X,Y,X+18,Y+7); (*терезе шығару*)
Clrscr; Textcolor(9);
Writeln(‘NO PROBLEM’); (*жазу шығару*)
Sound(1000); (*дыбысты қосу*)
Delay(2000); (*дыбысты ұстап тұру*)
Nosound; (*дыбысты өшіру*)
Textbackground(2);
Clrscr; (*экранды өшіру*)
Delay(10000); (*қозғалысты баяцлату*)
End; Readln;
Clrscr; END.
183. Тексті саты бойымен жазып шығарып жылжыту
PROGRAM Text7;
USES Crt;
VAR K, X, Y:Integer;
BEGIN Textbackground(2);
Clrscr; Delay(1000); (*Үзіліс жасау*)
For K:=1 To 10 Do Begin
Textcolor(K+2); (*1 жазу К+2=3-ші түспен шығады*)
Gotoxy(6*K,K*2); (*текстің шығатын позициясы*)
Writeln(‘Text’); (*жазу шығару*)
Delay(1500); End;
Readln; END.
184. Бинго ойыны программасын құру.
PROGRAM Text8;
USES Crt;
LABEL 1,2;
VAR K, I:Integer;
X:Array[1..15] Of Integer;
BEGIN Clrscr; Textbackground(0);
Gotoxy(18,3);
Writeln(‘Ойынды бастау үшін ENTER бас’);
Readln;
Randomize;
For K:=1 To 15 Do Begin
Textcolor(K); Gotoxy(15,K+5);
Write(K, ‘шардың нөмірі -’);
1:X[K]:=Random(90)+1; Delay(65000);
If K=1 Then Goto 2 Else
For I:=1 To K+1 Do If X[K]=X[I] Then Goto
2:Writeln(X[K]); End;
Gotoxy (20,25);
Writeln(‘Ойынның соңы, келесі жексенбіге дейін’);
Repeat Until Keypressed; END.
185. Сөтке бойы өртке қарсы сигнал беретін қондырғының іске
PROGRAM Text9;
USES Crt;
VAR T:Array[1..24*60] Of Integer; K:Integer;
PROCEDURE Signal;
Begin Writeln (‘Өрт қауіпі туды!!!’);
Repeat Sound(500); Delay(1000); Nosound;
Sound(700); Delay(1000); Nosound;
Delay(1000) Until Keypressed; End;
PROCEDURE Olshem;
Begin For K:=1 To 24*60 Do T[K]:=Random(100)+1;
For K:=1 To 24*60 Do If T[K]>70 Then Signal;
Readln END.
186. Жедел жәрдем машинасының сиренасының дыбысын шығару.
PROGRAM Text10;
USES Crt;
VAR K:Integer;
PROCEDURE Syrena;
Begin Repeat K:=500;
While K=500 Do Begin Sound(K); Delay(300); Nosound; K:=K-100
End;
Until Keypressed; End;
BEGIN Clrscr; Syrena; END.
187. Су тасқыны программасының алғашқы көрінісін шығару.
PROGRAM Text11;
USES Crt;
BEGIN 1:Textbackground(2); Clrscr; {сыртқы фон түсін орнату}
Textbackgorund(3); Window(5, 5, 76, 20); Clrscr; {ішкі терезе орнату}
Textcolor(5); {символдар түсін орнату}
Gotoxy(20,3); Writeln(‘Жұмыс режимін таңда:’);
Gotoxy(20,5); Writeln(‘1. Ендіру файлын жасау’);
Gotoxy(20,6); Writeln(‘2. Ендіру файлын көру’);
Gotoxy(20,7); Wrietln(‘3. Шығару файлын жасау’);
Gotoxy(20,8); Writeln(‘4. Шығару файлын көру’);
Gotoxy(20,9); Writeln(‘5. Программадан шығу’);
Gotoxy(1,12);
Write(‘Керек режимнің цифрын жазып ENTER клавишын бас:’);
Readln; END.
КӨМЕКШІ БАҒДАРЛАМАЛАР ЖӘНЕ ОЛАРДЫҢ ҚҰРЫЛЫМЫ.
Программалау барысында көптеген бір типті есептеулерге бірнеше бір-біріне ұқсас
Сонымен көмекші прграммалар деп программаның орындалу барысында бірнеше рет
Көмекші прграммалар стандартты және пайдаланушылар көмекші программалары болып екіге
SYSTEM модулінің процедуралары мен функциялары Turbo Pascal
SYSTEM модулінің өзге модульдердің процедуралары мен функцияларын қолдану үшін
PROGRAM KOMEK;
USES Graph, Crt;
// Graph, Crt модульдеріндегі стандартты процедуралар мен функцияларды
Стандартты функциялар мен процедуралар көбісі бұдан бұрынғы бөлімдерде программалар
Abs(X); //Х-тің абсолют шамасын есептеу функциясы
Sin(X); //Х-тің синусын есептеу функциясы
Random(X); //0-ден Х-ке дейін кездейсоқ сан шығару
Delay(X); //программаның орындалуын Х мс уақытқа тоқтау
Clrscr; //экранды тазалау процедурасы
Halt; // программаның орындалуын тоқтату прроцедурасы....т.б.
Падаланушылар көмекші программалары деп программалаушының өзі құрып, аты да
Көмекші программа құрылымы:
көмекші программа қызметші сөзі көмекші программа тақырыбы;
көмекші программада кездесетін идентификаторларды сипаттау бөлімдері;
көмекші программа денесі.
Көмекші программалардың жазылу тәртібі де негізгі программа сияқты
А) көмекші программа аты, параметрлері жазылатын тақырыбы;
Ә)тұрақтылар бөлімі;
Б)типтер бөлімі;
В)айнымалылар бөлімі;
Г)операторлардан тұратын прграмма денесі.
Көмекші программаның аты идентификатормен белгіленеді. программала бірнеше процедура немесе
Көмекші программа өздігінен орындалмайды, оның орындалуы үшін негізгі программада
Көмекші программалардың орындалу саны шақыру нүктелерінің санына байланысты болады.
Негізгі программадан деректер қабылдау және көмекші программадан өңделіп жаңарған
Нақты және формальды параметрлердің типі, саны, реттілігі сәйкес болуы
Процедуралар.
Процедура деп белгілі бір идендификатормен аталып, сол атпен программаның
Процедураның құрылымы:
(тақырыбы:)
PROCEDURE аты (формальды параметрлер типтері);
Сипаттамалар бөлімдері; (бұл бөлімдер болмауы да мүмкін)
BEGIN Операторлар; (процедура денесі)
END;
Программада процедураны пайдалану үшін процедураның атын нақты параметрлермен бірге
PROCEDURE SUMMA (N,M,X:INTEGER);
Онда процедуранв програмада мынадай жолмен шақыруға болады.
Summa (19,A,50);
Жақшадағы 19 Ф 50-нақты параметрлер болып табылады. Нәтижеснде процедурадағы
N=19, M=A, X=50.
Процедура шақыру процесінде формальды параметрлердің мәндері нақты параметрлердің мәнін
Процедураның параметрлері мәндік және айнымалы болып екіге өлінеді. Мәндік
Мысалы:
PROCEDURE Misal (A,B:Integer; VAR X,Y: Longint);
Var S: Integer;
Begin S:=A+5*B;
X:Sqr(S); Y:Sqr(X); END;
Бұл процедураны программалық текстте төмендегідей жазып шақыруға болады:
Misal (10,5,K,l);
Проограмма орындалу барысында Misal (10,5,K,l) шақыру идендификаторын оқып, басқаруды
1.процедураның А, В, Х, Ү формальды параметрлері (10,5,K,l) нақьы
А=10, В=5, Х=K, Ү=I,;
2.процедура денесіндегі операторлар орындалады;
S=10+5*5=35, X=35*35=1225,
Y=1225*1225=1500625;
3.VAR қызметші сөзінен кейінгі жазылған формальды Х және Ү
К=X=1225, I=Y=1500625
4. әрі қарай программаның есептеулерінде К және І айнымалылары
Процедура құру мысалдары.
Қатеттері бойынша үшбұрыштың ауданы мен
гипотенузасын табу процедурасын құру.
Дұрыс құралған процедура мысалдары:
А)
PROGRAM Proced 1;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
BEGIN Readln (A,B);
(негізгі программадан Ushbur процедурасын шақыру:)
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2); Writeln (‘aud=’, S:4:2);
Readln End.
Ә)
PROGRAM Proced 2;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T:Real, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Б)
PROGRAM Proced 3;
VAR A, B, C, S: Real;
PROCEDURE Ushbur;
Begin
S:=A*B/2; C:=Sqrt(SQRT(A)+SQRT(B)); END;
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Дұрыс құралмаған процедура мысалдары:
А)
PROGRAM Proced 4;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);
Begin T:=M*N/2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
(бұл процедура S пен С –ға жаңа мән қайтармайды)
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Ә)
PROGRAM Proced 5;
VAR A, B, C, S: Real;
PROCEDURE Ushbur(A,B:Real; Var S:Real, C: Real);
Begin S:=A*B/2
C:=Sqrt(SQRT(A)+SQRT(B)); END;
(бұл процедура S-кежаңа мәе қайтарады, ал С –ға
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Б)
PROGRAM Proced 6;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (S,C:Real; Var A, B: Real);
Begin
S:=A*B/2
C:=Sqrt (Sqr (A)+Sqr(B));END;
(бұл бұрышта параметрлер реттеліп жазылмаған)
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.
Екі санның үлкенін табатын процедура.
PROGRAM Maxsan;
Var A,B, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім
Begin If K>I Then S:=K
Else S:=I; End; (екі санды салыстырып
BEGIN Write(‘2 сан енгіз:’); Readln(A,B); (негізгі программа)
Maxim(A,B,Max); Writeln(‘Max=’,Max:4:1); Readln End.
Екі санның үлкенін табатын процедураны қолданып,
берілген үш және төрт санның үлкенін табу программасы.
PROGRAM Maxsan2;
Var A,B,С,D, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім
Begin If K>I Then S:=K Else S:=I; End;
(екі санды салыстырып үлкенді салыстыру)
BEGIN Write(‘4 сан енгіз:’); Readln(A,B,С,D,); (негізгі программа)
Maxim(A,B,Max);
(процедураның орындалуы нәтижесінде Мах А және В Сандарының үлкенін
Maxim(Мах,С,Max);
(процедураның орындалуы нәтижесінде Мах А,В,С Сандарының үлкенін меншіктейді)
Writeln(‘A,B,C сандарының:’,Max:4:1);
Maxim(Мах,D,Max);
(процедураның орындалуы нәтижесінде Мах А,В,С,D Сандарының үлкенін меншіктейді)
Writeln(‘A,B,C,D сандарының:’,Max:4:1);
Readln End.
N-нен М-ге дейінгі бүтін сандарының қосындысын
табу проедурасы.
PROGRAM Proc7;
Var N,M,K: Integer; S:Longint;
PROCEDURE Sum (N, M:Integer; VAR X:Longint); (сандардың енгізу
Begin X:=0; For K:= N To M Do X:=X+K;
BEGIN Readln (N,M);
Sum (N,M,S);
Writeln(‘SUM=’,S);
Readln END.
Бүтін Х санның бүтін Ү дәрежесін табу
процедурасын құру.
PROGRAM Proc7;
Var X,Y: Integer; S:Longint;
PROCEDURE Inp (VAR A,B:Integer); (сандардың енгізу проуедурасы)
Begin Write(санды енгіз:); Readln (A);
Write (‘дәрежесін енгіз:’); Readln (B) End;
PROCEDURE Dar (A,B: Integer; VAR S: Longint);
VAR K: Byte;
Begin S:=1;
For K:=1 To B Do S:=S*A; End;
PROCEDURE Out (S:Longint); (нәтиже шығару процедурасы)
Begin Writeln (X,’ санның ‘, Y’, дәрежесі=’,S) End;
BEGIN Inp (X,Y); Dar
Readln End.
N санның цифрларының санын шығару процедурасы
PROGRAM Proc8;
Var N:Longint;
PROCEDURE San; (Sаn проуедурасы)
Var K:Integer;
Begin K:=0
Repeat
K:=K+1; N:= N Div 10; Until N=0;
Writeln(‘N санының цифрларының саны=’,K) End;
Begin Readl (N); San;
Readln END. (негізгі программа)
N санының цифрларының жұп-тақтығын
анытайтын процедурасын құру.
PROGRAM Proc9;
Var N: Integer; K,I:Longint;
PROCEDURE San (I:Longint); (san проуедурасы)
Begin K:=0;
Repeat K:=K+1;
I:=I Div 10; Until I=0; End;
PROCEDURE Dar (I: Integer; VAR S: Longint); (dar
VAR J: Ineger; (онның І дәрежесін есептеу)
Begin P:=1;
For J:=1 To I Do P:=P*10; End;
PROCEDURE Jup (N:Longint); (Jup процедурасы)
Var X,D:Longint;
Begin (санның цифрларының жұп-тақтығын анықтайтын цикл)
For I:=1 To K do Begin
Dar (K-I,D); (D идендифткаторы Dar поцедурасының орындалу нәтижесінде
X:=N Div D; (Х идендификаторы І=1 болғанда санның
Writeln (I’, цифр =’,x);
N;=N Mod D; ( келесі циклге қалатын санның шамасы)
If X Mod 2=0 ( цифрлардың жұп-тақтығын салыстыру)
Then Write(‘бұл цифр жұп’)
Else Write (‘бұл цифр тақ’);
BEGIN Readl (N); San (N); Jup (N); (негізгі программа)
Readln End.
Массив элементтерін ендіру, шығару процедурасын құру мысалдары.
А) массив элементтерінің қосындысын мен көбейтіндісін табу:
PROGRAM Massiv 1;
CONST N=5;
Type Mas =Array[1…N] Of Integer;
VAR A,B:Mas; S,P,K: Integer;
PROCEDURE Inp (N:Integer; Var X: Mas);
Begin For K:=1 To N Do Read (X[K]); End;
PROCEDURE Out (N: Integer; VAR X: Mas; VAR S,P:Integer);
BEGIN S:=0; P:=1;
For K:=1 To N Do Begin S:=S+X[K];
P:=P*X[K] End End;
BEGIN Inp (N,A); Out (N,A,S,P); (негізгі программа)
Writeln (‘қосындысы=’,S); Writeln (‘Көбейтінді’,P);
Inp (N,B); Out (N,B,S,P); (‘қосындысы=’,S);
Writeln (‘Көбейтінді’,P);
Readln END.
ә) массив элементтерінің қосындысын мен көбейтіндісін табу процедурасын параметрсіз
PROGRAM Massiv 2;
CONST N=5;
VAR X,A,B:Array; [1…N] Of Integer; S,P,K: Integer;
PROCEDURE Inp
Begin For K:=1 To N Do Read (X[K]); Writeln
PROCEDURE Out
BEGIN S:=0; P:=1; For K:=1 To N
Begin S:=S+X[K]; P:=P*X[K] End End;
BEGIN Inp Out; (негізгі программа)
Writeln (‘қосындысы=’,S); Writeln (‘Көбейтінді’,P);
Inp; Out;
Writeln (‘қосындысы=’,S); (‘Көбейтінді’,P);
Readln END
Б) массив элементерінің қосындысын табу программасын парольмен ашылатындай етіп
PROGRAM Proce 11;
LABEL 1;
VAR N:Longint; K:Integer;
PROCEDURE Parol;
Begin Writeln(‘пароль дұрыс емес қайтадан еңгізіңіз:’);
Readln(N); If K=3 Then Halt; K:=K+1; End;
PROCEDURE Mas;
CONST A: Array[1..5] Of Integer=(15,150,-80,50,60);
VAR S:Integer;
Begin S:=0;
For K:=1 To 5 Do S:=S+A[K];
Writeln (‘S=’, S) End;
BEGIN K:=1; (негізгі программа)
Writeln (‘пароль еңгізіңіз:’); Readln (N);
1:IF N < > 123456 Then Begin Parol; Goto
Mas; Readln END.
Футбол чемпионатына қатысқан 12 команданың алған ұпайлары бойынша, алғагқы
PROGRAM Futboll;
USES Crt;
TYPE M=Array[1..12] Of Integer; N=Array [1..12] Of String;
VAR K,I,P:Integer; A:N; B:M;
PROCEDURE Engiz ( VAR B:M; VAR A:N);
Begin For K:=1 To 12 Do Begin Writeln (K’,команданың
Readln (A[K]); Writeln (‘Оның алған ұпайы:’); Readln (B[K]) End;
End;
PROCEDURE Kemu (B:M; VAR A:N);
VAR Max,F:Integer; M:String;
BEGIN For K:=1 To 11 Do Begin
Max:=B[12]; F:=12; M:=A[12];
For I:=12 Downto K Do
If B[I] > Max Then Begin F:=I; Max:= B[I];
B[F]:= B[K]; B[K]:=Max; A[F]:=A=[K]; A[K]:=M; End;
Writeln; End;
PROCEDURE Autsaider(B:M; VAR A:N);
Begin Kemu (B,A); Writeln;
Writeln (‘Артта қалған командалар:’);
For K:=8 To 12 Do Write (A[K]:7); End;
PROCEDURE Juldeger (B:M; A:N);
Begin Writeln;
Writeln (‘Жүлдегер командалар:’);
For K:1 To 3 Do Write(A[K]:7); End;
BEGIN Clsrcr; Engiz(B,A); (негізгі программа)
Autsaider (B,A); Juldeger (B,A); Readln; END
Космос кораблі Күн системасындағы тоғыз планетаның бірінен шығып барлық
PROGRAM Planeta;
USES Crt;
VAR M:Set Of 1..10;
A:Array[1..10] Of Integer;
B:Array[1..10,1..10] Of Integer;
N,X,C,D,K,I,Y,Min: Integer;
PROCEDURE Inp;
Begin For K:=1 To N Do
For I:= To K Do Begin Read(B[I,K]);
B[I,K]:= B[I,K]; End; End;
PROCEDURE Out;
Begin For K:=1 To N Do Begin
For I:= To K Do Begin Read(B[I,K]:4);
Write; End; End;
Begin Clrscr; (негізгі программа)
Write(‘Матрица өлшемін егіз:’); Readln (N);
Inp; Out;
Write (‘Қай планетадан шықты, номерін енгіз:’); Readln (X);
If=[X]; A[1]:=X; C:=x; D:=0;
For I:=1 To N-1 Do Begin Min:=Maxint; Y:=1;
For K:=1 To N Do
If (B[X,K]) 0 Then Dar:=Exp(Ln(A)*B)
Else Begin Writeln (‘ter’); Delay (30000); Halt End End;
Begin Readln (X,Y); (негізгі программа)
Writeln (‘dar=’,Dar(x,y):4:1); Readln END.
М-нен N –ге дейінгі бүтін сандар қосындысын
табу функциясы
PROGRAM Func 3;
VAR A,B,P:Real;
FUNCTION Sum (M,N:Integer):Integer; (дәрежесін табу функция)
VAR S,K:Integer;
Begin S:=; For K:=M To N Do S:=S+K;
Sum:=S; End;
Begin Readln (A,B);
P:=Sum(A,B); Writeln (‘P=’,P); Readln END.
N санының факториал табу функцясы.
PROGRAM Func 2;
VAR N,P,K:Integer; S:Longint;
FUNCTION Fact(M:Integer):Longint;
Begin P:=1 For K:=2 To M Do P:=P*K;
Fact:=P; End;
BEGIN Repeat Readln(N); Unit N>0 (оң сан ендіру циклі)
S:=Fact(N);
Writeln (‘Fac=,’S); Readl End.
Екі санның және төрт санның кішісін
табу функциялары
PROGRAM Minsan;
VAR A,B,C,D:Real;
FUNCTION Min (K,I:Real):Real;
Begin If K>I Then Min:=K Else Min:=I; End;
FUNCTION Min4(A,B,C,D:Real): Real;
Begin Min4:=Min (D, Min(C, Min(A,B))); End;
Begin Writeln (‘төрт сан енгіз’); Readln (A,B,C,D);
Writeln (‘Төрт санның кішісі=,’ Min4(A,B,C,D):4:2);
Readln End.
Кез-келген жолдық қатардың латын алфавитінің кіші әріптерін бас әріпке
PROGRAM Kat3;
Var X:String; K:Byte;
FUNCTIION Basarip(A:String):String;
Begin For K:=1 To Length (A) Do A[K]:=Upcase(A[K]);
Basarip:=A End;
BEGIN Readln (X); X:=Basarip(X);
Writeln (‘Қатардың жаңа мәні X=’,X);
Readln End.
Х жолдың қатарында кездесетін «а» символдарын санап, оларды «b»
PROGRAM Kat4;
Var X:String; K,N:Byte;
FUNCTIION Austyr(A:String):String;
Begin N:=0; For K:=1 To Length (A) Do If
Begin N:=N+1; A[K]:=’b’ End; Austyr:=A End;
BEGIN Readln (X); X:=Austyr(X);
Writeln (‘Қатардың жаңа мәні X=’,X’, қатарда ‘, N, “a”
Readln End.
2-ден 1000-ға дейін сол жағынан да, оң жағынан да
PROGRAM Func5;
VAR X,N:Integer;
Function Jai(Y:Integer):String;
VAR D,I:Integer; T:String;
Begin T:=’Жай сан емес’; D:=0;
For I:=2 To Y Y-1 Do If Y Mod
If D =0 Then T:=’Жай’; Jai:=T End;
FUNCTION Kery (Y:Integer):Integer;
VAR S:Integer;
Begin If Y10) And (Y=100) And (Y>1000)
Then S:=Y Mod 10*100+Y Mod100 Div 10*10+Y Div 100;
Kery:=S; End;
Begin Writeln (‘Бұндай сандар:’); N:=2;
For X:=4 To 99 Do Begin
If Jai(X)=’Жай’ Then If Jai (Kery(X))=’Жай’
Then Begin Writeln(X); N:=N+1 End; End;
Writeln (N, ‘Жай сан бар’);
Readl End.
Тік төртбұрышты квадраттарға бөлу программасының
функциясы.
PROGRAM Kvadrat;
VAR A,B,D,K,X,Y:Integer;
Function Min(A,B:Integer):Integer;
Begin If A Max Then Begin F:=I; Max:=R[I]; M:=T[I] End;
R[F]:=R[K]; R[K]:=Max; T[K]; T[K]:=M End;
PRCEDURE Reiting;
Begin (командалардың рейтингін R массивіне меншіктеу)
For K:=1 To 5 Do R[K]:=Sumball (K,T,A,B,C); Retteu; End;
Procedure Out;
Begin Writeln (‘европаның ең мықты клубы:’,T[1]); (нәтижелер шығару) Writeln
For K:=1 To 5 Do While (T[K]:7, R[K]:4); End;
BEGIN Inp (T,A,B,C); Reiting Out; (негізгі программа)
Readln END.
Қайталану командалары.
Программаның белгілі бір бөлігінің орындалуын
1.FOR – параметрлі циклдік оператор;
2.WHILE – алдын – ала циклдің орындал шартын тексеретін
3.REPEAT – соңында циклдің тоқтау шартын тексеретін оператор.
Циклдік операторлар структуралық операторлар тобына жатады, өйткені құрамына бірнеше
а) Қайталанатын операторлар ( циклдің денесі ) бір –
ә) Циклге тек қана басынан ( тақырыбы ) ғана
б) Циклің айнымалылары алдын – ала циклге дейін анықталуы
в) Цикл денесінде көшу операторын ( Goto ) қолданып
д) Цикл ұйымдастырғанда, міндетті түрде циклден шығу шарты орындалатынын
Цикл денесінің әр қайталауында цикл айнымалыларының мәндері де өзгеріп,
FOR циклдік операторы ( Үшін циклі ).
Параметрлі циклдік операторлар цикл денесінің қайталануы арқылы алдын –
FOR K : = M TO N DO
ЦИКЛ ДЕНЕСІ ;
МҰНДАҒЫ : К – циклдік айнымалы ( есептеуіш ),
М – К айнымалысының алғашқы мәні.
N – К айнымалының соңғы мәні.
Цикл денесі жай немесе құрама оператордан тұруы мүмкін, егер
FOR циклінің блок – схемасы:
Цикл денесінің орындалуы FOR операторындағы К параметрінің мәні соңғы
FOR := N DOWNTO M
Цикл денесі;
Мұндағы: К – циклдік айнымалы ( есептеуіш ), әр
М – к айнымалысының алғашқы мәні. Т – К
Енді FOR операторымен циклдер құру мысалдарын қарастырайық:
Алты бұрыштың қабырғалары берілген. Үшбұрыштардың ауданын программаның бір орындалуында
а)Егер есепті шығару үшін сызықты программа құратын болсақ, онда
PROGRAM AUDAN;
VAR A, B, C: Byte; P, S:REAL;
BEGIN Write ( 1,’үшбұрыштың қабырғаларын енгіз:’ );Readln ( A,
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 1 ,
Write ( 2 , ’ үшбұрыштың қабырғаларын енгіз: ’);
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 2 ,
Write ( 3 , ’ үшбұрыштың қабырғаларын енгіз: ’);
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 23, ’
Write ( 4, ’ үшбұрыштың қабырғаларын енгіз: ’);
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 4 ,
Write ( 5 , ’ үшбұрыштың қабырғаларын енгіз: ’);
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 4 ,
Write ( 6 , ’ үшбұрыштың қабырғаларын енгіз: ’);
P:= ( A+ B + C )/2; S
Writeln ( ‘ аудан S ’ , 5 ,
Readln End.
ә) Программаны тармақталу командалары көмегімен төмендегідей етіп құруға болады:
PROGRAM AUDAN 1;
LABEL 1;
VAR A, B, C: Byte; P, S: Real; K
BEGIN K:=1;
1: Write ( k, ‘үшбұрыштың қабырғаларын енгіз: ’);
P:=( A + B + C ) / 2
S:=SQRT ( P*(P – A)*(P – B)*(P – C)
Writeln ( ‘ аудан S ’ , K ,
K:= K + 1;
If K < = 6 Then Goto 1;
Readln End.
б)Енді дәл осы программаны FOR операторымен құратын болсақ, онда
PROGRAM AUDAN 1;
VAR A, B, C : Byte;
P, S : Real; K : Byte;
BEGIN
For K:= 1 To 6 Do Begin
Write ( K,’үшбұрыштың қабырғаларын енгіз’ );
Readln ( A, B, C );
P:= ( A + B + C ) /
S:=SQRT (P*(P-A)*(P-B )*(P-C));
Writeln ( ‘ аудан S’ , K, ’=’ ,
Readln END.
Бұл программаны ТО операторының орнына DOWNTO операторын қолданып төмендегідей
PROGRAM AUDAN 1;
VAR A, B, C : Byte;
P, S : Real; K : Byte;
BEGIN
For K:=6 Downto 1 Do Begin
Write (K,’ ’үшбұрыштың қабырғаларын енгіз’ );
Readln ( A, B, C );
P:= ( A + B + C ) /
S:=SQRT (P*(P-A)*(P-B )*(P-C));
Writeln ( ‘ аудан S’ , K, ’=’ ,
Readln END.
Экранға Х – тің барлық 1 – ден 100
Программада Х идентификаторын өрнектің айнымалысы әрі циклдің параметрі ретінде
PRAGRAM Tendeu 1;
VAR X:Byte; Y:Longint;
BEGIN
For X:= 1 To 100 Do
Begin
Y:= SQR ( X ) + 50*X-30;
Writeln (‘Y=’, Y );
End;
Readln END.
Программаның блок – схемасы:
Дәл жоғарыдағы өрнектің Х – тің 1 – 100
PRAGRAM Tendeu 3;
VAR X:Byte;
Y:=integer;
BEGIN
For X:=1 To 100 Do
If X Mod 2=0 Then
Begin
Y:= SQR ( X )+*X-30;
Writeln (‘Y =’, Y);
End;
Readln END.
Программаның блок – схемасы:
немесе бұл программа төмендегідей қысқаша етіп құруға да болады:
PRAGRAM Tendeu 4;
VAR X:Byte;
BEGIN
For X:=1 To 100 Do
Begin
X:=X+1;
Writeln (‘Y=’,SQR (X)+50*X-30);
End;
Readln END.
Программаның блок – схемасы:
WHILI … DO ЦИКЛДІК ОПЕРАТОРЫ ( ӘЗІРШЕ ЦИКЛІ ).
Әдетте, WHILE операторы қайталану саны алдын – ала белгісіз
WHILE шарт Do
цикл денесі;
Әзірше WHILE операторында жазылған шарт орындалып тұрса, цикл денесінің
WHILE циклінің блок – схемасы:
FOR операторымен құрған үшбұрыштың қабырғалары бойынша ауданын табу және
WHILE операторымен де төмендегі мысалдардағыдай етіп құруға болады.
Герон формуласымен үшбұрыштардың ауданын табу программасы.
PROGRAM Audan1;
VAR A, B, C, K: Byte;
P, S :Real;
BEGIN K :=1;
Write K 5;
Writeln (‘аудандар қосындысы P=’,P:4:1); {нәтиже шығару}
Readln END.
1 – ден N – ге дейінгі жұп сандардың
PROGRAM Sankvadrad;
VAR X, K, N; integer;
Y:Longing;
S:Real;
BEGIN Readln(N); {N санын енгізу}
{циклдің басы}
REPEAT
{санның жұп – тақтығын}
{анықтайтын шарт}
if XMod 2= 0
Then Y:=Y+Sqr(x)
Elser S:=S*Sqrt(x);
Lnc(x) {х –
Unit X>N; {циклдің тоқтау шарты}
Writeln (‘Жұп сандардың квадраттарының қосындысы=’,Y);
Writeln (‘Тақ сандардың түбірлерінің көбейтіндісі=’,S:4:1);
Readln End.
Цикл ішіндегі циклдер.
Turbo Pascal программаларында бір циклдің ішінде екінші цикл, оның
1. Алдымен сыртқы циклдің параметрінің алғашқы мәні бойынша сыртқы
2. Ішкі циклдің параиетрлерінің барлық мәндері бойынша ішкі циклдің
3. Сыртқы циклдің параметрінің келесі мәні бойынша сыртқы циклдің
Цикл ішіндегі циклдер ұйымдастыру мысалдары.
Көбейту таблицасын шығару программасын құру.
Программаны FOR операторын ғана қолданып құру:
PROGRAM Kob;
VAR K, I, S:Byte;
BEGIN {сыртқы цикл тақырыбы}
For K:=2To 9 Do Begin
{ішкі цикл}
For I:=1 To 9 Do
Begin S:= K*I;
Write(K,’X’, I,’=’, S, ’ ’ ) End;
Writeln
End;
Readln END.
ҚОРЫТЫНДЫ
Сонымен қорыта келіп Файл дегеніміз – мәліметтер сақтауға арналған
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл
Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды
Енді файлдан мәліметтерді оқу үшін, берілген файлды ашуымыз керек.
Егер мәтіндік файлдардағы жазбалар саны белгілі болса, онда мәліметтерді
Біздің программамыз мәліметтерді өңдей алуы үшін, біз оған алдын
Сонымен қатар, типті файлдармен жұмыс істегенде де, assign( )
Типті файлдарға мәліметтерді жазу write() процедурасы арқылы жүзеге асырылады.
Титі файлдар тікелей қатынау файлдарына жатады, ол оның
Типті файлдан мәліметтерді оқу үшін read( ) процедурасын қолданады.
Массив анықтамасында айтылғандай, массив дегеніміз құрылымына және қолдану тәсіліне
Сонымен біз осы курстық жұмыста файлдардың түрлерін толық қарастырдым.
Сонымен қорыта келіп біз жолдық қатарлардан тұратын идентификаторлар String
Идентификаторларға жолдық айнымалылардың мәнін беру үшін меншіктеу операторы қолданылады.
Жолдық қатарларды салыстыру амалы екі жолдық қатарды салыстыру үшін
Қорыта келе біз жолдық қатарлар көмегімен көмегімен көпетеген есептер,
Сонымен қорыта келіп біз жолдық қатарлардан тұратын идентификаторлар String
Идентификаторларға жолдық айнымалылардың мәнін беру үшін меншіктеу операторы қолданылады.
Жолдық қатарларды салыстыру амалы екі жолдық қатарды салыстыру үшін
Жолдық қатардың ішіндегі тұрған бір фрагменттің орнын анықтау
Қорыта келе біз жолдық қатарлар көмегімен көмегімен көпетеген есептер,
Курстық жобалау жұмысын жазу барысында менімен бағдарлама жазылған болатын.
Қолданылған әдебиеттер
Блашкин И.И., Буров А.А. Новые возможности Turbo Pascal 6.0.
СПб.: Изд-во
Васильев П.П. Турбо Паскаль − мой друг: М.: Компьютер,
ЮНИТИ, 1995.-96 б.
Зуев Е.А. Язык программирования Turbo Pascal 6.0-М.: Унитех,
1992.-298 б.
Мизрохи. Turbo Pascal и объектно-ориентированное
программирование.-М.: Финансы и статистика, 1992.-185 б.
Справочник по процедурам и функциям Borland Pascal with Objects
7.0 – Киев: «Диалектика», 1993.-272 б.
6. Фаронов В.В. Программирование на персональных ЭВМ в среде
Фаронов В.В. Турбо Паскаль (в 3-х книгах). Кн.1. Основы
Паскаля.-М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992.-304 б.
Фаронов В.В. Турбо Паскаль (в 3-х книгах). Кн.3. Практика
программирования. Часть 1.-М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1993.-256 б.
Фаронов В.В. Турбо Паскаль (в 3-х книгах). Кн.3. Практика
программирования. Часть 2.-М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1993.-304 б.
Федоров А. Особенности программирования на Borland Pascal.
Киев: Диалектика, 1994.-144 б.
Хершель Р. Турбо Паскаль /2-е изд., перераб.-Вологда: МП «МИК»,
1991.-342 б.
Культин. Программирование в Turbo Pascal 7.0 и Delphi /2-е
перераб. и доп.-СПб.: БХВ-Петербург, 2002.-151 б.
Климов Ю.С., Касаткин А.И., Мороз С.М. Программирование в
среде Turbo Pascal 6.0.-Минск: Высшая школа, 1992.-158 б.
Перминов О.Н. Программирование в языке Паскаль.-М.: Радио
связь, 1988.-244 б.
Эрбо Х.Э., Шгольц О. Введение в программирование на языке
Паскаль.-М.: Мир, 1989.-299 б.
Вирт Н.Алгоритмы и структуры данных. М.; Мир, 1982.
Бондарев В.М., Рублинейкий В.И., Качко Е.Г: Основы
программирование. Харьков. Фолио. 1997.
18. Дал У., ДейскстраЭ., Хоор К. Структурное прогрммированием М;
19. Даулеткулов А.Б. Олимпиады по информатике. Алматы. ИНТ. 2004
20. Марченко А.И., Марченко Л.А. Программирование в среде Turbo
21. Федоренко Ю. Алгоритмы и программы на Turbo Pascal.
Балапанов Е.Қ. Бөрібаев Б.Б. Дәулетқұлов А.Б. Жаңа
информациялық технологиялар: информатикадан 30 сабақ. Алматы, ЖТИ, 2004.
23.Алексеев Е. Р. "Турбо Паскаль 7.0" Идеалный учебный курс.
Численные методы. Москва - 2006.
24. Немнюгин С. А. "Turbo Pascal" учебник. Санк-Петербург -
25.Б.Бөрібаев. Б.Нақысбеков Т. Мадиярова. "Инфарматика және есептеуіш техника негіздері".
87
begin
оператор
end
Белгіні сипаттау
;
Тұрақтыны сипаттау
Типтерді анықтау
Айнымалыларды сипаттау
Процедураны сипаттау
Функцияларды сипаттау
1
Басы
2
n
3
I=1, n
4
Mas [i]
5
i = i
6
FIO, Group, Year, otsenki
7
Sr_bal = (vt+history+stat+math)/4
8
S_vt=0
S_history=0
S_stat=0
S_math=0
9
s_vt=s_vt + mas [i].vt
s_history=s_ history+ mas [i]. history
s_stat=s_stat+ mas [i]. stat
s_math=s_math+ mas [i]. math
10
s_vt=s_vt/n
s_history=s_ history/n
s_stat=s_stat/n
s_math=s_math
11
i=1, n-1
12
j=1, n-1
13
Mas[j]. name>mas
[j+1]. name
14
a=mas[j]
mas[j]=mas[j+1]
mas[j+1]=a
15
FIO, Group, Year, otsenki Sr_bal
16
name, group, god, vt, history, stat, math, sr.bal
17
sr.bal: s_vt, s_history, s_stat, s_math
18
Соңы
Цикл денесі
K :=m, n, 1
БАСЫ
Цикл денесінің орындалуын Х – тің мәні
Y := SQR ( X ) + 50 *
Нәтиже шығару
Соңы
Басы
Цикл денесінің орындалуын Х-тің мәні 1-ден 100-ге
X mod 2 = 0
Y:=sqr (x)+50*x-30;
Нәтиже шығару
Соңы
Басы
Цикл денесінің орындалуын Х – тің мәні
X:=X+1;
Sqr(x)+50*x-30
Нәтиже шығару
Соңы
Цикл
денесі
Шарт
Басы
Х:=1;
Х


Скачать


zharar.kz