Мазмұны
Кіріспе
Паскаль тілінің негізгі түсініктері
1.1 Турбо паскаль тілінің операторлары
Негізгі бөлім
1.2 Циклдік құрылымды алгоритмді программалау ............4
1.3 Алғы шартты цикл операторы. While операторы ..........4
1.4 Келесі шарт бойынша циклді ұйымдастыру.
Repeat операторы...................................................................6
1.5 Параметрлі қайталану операторы. For операторы.........7
1.6 Күрделі циклдер....................................................................10
1.7 ЭЕМ-де есеп шығару кезеңдері.
Қадам бойынша орындау әдісі.............................................10
1.8 Мысал есептер........................................................................10
1.9 Қайталау (цикл)......................................................................17
Әдебиеттер тізімі...........................................................................20
Тақырып: Қайталау операторы
1.0 Паскаль тілінің негізгі түсініктері.
Алфавиті
Паскаль тілінде: латынның әріптері (Аа, ..., Zz) араб
-арифметикалық және салыстыру амалдары (+,-,*,/,>,,=,@);
-арифметикалық және логикалық функциялар (DIV,MOD, NOT,AND,OR,IN,SHL,SHR).
-әр түрлі тыныс белгілері:
{} немесе (**)-түсініктеме жазатын жақшалар;
[] – массив индекстерін және жиын элементтерін белгілеу;
() – айнымалы тізімін белгілеу;
‘ ‘ – апостроф; := - меншіктеу белгісі;
; - операторлар мен хабарларды ажырату;
: - айнымалыны бөліп көрсету;
= - айнымалының типін типтің сипаттамасынан немесе тұрақтыны
, - тізім элементтерін ажырату;
Программа құрылымы
Программа келесі бөлімдерден тұруы мүмкін, бұл бөлімдер (тек
программа тақырыбы;
белгілер бөлімі;
тұрақтылар бөлімі;
типтерді сипаттау бөлімі;
процедура мен функцияларды сипаттау бөлімі;
программа денесі;
Программалау барысында алдын-ала анықтауды қажет етпейтін мәліметтердің стандартты
Стандартты типтер
бүтін типтер-SHORTINT, INTEGER, LONGIN, BYTE,WORD;
нақты типтер – REAL, SINGLE, DOUBLE, EXTENDED, COMP;
логикалық тип -BOOLEAN ; символдық тип CHAR ;
Басқа типтердің барлығы типтер бөлімінде, айнымалылар немесе тұрақтыларды
DEC(N) N-ді азайту (қысқарту)
INC(N) N-ді үлкейту (ұзарту)
ORD(N) N-нің рет нөмірі
ODD(N) N-нің жұптығын тексеру
PRED(N) N-нің алдынғы мәні
SUCC(N) N-нің келесі мәні
Нәтижесі бүтін болатын мәліметтердің бүтін типтерімен жұмыс істеу
ABS(N) N-нің абсолют
A DIV B бүтін
A MOD B қалдықты бөлу
+
*
-
TRANC(X) Х нақты санның бүтін бөлігі;
ROUND(X) Х нақты санды бүтінге дейін дөңгелектеу;
SQR(X) N санын квадраттау;
Логикалық функциялар: NOT- терістеу; OR - біріктіру немесе
Стандартты функциялар
ABS(X)-Х-тің абсолют мәні
ARCTAN(X)- Арктангенс Х
COS(X)-Косинус Х
SIN(X)- Синус Х
EXP(X)- е2
FRAC(X)- Х-тің бөлшек бөлігі
ARCCOS(X)=ARCTAN(SQRT(1-SQR(X))/X)
ARCSIN(X)=ARCTAN(X/SQRT(1-SQR(X)))
Тілдің операторлары
BEGIN END құрама оператор;
IF…THEN шартты оператор;
CASE…OF таңдауоператоры;
FOR… DO параметрлі қайталау операторы;
REPEAT… UNTIL шартқа дейін қайталау операторы;
WHILE… DO әзіргі шартқа байланысты қайталау;
1.1 Турбо mаскаль тілінің операторлары.
Операторлар-программадағы нұсқаулардың (бұйрықтар,алгоритмдер) машиналық тілде жазылуы. Яғни берілген
Операторлар қарапайым және күрделі (құрама) операторлар болып екі
Күрделі (құрама) оператор бірнеше қарапайым операторлар тұрады. Бұл
Құрама оператордың жалпы жазылуы:
Begin
1-оператор;
2-оператор;
3-оператор;
...
N-оператор;
End;
Begin (басы) және end (соңы) сөздерін операторлар жақшасы
(1-оператор; 2-оператор; ...; N-оператор).
Құрама операторлар ішінде тағы бір құарма оператор болуы
1.2Циклдік құрылымды алгоритмді программалау.
Кейбір алгоритмдердің белгілі бір бөліктері бірнеше рет қайталанып
Цикл – бұл прграмманың орындалу барысында бірнеше рет
Алдын-ала шартты тексеру арқылы
Келесі шарт бойынша
Параметрдің мәніне тәуелді
Үш түрлі жолмен ұйымдастыратын циклға арнайы операторлар қолданылады.
1.3Алғы шартты цикл операторы While операторы.
While операторы жан жақты басқару үйлесімі болып табылады.
Жалпы жазылуы:
While do
;
While do
Begin
…
End.
Мұндағы, Қызметші сөздерінің қазақша мағынасы: While –“әзір”, do
While операторы алгоритмдік тілдегі “әзір” цикл командасына
әзір
цб
цс
бітті.
Шарт
1.0-сурет.
Жоғарыдағы блок схемасы While операторымен ұйымдастырылатын циклді
Егер, цикл денесі екі немесе екіден де көп
While do
begin
;
end;
While операторында программалаушы циклдің өзгеру қадамын өзі
Z=Y3 функциясының мәнін есептеу керек, мұндағы Y=1,2,3,4,5,6,7.Программаның нәтижесінде
Program pr1;
Var Z,Y: integer; {берілген айнымалыны сипаттау}
Begin
Z:=1;{Y-тің бастапқы мәнін меншіктеу}
While y1000;
readln
end.
1.5 Параметрлі қайталану операторы For операторы.
Циклдік құрылымды алгоритмді программалауда қайталанушы процесс бір айнымалының
For операторы алгоритмдік тілдегі параметрлі қайталану командасына сәйкес
і үшін m1 бастап m2 дейін h қадам
Цб
Серия
Цс
For операторы екі түрлі жазылады:
А) for I:=A to B do
Begin
…
End;
Орындалу ережесі: Begin және End сөздерінің арасында жазылған
For Х:=М1 to M2 do S1;
Мұндағы, қызметші сөздер: For(үшін), to(дейін) циклдің қадамы +1-ге
Х- скалярлық типтегі айнымалы циклдің параметрі;
М1-цикл параметрінің бастапқы мәні;
М2-цикл параметрінің соңғы мәні;
S1-параметріне тәуелді қайталанып орындалатын оператор. Сондықтан, S1-цикл денесі
Б) For I:=A DOWN TO B DO
Begin
…
End;
Орындау ережесі: Begin және End сөздерінің арасында жазылған
For X:=M1 down to M2 do S1;
1-нұсқадан өзгешелігі to сөзінің орнына down to (төменге
Егер, цикл денесі бірнеше оператордан тұрса, Begin және
Параметрдің мәніне тәуелді циклді блок схемасында төмендегідей сипаттайды.
1.2-сурет.
Параметрлі қайталану операторының жазылуына және орындалуына мысал келтірейік:
Оператордың жазылуы Нәтижесі
For k:=-1 To 6 do Write (x,’,’) -1,0,1,2,3,4,5,6
For k:=3 To 3 do Write (x,’,’)_ 3
For k:=1 To 9 do Write (x,’,’) 1,2,3,4,5,6,7,8,9
For k:=-1 To -6 do Write(x,’,’) Цикл орындалмайды
For k:=10 down to 6 do Write(x,’,’) 10,9,8,7,6
For k:=0 down to –1 do Write(x,’,’) 0,-1
For k:=1 down to 16 do Write(x,’,’) Цикл
Қайталану санын келесі тәсілдермен анықтауға болады. Соңғы мән
Алғашқы мән – соңғы мән +1 екінші жағдай
Program pr3;
Var i,P :integer;
Begin
P:=1;
For i:=1 to 10 do
P:=P*1;
Writeln (‘P=’,P);
Readln
End.
1.6Күрделі циклдер
Күрделі қайталанушы процесстерді ұйымдастыруда бір цикл операторы құрамында
Мысылы, суретте екі параметрлі цикл операторлары арқылы жазылған
1.3-сурет.
ЭЕМ-де есеп шығару кезеңдері. Қадам бойынша орындау әдісі.
Кез-келген есерті ЭЕМ-де шешу бірнеше кезеңдерден тұрады:
1) есептің қойылуын ұғу;
2) формальдау деңгейі (есептің математикалық түрде қойылуы);
3) шешу әдісін таңдау;
4) алгоритмін жазу(құру);
5) программасын құру;
6) программаның дұрыстығын тексеру;
7) есептеу және нәтижелерін өңдеу.
1.8 Мысал есептер
1-есеп. М натурал саны берілген. Оның жай сан
Program pr1;
Var I,M,F: integer;
Begin
Repeat
Write(‘натуралсан енгізу М=’);
Readln(M);
Until M>0;
F:=0;
For I:=2 TO M DIV 2 do
If M MOD I=0 then F:=1;
If F=0 then writeln (M:6,’жай сан’)
Else writeln (М:6,’жай сан емес’);
End.
Есепті шешу алгоритмі:
1. Программа денесін айнымылылардан сипаттаудан бастаймын.
2. Натурал сан енгіземін.
2-ден М/2 аралығындағы натурал сандар М санының бөлгіші
F-тің мәніне байланысты нәтижені шығарамын.
Айнымалылар:
М-зерттелетін сан;
І-цикл айнымалысы;
F-көмекші айнымалы.
2-есеп. А натурал саны берілген. Оны жай көбейткіштерге
Program pr2;
Var I,A,F,J: integer;
Begin
Repeat
Write(‘натурал сан енгіз А=’);
Readln(A);
Until A>0;
Write(A:6,’=1’);
F:=0; J:=A;
For I:=2 to A DIV 2 do
Begin
If J MOD I=0 then begin F:=1;
{Цикл мұндай І көбейткіштердің А санында нешеу екендігін
While J MOD I=0 DO
Begin
Write(‘*’,I);
J:=J DIV I;
End;
End;
{F бірден үлкен жай көбейткіштердің табылғандығын анықтайды}
if F=0 then writeln (‘*’,A);
else writeln;
end.
Есепті шешу алгоритмі:
Программа денесін айнымалыларды сипаттаудан бастаймын;
Натурал сан енгіземін;
Параметрі І циклде А/2 – ден артпайтын натурал
Егер мұндай сан бөлгіш болса, онда А-ны кішірейту
F-тің мәніне байланысты нәтижені шығарамын.
Айнымалылар:
А-зерттелетін сан;
І,J-цикл айнымалысы;
F-көмекші айнымалы.
3-есеп. Р және М натурал сандары
Program pr3;
Var I,P,M,K: integer;
F: Boolean;
Begin
Repeat
Write(‘натурал сан енгіз P=’);
Readln(P);
Write(‘натурал сан енгіз M=’);
Readln(M);
Until(P>0) and (M>0);
F:= False;
If P>M then K:=M else K:=P;
For I:=2 to K do
If (P MOD I=0) And (M MOD I=0)
If F then writeln (P,’,’,M,’ өзара жай сандар
Else writeln (P,’,’,M,’өзара жай сандар’);
End.
Есепті шешу алгоритмі:
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. Р,М натурал сан енгіземін;
3.Параметрі І циклде 2-ден бастап ең кіші санға
F-тің мәніне байланысты нәтижені шығарамын.
Айнымалылдар:
Р,М –зерттелетін сан;
І-цикл айнымалысы;
Ғ-көмекші айнымалы;
К-Р,М сандарының кішісі.
4-есеп. А және М натурал сандары берілген. Олардың
Program pr4;
Var I,M,A,K,D: integer;
Begin
Repeat
Write(‘A=’);
Readln(A);
Write(‘M=’);
Readln(M);
Until (A>0) And (M>0);
If A>M then K:=M else K:=A;
For I:=1 to K do
If (A MOD I=0) And (M MOD I=0)
Writeln (‘A,M сандарының ең үлкен ортақ бөлгіші=’,D);
End.
Есепті шешу алгоритімі:
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. А, М натурал сан енгіземін;
3. Параметрі І циклде 1-ден бастап ең кіші
4. Осы бөлгішті D айнымалысында сақтаймын;
Нәтижесін шығарамын.
Айнымалылар:
А,М- зерттелетін сан;
І-цикл айнымалысы;
D-ең үлкен ортақ бөлгіш;
К- А,М сандарының кішісі.
5-есеп. S және В натурал сандары берілген. Олардың
Program pr5;
Var I,K,S,B,D:integer;
Begin
Repeat
Write(‘S=’);
Readln(S);
Write(‘B=’);
Readln(B);
Until(S >0) and (B>0);
If S>B then K:=S else K:=B;
For I:=1 to K do
If (S MOD I=0) And (B MOD I=0)
EKOE:=D*(S DIV D)*(B DIV D);
Writeln (‘S,B сандарының ең кіші ортақ еселігін‘);
Writeln (‘EKOE=’, EKOE);
End.
Есепті шешу алгоритмі:
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. S, В натурал сан енгіземін;
3. Параметрі І циклде 1-ден бастап ең кіші
4. Осы бөлгішті D айнымалысында сақтаймын;
5. EKOE:=D*(S DIV D)*(B DIV D);екендігін ескеріп нәтижені
Айнымалылар:
S,B-зерттелетін сан;
I-цикл айнымалысы;
D-ең үлкен ортақ бөлгіш;
EKOE-ең кіші ортақ еселік
K-S,B сандарының кішісі.
6-есеп. Мына қатардың алғашқы С мүшесінің қосындысын табу
Y=1+X/2+X2/3+X3/4 +..., мұндағы Х – кез-келген сан.
Program pr6;
Var X,Y,Z: Real; I,N:integer;
Begin
Write(‘X-тің мәнін енгіз=’);
Readln (X);
Write (‘N-нің мәнін енгіз=’);
Readln(N);
Y:=1; Z:=1;
For I:=1 to N-1 do
Begin
Z:=Z*X;
Y:=Y+Z/(I+1) ;
End ;
Writeln(‘Y=’,Y) ;
End.
Есепті шешу алгоритмі:
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. Қатардың мүшелерінің санын N және Х айнымалыны
3. Циклде қатардың келесі санын анықтаймын және оны
Нәтижені шығарамын
Айнымалылар:
N-қатардың мүшелерінің саны
X-қатардың айнымалысы
D-ең үлкен ортақ бөлгіш
EKOE-ең кіші ортақ еселік
K-М,N сандарының кішісі
Z-қосымша айнымалы
I-цикл айнымалысы
Y-қатардың қосындысы.
7-есеп. Соңы 0 болатын сандар тізбегін енгізу керек.
Program pr7;
Var L,W: Real; F:Boolean;
Begin
Write(‘сан енгіз=’);
Readln (L);
Write(‘сан енгіз=’);
Readln (W);
F:=False;
Repeat
It W=L then F:=True;
L:=W;
Writeln(‘сан енгіз=’);
Readln (W);
Until W=0;
If F then writeln (‘тізбекте қатар орналасқан тең
Else writeln (‘тізбекте қатар орналасқан тең сандар жоқ’);
End.
Есепті шешу алгоритмі:
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. Алғашқы екі санды L және W енгіземін
3. Циклде осы екі санда тексеремін, егер олар
4. L:=W мәнін қайта меншіктеймін жәнк W-дің және
F-ке байланысты нәтижені шығарамын.
Айнымалылар:
L-алдыңғы сан
W-қарастырылып отырған сан
F-қосымша айнымалы
8-есеп. Билеттің кезегінде ерлер және әйелдер тұр. Басынан
Program pr8;
Var POL: STRING; I,K,N: integer;
Begin
repeat
Write(‘тізбектің ұзындығын енгіз N=’);
Readln(N);
Until N>0;
K:=0;
For I:=1 to N do
Begin
Writeln(‘жынысын енгіз’);
Readln(POL);
If POL=’MAN’ then K:=K+1
Else Break
End;
If K=0 then writeln (‘кезектің алдында ерлер жоқ’)
Else (‘кезектің алдында ерлер саны =’,K);
End.
1. Программа денесін айнымалыларды сипаттаудан бастаймын;
2. Тізбектің ұзындығын енгіземін және есептеу үшін К-ның
3. Циклде адамның жынысын енгіземін;
4. Егер ер адам болса К-ның мәнін бірге
5.Әйтпесе циклді Break операторы арқылы тоқтатамын;
6.К-ның мәніне байланысты нәтижені шығарамын.
Айнымалылар:
K-санау саны
I-цикл айнымалысы
N-кезекті адамдардың саны
F-қосымша айнымалы
Pol-адам жынысы.
9-есеп. 5х-3у=1 Диафонтова теңдеуі арқылы бүтін сандардың
Program pr9;
Var x,y: byte;
Begin
x :=1; y :=1;
repeat
if (5*x-3*y)>1 then y:=y+1;
if (5*x-3*y)