Бақылау сұрақтары
Қайталану алгоритмдерін программалауды ұйымдастыру қалай жүргізіледі?
"Цикл-әзір" және "Цикл-дейін" құрылымдарының айырмашылығын блок схема арқылы түсіндіріңіз.
Алдын ала шартты тексеру операторы.
Repeat операторының жалпы жазылуы және орындалуы.
Циклдің денесі дегеніміз не?
Күрделі циклдер туралы айтыңыз.
Ішкі программалар: процедуралар және функциялар
Мақсаты: Параметрлі процедура. Формальды және нақты параметрлер. Процедураны шақыру. Параметрлердің берілуі. Функциялар шақыру.
Әдістемелік нұсқаулар
Ішкі программалар негізгі программалардың ішіндегі кіретін және шығатын орындары бар тұйықталған бөлігі болып табылады. Паскаль тілінде ішкі программаның екі түрі бар: процедура(procedure) және функция(function). Процедура мен функция сипатау бөлігінде бөлігінде айнымалылар бөлігінен кейін хабарланады.
Процедуралар. Кез келген процедура құрамында бірнеше операторлар және олардың бірнеше нәтижелері болуы мүмкін. Процедура құрылымы мынадай болады:
Procedure атауы (формальды параметрлер);
<сипаттау бөлігі>
begin
<операторлар бөлігі>
end;
Процедураға мысал:
Procedure expres (a,b,c:real; var x,y:real);
Var z:real;
Begin
Z:=a+b+c;
X:=sqr(z);
Y:=sqrt(z);
End;
Координата басынан L қашықтықта орналасқан шеңбердің ұзындығын (C) және дөңгелектің ауданын (S) анықтаңыз. Шеңбердің центрінің координаталары x,y радиусы r.
Program M23;
Var r, x,y,c,s,l:real;
Procedure krug(r,x,y:real; var c,s,l:real);
Const pi=3.14;
Begin
C:=2*pi*r;
S:=pi*sqr(r);
L:=sqrt(sqr(x)+sqr(y));
End;
Begin
Writeln(‘r,x,y-терді енгізіңіз’);
Read(r,x,y);
Krug(r,x,y,c,s,l);
Writeln(‘шеңбердің ұзындығы=’,c:6:2);
Writeln(‘дөңгелектің ауданы=’,s:6:2);
Writeln(‘центрден қашықтығы=’,l:6:2);
End.
Функциялар. Функцияның бір ерекшелігі оның орындалуы барысында бір ғана нәтиже шығады, алайда кіру параметрлері бірнешеу болуы мүмкін нәтиже функция атауымен белгіленіп негізгі программаға беріледі. Функция құрылымы төмендегідей болады.
Function атауы (формальды параметрлер); тип;
<сипаттау бөлігі>
begin
<операторлар бөлігі>
end;
Функция, іс жүзіндегі параметрлері көрсетіліп өзінің атауымен шақырылады. Функцияны тікелей өрнек ішінде шақыруға болады. Функцияны шақыру кезінде типі көрсетілмейді.
Функцияға мысал:
F=m!-k! F-фокториалдар айырмасын табу керек (n!=1 2 ... n) фоктариалды есептеуді функция түрінде құрамыз.
Program M22;
Var f,m,k:integer
Function fact (n:integer):integer;
Var p,i:integer;
Begin
P:=1;
For i:=p*i;
Fact:=p;
End;
Begin
Write(‘m,k-ның мәндерін енгізіңіз‘);
Read(m,k);
F:=fact(m)-fact(k);
Writeln(‘f=’, f:5)
End.
Бақылау сұрақтары
Ішкі программа дегеніміз не?
Ішкі программаны процедура түрінде жазғандағы ерекшеліктерін көрсетіңіз?
Формальды және іс жүзіндегі параметрлер айырмашылғы?
Процедураны параметрсіз құруға бола ма?
Глобальдық және локальдық мәндер дегенді қалай түсінесіз?
Тапсырмалар:
Төмендегі мәліметтері бойынша берілген үшбұрыштың сүйір бұрышының мәнін анықтаңыз:
Катеттерінің ұзындығы бойынша;
Катеті мен гипотенузасының ұзындығы бойынша.
Емдеу мақсатындағы емделушінің салмағы 30 күнде 96 килограмнан 60 килограмға түсті. Күнделікті салмағының азайуы дене салмағына пропорционал екндігі анықталады. Емделушінің ашығуының 2-ші, 3-ші, ... ,29-шы күндергі салмағын анықтау керек.
a және b нақты сандары берілген. Анықтау керек:
u=min(a,b), v=min(ab, a+b), min(u+v2, 3.14)
Нақты сан у берілген. Есептеу керек:
мұндағы
Рекурсивті ішкі программалар
Символдық және жолдық мәндер
Жолды өңдеу алгоитмі. Жолдан ішкі жолды іздеу алгоритмі. Жолдармен жұмыс істеуге арналған функциялар мен процедуралар.
Мақсаты: Turbo Pascal программалау тілінде символдық информацияларды өндеуге арналған программаларды құруды үйрену
Әдістемелік нұсқаулар
Порограмма құру барысында символдардан тұратын тізбектерді өңдеу қажеттілігі жиі туындайды. Программадағы өрнектерде жолдық қатарлар апострофқа алынып жазылады. Turbo Pascal программалау тілі жолдық қатарларға 255 байтқа дейінгі орын беріледі. Жолдық қатарлар STRING, ал символдар CHAR типі бойынша сипатталады. Мысалы:
Type
St=string[25];
Var
S:St;
Ch:char;
Tx:string;
Жолдық және символдық типтерді өңдеуге арналған процедуралар мен функциялар төменде көрсетілген.
CONCAT (tl [,t2, ... tn]) - tl, t2, ... tn жолдық деректерді біріктіруге арналған функция.
COPY (st, x, n) - st жолындағы n символды х нөмірлі орыннан бастап көшіру функциясы.
DELETE (st, x, n) - st жолындағы n символды х нөмірлі орыннан бастап өшіру процедурасы.
INSERT (stl,st2,n) - st жолына n нөмірлі орыннан бастап st2 жолын орналастыру процедурасы.
LENGTH (st) - st жолының ұзындығын анықтау функциясы.
POS (prim,st) - st жолынан берілген prim фрагментін іздестіру функциясы.
STR (n,st) - берілген n бүтін немесе нақты типтегі айнымалыны st жолдық типіне айналдыру процедурасы.
VAL (st, n, code) - st жолдық типіндегі деректі бүтін немесе нақты типке ауыстырып n айнымалысына меншіктейді, ал осы түрлендіру процедурасының дұрыс орындалғандығы туралы ақпарат code беріледі.
UPCASE (st) - қатарлық әріпті бас әріпке ауыстыру функциясы.
Мысалы: Берілген сөйлемнен барлық t әріпінен кейін тұрған һ әрпін алып тастап, өнделген сөйлемді қайта шығаратын Turbo Pascal тілінде программа құру.
PROGRAM OVR;
Label m1;
Type ft = string[125];
var
Str:ft;
l,n:integer;
Begin
Writeln('берілген сөйлемді енгізіңіз...');
Read(str);
m1:if pos('th',str)<>0 then
begin
delete(str,pos(‘th’,str)+1,1);
goto m1;
end;
writeln (str);
End.
Тапсырмалар:
Ағылшын тілінде берілген сөйлемдегі барлық қайталанатын сөздерді алып тастап қайта шығаратын программа құру.
Берілген сөйлемдегі бас әріптер кіші әріптерге ауыстырып қайта шығаратын программа құру.
Берілген сөйлемнен пернелер тақтасы көмегімен енгізілген сөздің неше рет қайталанатынын анықтайтын программа құру.
Берілген сөйлемді кері рет бойынша қайта жазатын программа құру.
Берілген сөйлемде бүтін сандар неше рет қайталанатынын анықтайтын программа құру.
Берілген сөйлемде қанша дауысты дыбыс бар екенін анықтайтын программа құру.
Берілген сөйлемде қанша дауыссыз дыбыс бар екенін анықтайтын программа құру.
Берілген сөйлемдегі барлық тыныс белгілерін алып тастайтын программа құру.
Берілген сөйлемде "а" әрпінен қанша сөз басталатынын анықтайтын программа құру.
Берілген сөйлемде қанша бос орын бар екенін анықтайтын программа құру.
Берілген сөйлемде "а" әрпінен басталып "а" әрпімен аяқталатын сөздер санын қанша екенін анықтайтын программа құру.
Бақылау сұрақтары:
Жолдық типті сипаттаудың қандай жолдары бар?
Жолдық типтің көлемі қандай?
Жолдық типтерді өңдеуге арналған процедуралар қандай?
Жолдық типтерді өңдеуге арналған функциялар қандай?
Символдарды қалай сипаттауға болады?
Бүтін сандарды жолдық типке ауыстыруға болама?
Нақты типті жолдық типке қалай ауыстыруға болады?
Пернелер тақтасынан басылған перне арнайы басқару пернесі екендігін қалай анықтауға болады?
Массивтер
Бір өлшемді массивтер. Массивті толтыру алгоритмі.
Жұмыс мақсаты: Программалауда бір өлшемді миссивтермен жұмыс істеу принциптерімен танысу және қолдануды меңгеру.
Әдістемелік нұсқау
Бір типтес берілгендер жиынынан құралып, барлық элементтеріне бір ортақ атау берілген сипаттаманы массив деп атаймыз.
Программалауда бір өлшемді массивтерді қолдану арқылы программаны ықшамдауға болады.
Мысалы: Шарт бойынша он бес белгісіз айнымалыны енгізу қажет болсын. Берілген шартты екі түрлі жолмен орындайық, яғни бірінші массивті қолданбай және екінші жолы массивті қолдану арқылы:
1 жолы:
readln(al,a2,a35a4,a5,a6,a7,a8,a9,al0,all,al2,al3,al4,al5);
2 жолы:
for i:=l to 15 do readln(a[i]);
Көрсетілген мысалдың орындалуының бірінші жолында айнымалыларды енгізу үшін он бес түрлі атау қолданылды. Ал егер шарт бойынша жүз немесе одан да көп айнымалы енгізілу талап етілсе онда, олардың барлығын тізбектеп жазу көп уақыт және орын алады, сондай ақ құрылымдық жағынан бұл тиімсіз болып табылады.
Мысалды орындаудын екінші жолында массивті қолдану арқылы жинақы түрде он бес элементті енгізу түрі көрсетілді. Егер шарт бойынша жүз немесе одан да көп айнымалылар енгізу талап етілсе, онда бұл операция тез жүзеге асырылатыны анық.
Көрсетілген мысалды қолдана отырып А[15] массивіндегі бүтін сандар арасынан ен үлкенін анықтайтын программа құру:
PROGRAM PRIM_MIN;
USES CRT;
VAR A:ARRAY[1..15] OF INTEGER;
I, MIN:INTEGER;
BEGIN
CLRSCR;
WRITELN(‘массив элементтерін енгізіңіз’);
FOR I:=1 TO 15 DO
BEGIN
WRITE('A[‘,I,’]=');
READLN(A[I]); END;
MIN:=A[1];
FOR I:=1 TO 15 DO
IF MIN>A[J] THEN MIN:=A[I];
WRITELN('MIN=', MIN);
END.
Берілген программада VAR бөлімінде А[15] массиві сипатталған: A:ARRAY [1..15] OF INTEGER;
- бұл сипаттама A массивінің он бес бүтін сандардан құралатынын білдіреді.
Программада массив элементтерін енгізу үшін цикл операторы қолданылған:
FOR I:=l TO 15 DO - І-ді 1-ден 15-ке дейін өзгертіп орындау;
BEGIN - цикл басы;
WRITE('A[',I,']='); - "A[l]=" тіркесін экранға бейнелеу;
READLN(A[I]); - массив элементтерін енгізу;
END; - цикл соңы.
Шарт бойынша ең кіші элементті анықтау үшін MIN айнымалысына массивтін бірінші элементі меншіктейміз МIN:=А[1]. Ал цикл денесінде орналасқан шартты тексеру операторы арқылы ең кіші элемент анықталады:
FOR I:=1 TO 15 DO
IF MIN
Табылған элементті экранға шығару:
WRITELN('MIN=');
[Ctrl]+[F9] пернелерін басу аркылы берілген программа қорытындысы шығарылады.
Тапсырмалар:
Берілген массивтін теріс элементтерінің қосындысын есептейтін программа құру. Массив элементтері бүтін сандар. Массив А[20]
Берілген массивтің оң элементтерінің қосындысын есептейтін программа құру. Массив элементтері бүтін сандар. Массив: В[15]
Берілген массивтің теріс элементтерінің көбейтіндісін есептейтін программа құру. Массив элементтері нақты сандар. Массив: А[12]
Берілген массивтін оң элементтерінің көбейтіндісін есептейтін программа құру. Массив элементтері нақты сандар. Масив: С[25]
Массив элементтерінің арифметикалық ортасын есептейтін программа қүру. Массив элементтері нақты сандар. Массив: D[17]
Массив элементтерінің теріс сандарының ең үлкенін анықтайтын программа құру. Массив элементтері нақты сандар. Е[11]
Массив элементтерінің оң сандарының ең үлкенін анықтайтын программа күру. Массив элементтері нақты сандар. Массив: А[9]
Массив элементтерінің теріс сандарының ең кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Х[13]
Массив элементтерінің тақ сандарының ең кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Массив: В[17]
Массив элементтерінің жұп сандарының ең кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Массив: D[25]
Бақылау сұрақтары:
Массив дегеніміз не?
Turbo Pascal программалау тілінде массивті қалай ұйымдастыруға болады?
Массивтің қандай түрлері бар?
Программалауда массивтерді қолдану арқылы қандай жетістіктерге қол жеткізуге болады?
Массивтерді сипаттаудың қандай ерекшеліктері бар?
Массив типіне қандай типтерді қолдануға болады?
Массив элементтерін қалай енгізуге болады?
Массив элементтерін қалай баспаға шығаруға болады?
Массивке тұрақтыларды қолдануға бола ма?
Массивтің мәндерінің өзгеруін қадам бойынша қалай тексеруге болады?
Меңзер орналасқан қатарға дейін программаны орындауға жіберу функционалдық пернесі қандай?
Массивті сұрыптау
Екі өлшемді массивтер. Қайталау опеарторыныц көмегімен екі өлшемді массивтерді программалау. Ең үлкенін (ең кішісін) іздеу алгоритмі. Ішкі және сыртқы массивті сұрыптау алгоритмі: таңдау арқылы сұрыптау, орын ауыстыру арқылы т.б.
Жұмыс мақсаты: Программалауда екі өлшемді миссивтермен жұмыс істеу принциптерімен танысу және қолдануды меңгеру.
Әдістемелік нұсқаулар
Кестелік негізде құрылған есептердің немесе шарттардың шешімі үшін массивтерді қолдану тиімді болып табылады.
Екі өлшемді массивтерді программалау арқылы кесте түрінде берілетін сандық есептеулері біршама ықшамдалады.
Мысал ретінде екі өлшемді (А[5,5]) массивтің бас диоганалындағы элементтер қосындысын анықтайтын программаны қарастырамыз:
PROGRAM PRIM_DG;
USES CRT;
VAR
A:ARRAY[1..5,1..5] OF INTEGER;
I,J,SUM:INTEGER;
BEGIN
CLRSCR;
WRITELN('массив элементтерін еңгізіңіз');
FOR l:=1 TO 5 DO
FOR J:=1 TO 5 DO
BEGIN
WRITE(‘A[‘,I,J,’]=’);
READLN(‘A[‘,I,J,’]=’);
END;
SUM:=0;
FOR I:=1 TO 5 DO
FOR J:=1 TO 5 DO
IF I=J THEN SUM:=SUM+A[I,J];
WRITELN('Қосындысы-',SUM);
END.
Берілген программада VAR бөлімінде А[5,5] екі өлшемді массиві сипатталған: A:ARRAY оf[1..5,1..5] OF INTEGER; - бұл сипаттама A массиві бүтін сандардан құралатынын білдіреді.
Программада массив элементтерін енгізу үшін екі цикл операторы қолданылған:
FOR I:=l TO 5 DO -І-ді 1-ден 5-ке дейін өзгертіп орындау;
FOR J:=l TO 5 DO - J-ді 1-ден 5-ке дейін өзгертіп орындау;
BEGIN - цикл басы;
WRITE('A[',I,J,']='); - 'A[I,J]=" тіркесін экранга бейнелеу;
READLN(A[I,J]); -массив элементтерін енгізу;
END; - цикл соңы.
Шарт бойынша негізгі диоганал элементтерін анықтау үшін I=J болса SUM:=SUM+A[I,J] қайталау операторы бойынша меншіктейміз:
FOR I:=1 TO 5 DO
FORJ:=1 TO 5 DO
IF I=J THEN SUM:=SUM+A[I,J];
Қорытынды жауапты экранға шығару: WRITELN('Қосынды- ',SUM);
[Ctrl]+[F9] пернелерін басу арқылы берілген программа қорытындысы шығарылады.
Тапсырмалар:
Берілген массивтің қатар бойынша теріс элементтерінің қосындысын есептеп жауабын В[10] массивіне меншіктейтін программа құру. Массив элементтері бүтін сандар. Массив А[10,10]
Берілген массивтің қатар бойынша оң элементтерінің қосындысын есептеп жауабын А[5] массивіне меншіктейтін программа құру. Массив элементтері нақты сандар. Массив: В[5,5]
Берілген массивтің бағана бойынша теріс элементтерінің көбейтіндісін есептейтін программа құру. Массив элементтері нақты сандар. Массив: А[12,6]
Берілген массивтен негізгі диоганалдың оң элементтерінің көбейтіндісін есептейтін программа құру. Массив элементтері бүтін сандар. Массив: С[5,5]
Массивтің негізгі диоганал элементтерінің арифметикалық ортасын есептейтін программа құру. Массив элементтері нақты сандар. Массив: D[7,7]
Массив элементтерінің теріс сандарының ең үлкенін анықтайтын программа кұру. Массив элементтері нақты сандар. Массив: Е[5,6]
Массив элементтерінің оң сандарының ең үлкенін анықтайтын программа құру. Массив элементтері нақты сандар. Массив: А[8,4]
Массив элементтерінің теріс сандарының ең кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Х[3,6]
Массив элементтерінің тақ сандарының ен кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Массив: В[4,4]
Массив элементтерінің жұп сандарының ең кішісін анықтайтын программа құру. Массив элементтері бүтін сандар. Массив: D[3,4]
Бақылау сұрақтары:
Екі өлшемді массив қандай жағдайда қолданылады?
Turbo Pascal программалау тілінде екі өлшемді массивті қалай ұйымдастыруға болады?
Екі өлшемді массивтерді сипаттаудың қандай ерекшеліктері бар?
Екі өлшемді массив типіне қандай типтерді қолдануға болады?
Екі өлшемді массив элементтерің қалай енгізуге болады?
Мәндердің күрделі типі
Мақсаты: Жиындарды қолданғанда, жиындармен орындалатын амалдар. Мәндердің аралас типі – жазулар. Біріктіру операторы.
Әдістемелік нұсқаулар:
Математикада бірнеше элементтердің жиынтығын жиын деп айтамыз.
Паскаль тілінде бірдей типтегі шектелген, реттелмеген әртүрлі элементтер жиынтығын жиын деп атаймыз.
Жиын var айнымалылар бөлігінде немесе type титер бөлігінде сипатталады. Жиынды айнымалылыар бөлігінде сипаттау:
Var <жиын атауы>: set of <негізгі ти>;
Мысалы, Var
жыл : set of 1800..2000;
с : : set of char;
Жиынды тип бөлігін пайдаланып сипаттау:
Type <тип атауы>=set of<негізгі тип>;
Var <жиын атауы>:<тип атауы>;
Жиындарға төмендегі операциялар қолданылады:
+ жиындардың бірігуі;
* жиындардың қилысуы;
- жиындардың айырмасы;
=,<> жиындарды салыстыру.
Мыс: 1-ден 20-дейінгі бүтін сандар жиынының ішінен 6-ға қалдықсыз бөлінетін сандар жиынын және 2-ге немесе 3-ке қалдықсыз бөлінетін сандар жиынын бөліп алыңыз.
Program M1;
Const N=20;
Var n2,n3,n6,n23: set of integer;
K: integer;
Begin
N2:[];
N3:[];
For k:=1 to n do
Begin
If k mod 2=0 then n2:=n2+[k];
If k mod 3=0 then n3:=n3+[k];
End;
n6:=n2*n3;
n23:=n2+n3;
writeln(‘6-ға бөлінетін сандар:’);
For k:=1 to n do
If k in n6 then write(k:3);
Writeln;
Writeln(‘2-ге немесе 3-ке бөлінетін сандар’);
For k:=1 to n do
If k in n23 then write(k:3);
End;
Бақылау сұрақтары:
Жиын деп нені ұғамыз?
Математикада жиынға қандай операциялар қолданылады?
Паскаль тілінде жиынға қолданылатын операциялар қалай жазылады?
Жиын қалай беріледі?
Бос жиын дегенісміз не, ол қалай беріледі?
Массив элементтерін шығаруды қалай ұйымдастыруға болады?
Әдістемелік нұсқаулар:
Мәндер топтарымен жұмыс істеу үшін Паскаль тілінде жазу ұғымы енгізілген. Жазу дегеніміз – әр түрлі типтегі мәндердің шектеулі сандарының сәйкестігі.
Жазуда басқа мәндер сияқты сипаттау бөлігінде хабарланып операторлар бөлігінде қолданылды. Хабарлауды var айнымалылар бөлігінде немесе type типтер бөлігінде ұйымдастыруға болады.
Var айнымалылар бөлігінде хабарлануы
Var <жазу атауы>:record
<1-элемент атауы>:<тип>;
<2-элемент атауы>:<тип>;
..............
:<тип>;
end;
Мұндағы record(жазу) қызметші сөзі.
Type тип бөлігін қолданғандағы сипаттама түрі:
type <тип атауы>=record
<1-элемент атауы>:<тип>;
<2-элемент атауы>:<тип>;
..............
:<тип>;
end;
var <жазу атауы>:<тип атауы>;
Мысал: 4а+7в+3а+2л+1р-5к-2в көпмүшелігі берілген А-айнымалысының ұқсас мүшелерін тауып оның коэфициенттерінің қосындысын табыңыз.
Program M2;
Type
Elem=record
Coef:integer;
Bukwa:char;
Var
m1:elem;
m1:elem;
sum: integer;
begin
sum:=0;
readln;
writeln(‘көпмүшелікті енгізіңіз’);
while not eoln do
begin
read(m1.coef. m1.bukwa);
if m1.bukwa=’a’
then sum:=sum+m1/coef
end;
m2.coef:=sum;
m2.bukwa:=’A’;
writeln(‘ұқсас көпмүше’, m2.coef:3,m2.bukwa);
end.
Бақылау сұрақтары.
паскаль тілінде жазу деп нені ұғамыз?
Жазуға мысал келтіріңіз?
Жазу қалай хабарланады?
Жазу элементтеріне қандай операциялар қолдануға болады?
Жазу мәліметтерін енгізу және шығаруды қалай ұйымдастырамыз?
Жазуда бір типтегі қандай оперциялар қолдануға болады?
Біріктіру операторы қандай қызмет атқарады?
Тапсырмалар:
A жиынның элементтерінің базалық типі Х, олар аралық типпен берілген. Осы жиынның элементтер санын анықтайтын функция жазу керек.
Базалық типі Х болатын А және В жиындары берілген.
А+В
А-В
А*В
жиындарының элементтер санын анықтайтын функция құрыңыз.
Берілген жолда дауысты және дауыссыз дыбыстардың қайсысының саны көп екендігін анықтайтын программа құрыңыз.
Әр жолаушының жүгіндегі заттарының саны және жалпы салмағы белгілі. Жолаушылардың жүктері туралы мәліметтерді массивке жазып, сол массивтің көмегімен төмендегі есептеді шығарыңыз.
Әр затының орта салмағы мен заттардың жалпы орта салмағы арасындағы айырмашылық 0,3 килограмнан аспайтын жүкті табу керек.
Жүктері екі заттан артық жолаушыларды және заттарының саны заттардың жалпы орта санынан артық болатын жолаушыларды табыңыз.
Салмағы 30 кг аспайтын бір заты бар жолаушыны анықтаңыз.
Оптом бір пар қолғап 10т 50 тиын тұрады. Бір бумасында(12 пар қолғап). Ал бір коропкасы 9т (12 бума бар).
n-пар қолғап сатып алу үшін n1, n2, n3 сандарын табу керек.
n1, n2, n3-коропка, бумалар, штук.
Мәтіндік файлдармен жұмыс
Мақсаты: Pascal программалау тілінде файлдарды құруды, файлдарға деректерді жазуды, оқуды және оларды өңдеуді үйрену. Мәтіндік файлдарды өңдеуге арналған процедуралар мен функциялар. Берілгендерді енгізу және шығару.
Текстік файлдарға қолданылатын функциялар мен процедуралар
APPEND - дискіде орналасқан файлды іске қосуға ашатын процедура.
EoLn - қатар соңын анықтайтын функция (end-of-line).
FLUSH - шығару файл буферін тазарту процедурасы.
READ - файлдан деректерді оқу процедурасы.
READLN - процедурасы READ процедурасының қызметін орындап, бірақ курсорды келесі қатардың басына орналастырады.
SeekEof - файл соңын анықтайтын функция (end-of-file)
SeekEoln - қатар соңын анықтайтын функция (end-of-line).
SETTextBuf -текстік файлға енгізу-шығару буферін белгілеу процедурасы.
WRITE - текстік файлға бір немесе бірнеше мәндерді жазуға арналған процедура.
WRITELN процедурасы WRITE процедурасының қызметін қайталап, қатар соңы белгісін қояды.
Әдістемелік нұсқаулар
Физикалық дискіде орналасқан файлмен байланыс құру үшін ASSIGN процедурасы қолданылады.
Мысалы: ASSIGN (f,'C:\win_doc\ft.txf);
Берілген мысалда ASSIGN процедурасының көмегімен қатты дисктегі "win_doc" бумасындағы "ft.txt" файл атауымен “f” файлдық айнымалы байланыстырылды.
Ал RESET процедурасы арқылы файлды оқуға ашуға болады. Мысалы: RESET(f);
Келесі мысалда бес элементтен тұратын массивті файлға жазу жолы қарастырылған.
PROGRAM FILE_PRAK;
Uses crt;
Var
F : file of integer;
i, x : integer;
begin
clrscr;
assign(f,'c:\massiv.txt');
rewrite(f);
for i:=1 to 5 do
begin
read(x);
write(f.x);
end;
close(f);
end.
Тапсырмалар:
Текстік файлдан тек тырнақшаға алынып жазылған сөз тіркестерін экранға іріктеп шығаратын программа құру.
Текстік файлдан тек, сөйлемдегі сөздер саны бесеуден аспайтын сөйлемдерді, іріктеп экранға шығаратын программа құру.
Текстік файлдың сөйлемдерінде сандық мәндері кездеспейтін бөліктерін іріктеп экранға шығартын программа құру.
Файлдан тексті оқып, берілген сөйлемдердегі барлық бас әріптерді қатарлық әріптерге қайта ауыстырып экранға шығартын программа құру.
Текстік файлдан торт сөйлемді оқып, оны кері реті бойынша шығару программасын құру.
Файлдағы тексті оқып, сөйлемдерде пернетақта көмегімен енгізілген сөз кездессе, онда осы сөйлемді толық экранға шығаратын программа құру.
Файлдан тексті окып, экранға тек сандық деректері бар сөйлемдерді іріктеп шығару программасын құру.
Файлдан тексті оқып, тек үтір кездесетін сөйлемдерді экранға іріктеп шығаратын программа құру.
Файлдан тексті оқып, сұрақ белгісі және леп белгісі кездесетін сөйлемдерді іріктеп экранға шығаратын программа құру.
Файлдан тексті оқып, берілген текстегі тыныс белгісі ең көп кездесетін сөйлемді экранға шығаратын программа құру.
Файлдан тексті оқып, сөйлемдердегі ең ұзақ сөздерді тауып оларды іріктеп экранға шығаратын программа құру.
Файлдан тексті оқып, сөйлемдердегі ең қысқа сөздерді тауып, оларды іріктеп экранға шығаратын программа құру.
Бақылау сүрақтары:
Файл дегеніміз не?
Файлдардың қандай түрлері болады?
Типтелген файлдарды қалай ұйымдастыруға болады?
Типтелмеген файлдарды қалай ұйымдастыруға болады?
Текстік файлды қалай ашуға болады?
Типтелеген файлдар
Мақсаты: Типтелген және типтелмеген файлдарды өңдеу үшін қажетті процедуралар мен функциялар. Берілгендерді енгізу және шығару.
Әдістемелік нұсқаулар
Типтелмеген файлдарға қолданылатын функциялар мен процедуралар
BlockWrite - айнымалыдан файлға бір немесе бірнеше жазбаларды жазу процедурасы.
BlockRead - файлдан айнымалыға бір немесе бірнеше жазбаларды оқыту процедурасы.
Текстік файлдан басқа файлдарға файлдық айнымалылардың барлығына келесі процедуралар мен функцияларды қолдануға болады:
FileSize - ағымдағы файл көлемін береді.
FilePos - файлың ағымдағы позициясын береді.
Truncate - файл көлемін берілген файлдың позициясына дейін қысқартады.
Файлдарды өңдеу процедуралары
GetFatt - файл атрибуттарын беру процедурасы.
SetFatt - файл атрибуттарын орнату процедурасы. FindFirst - берілген бумадан жазба бойынша сэйкес келетін файл атауын іздеу процедурасы.
FindNext - берілген бумадан FindFirst процедурасы арқылы табылған файл атауынан кейінгі келесі сэйкес келетін файл атауын іздеу процедурасы.
Тапсырмалар:
Компоненттері нақты сандар болатын f файлы берілген.
f файлының компоненттерінің қосындысын;
f файлының компоненттерінің көбейтіндісін;
f файлының компоненттерінің квадраттарының қосындысын.
Мекеме қызметкерлерінің аты жөні f файлына мына ретпен жазылған: фамилиясы, аты, әкесінің аты. Осы мәліметтердің ретін өзгертіп g файлына жазыңыз.
Мекеме қызметкерлерінің аты жөнінен және телефон нөмірінен тұратын f файлы берілген. Қызметкердің аты жөні бойынша оның телефон нөмірін анықтаңыз.
Бақылау сұрақтары
Деректерді файлдарға қалай жазуға болады?
Типтелген және типтелмеген файлдардың айырмашылығы неде?
Файл соңын қалай анықтауға болады?
Файлды жабу процедурасы қандай?
Файлға деректерді қалай жазуға болады?
ӘДЕБИЕТТЕР Тізімі
Негізгі әдебиеттер
Вирт Н. Алгоритмы и структура данных. –М.:Мир, 1989
О.А.Меженный. Turbo Pascal. -M.:Издательский дом
«Вильямењ, 2001. -448 с.
А.М.Епанешников, В.А.Епанешников. Turbo Pascal
7.0 - М «Диалог-Мифињ, 2002.
Г.Рапаков, С.Ржеуцкая. Turbo Pascal для студентов и
школьников - Санкт-Петербург, 2002.
Эллиот Б. Коффман. Turbo Pascal - М*Санкт-
Петербург*Киев, 2002.
В. Шел ест. Программирование - Санкт-Петербург
"БХВ-Петербург", 2002.
О.П.Зеленяк. Практикум программирования на Turbo
Pascal - М*Санкт-Петербург*Киев, 2002.
С.А.Немнюгин. Turbo Pascal практикум - Санкт-
Петербург «Питерњ, 2001.
А.Н.Моргун. Решение задач средствами языка Turbo
Pascal 7.0 - Киев «ЮНИОРњ, 2002.
Фаронов В. В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. -М.: "Нолидж", 1997. -616с.
Форонов В. В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. -М.: "Нолидж", 1997. -432с.
Чернов Б. И. Программирование на алгоритмических языках. Бейсик, Фортран, Паскаль: Кн. Для внеклас. чтения учащихся 9-11 кл. сред. Шк. -М.: Просвещение, 1991.-192с.
Зуев Е.А. Язык программирования Turbo Pascal 6.0.-М.: Унитех, 1992.-298с.
Программное обеспечение микроЭВМ. В 11 кн. Кн.7. Программирование на языке ПАСКАЛЬ: Учебное пособие для ПТУ/В.Ф. Шаньгин, Л..М. Поддубная; Под. Ред. В.Ф. Шаньгина. -2-е изд., перераб.и доп. -М.: Высш.шк.,1991.-142с.
Пильщиков В.Н. Сборник упражнений по языку Паскаль: Учеб. Пособие для вузов. -М.: Наука. Гл. Ред. Физ.-мат. Лит., 1989.-160с.
Программно-методические материалы: Информатика 1-11 кл./ сост. Л.Е. Самовольнова. -М.: Дрофа, 1998.-96с.
Лапчик М.П. Вычисления. Алгоритмизация. Программирование: Пособие для учителья. -М.: Просвещение, 1988.-208с.
Абрамов С. А., Зима Е.В. Начала программирования на языке паскаль. -М.: Наука. Гл. Ред. Физ.-мат. Лит., 1987.-112с
Грогано П. Программирование на языке ПАСКАЛЬ. -М.: Мир, 1982.
Перминов О.Н. Язык программирования Паскаль. М.Радио и связь, 1986
Масанов Ж.Қ., Бельгибаев А.Б., Бижанова А.С., Мақұлов Қ.Қ. Turbo Pascal Алматы, 2004ж
Қосымша әдебиеттер
Вирт Н. Систематическое программирование. Введение. Моква.Мир, 1984
Алдашев С.А., Ахметов Н.Р. Информатика мен есептеуіш техника терминдерінің орысша-қазақша сөздігі.
Янсон А. Турбо - Пролог в сжатом изложении: Пер. с нем. -М.: Мир, 1991.-94с.
Аитов Ж:А., Мақамбаев М.Б. Паскаль тілінде программалау. Семей, 1998 ж.-128 б.
Форсайт Р. Паскал для всех Пер. с англ. Под ред. Ю.И.Топчева. Москва. Машиностроение, 1986.
Ж.К. Нұрбекова, А.З. Даутова, Т.К. Койбагарова. Орысша-қазақша түсіндірме сөздік. Павлодар, 2002, -44 б
В.А. Острейковский. Информатика. Учеб. Для вузов.-М. “Высшая школа”, 1999.-511 с.
Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. –М.: Мир, 1981.
Мейер Б.,Бодуэн К. Методы программирования. –М.: Мир, 1982
Достарыңызбен бөлісу: |