Автор работы: Пользователь скрыл имя, 05 Июня 2015 в 08:33, курсовая работа
Программа құрылымы
Программа келесі бөлімдерден тұруы мүмкін, бұл бөлімдер (тек соңғыдан басқасы) бір-бірінен нүктелі-үтір арқылы ажыратылады:
программа тақырыбы;
белгілер бөлімі;
тұрақтылар бөлімі;
типтерді сипаттау бөлімі;
процедура мен функцияларды сипаттау бөлімі;
программа денесі;
Паскаль тілінің негізгі түсініктері..............2
1.1 Турбо паскаль тілінің операторлары .........4
Негізгі бөлім
1.2 Циклдік құрылымды алгоритмді программалау....5
1.3 Алғы шартты цикл операторы. While операторы ..........6
1.4 Келесі шарт бойынша циклді ұйымдастыру.
Repeat операторы................8
1.5 Параметрлі қайталану операторы.
For операторы.......9
1.6 Күрделі циклдер..............11
1.7 ЭЕМ-де есеп шығару кезеңдері.
Қадам бойынша орындау әдісі......................11
1.8 Мысал есептер..............................12
Қайталау (цикл).................................19
2.0 Сызықты және тармақты құрылымды алгоритмдерді программалау....21
2.1 Қайталанған құрылымды алгоритмдерді программалау.....28
Қорытынды
Әдебиеттер тізімі..........................20
For Х:=М1 to M2 do S1;
Мұндағы, қызметші сөздер: For(үшін), to(дейін) циклдің қадамы +1-ге өсіп отыратынын көрсетеді, do(орында);
Х- скалярлық типтегі айнымалы циклдің параметрі;
М1-цикл параметрінің бастапқы мәні;
М2-цикл параметрінің соңғы мәні;
S1-параметріне тәуелді қайталанып орындалатын оператор. Сондықтан, S1-цикл денесі деп аталады.
Б) For I:=A DOWN TO B DO
Begin
…
End;
Орындау ережесі: Begin және End сөздерінің арасында жазылған операторлар I:=A, I:=A-1, I:=A-2,…, I:=B үшін орындалады.
For X:=M1 down to M2 do S1;
1-нұсқадан өзгешелігі to сөзінің орнына down to (төменге дейін) қызметші сөзі жазылады. down to циклдің өзгеру қадамы –1 тең екендігін көрсетеді. Мұндағы Х –тің мәні М1- ден М2-ге дейін –1 қадаммен кему үшін М1>M2 шарты орындалуы керек. Егер бұл шарт орындалмаса цикл денесі бірде бір рет орындалмайды.
Егер, цикл денесі бірнеше
Параметрдің мәніне тәуелді
Параметрлі қайталану операторының жазылуына және орындалуына мысал келтірейік:
Оператордың жазылуы |
Нәтижесі |
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 – бірінші жағдай үшін;
Алғашқы мән – соңғы мән +1 екінші жағдай үшін. Мысалы:Р=1*2*,…*10 сандарының көбейтіндісін есептеу.
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) есептің қойылуын ұғу;
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. Натурал сан енгіземін.
Айнымалылар:
М-зерттелетін сан;
І-цикл айнымалысы;
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.
Есепті шешу алгоритмі:
Айнымалылар:
А-зерттелетін сан;
І,J-цикл айнымалысы;
F-көмекші айнымалы.
3-есеп. Р және М натурал сандары берілген. Олардың өзара жай сандар екендігін анықтау керек. Өзара жай сандардың 1-ден басқа ортақ бөлшектері болмайды.
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) Then F:=TRUE;
If F then writeln (P,’,’,M,’ өзара жай сандар емес’)
Else writeln (P,’,’,M,’өзара жай сандар’);
End.
Есепті шешу алгоритмі:
1. Программа денесін
2. Р,М натурал сан енгіземін;
3.Параметрі І циклде 2-ден бастап
ең кіші санға дейінгі
Айнымалылдар:
Р,М –зерттелетін сан;
І-цикл айнымалысы;
Ғ-көмекші айнымалы;
К-Р,М сандарының кішісі.
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) then D:=1;
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) then D:=1;
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-есеп. Мына қатардың алғашқы С мүшесінің қосындысын табу керек.
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 енгіземін және F-нің алғашқы мәнін беремін;
3. Циклде осы екі санда
4. L:=W мәнін қайта меншіктеймін жәнк W-дің және мәнін енгіземін;
Айнымалылар:
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.К-ның мәніне байланысты
Информация о работе Сызықты және тармақты құрылымды алгоритмдерді программалау