Автор работы: Пользователь скрыл имя, 23 Декабря 2011 в 06:17, курсовая работа
Қазақстан Республикасындағы білімді ақпараттандыру жүйесі ары қарай дамыту процесін оқып үйренудің ақпараттық ресурсы болып табылатын оқытуға арналған программалық құралдарды дайындамай жүзеге асыруы мүмкін емес. Олардың атқаратын қызметтерінің ауқымы кең, мысалы, бақылайтын және тест жүргізетін программалар, компьютерлік ойындар, ақпараттық жүйелер, оқыту орталары, электрондық оқулықтар және мультимедиалық программалар.
Program EYOB; {Екі санның ең үлкен ортақ бөлгішін табу}
Var n,x,m,e,y:integer;
Begin
Write(‘m,n sandarin engizinder:’);
Readln(m,n);
x:=m; y:=n;
Repeat
if x>y then x:=x-y else y:=y-x;
UNTIL x=y;
e:=x;
Writeln(‘En ulken ortak bolgish=’,e);
End.
Нәтижесі:
m,n sandarin engizinder: 87 54
En ulken ortak bolgish= 3
3-мысал. Кез келген бүтін п үшін п! есептейтін программа құру керек.
1-нұсқа. мұндағы п алдымен 1-ге тең болып, сонан соң әрбір қайталау кезінде ол бірге өсіп отырады.
Алгоритмдік тілде | Паскаль тілінде |
алг
факториал1 (бүт п,і,
нақ р)
алг п,і нәт р басы р:=1 i:=0 әзірше i<n цб i:=i+1 p:=p*i цс шығару р соңы |
program factorial1; {факториал
есептеу}
var n,i:integer; p:real; begin write(‘n санын енгізіңдер:’); {бүтін n санын енгізу} readln(n); p:=1; i:=0; {p-ағымдағы факториал мәні} while i<n do {i-қайталау саны} begin i:=i+1; p:=p*i; end; writeln(‘n!=’,p:3:2); end. Нәтижесі: n санын енгізіңдер: 3 n!=6.00 |
2-нұсқа. Бұл нұсқада n! мәні n мәнін біртіндеп кеміту арқылы орындалады, яғни n!=n(n-1)(n-2)…3*2*1.
Program factorial2;
Var n:integer; p:real;
begin
Writeln(‘n sanin engizinder:’);
readln(n);
p:=1;
repeat
p:=p*n; n:=n-1
until n=0;
writeln(‘n!=’,p);
end.
Нәтижесі: n санын енгізіңдер: 4
n!=24.00
2.4 FOR операторы
Циклдегі операторларды қайталау саны алдын ала белгілі болған жағдайда FOR операторы қолданылады. Бұл оператор параметрлі цикл операторы деп те аталады, өйткені қайталау саны функция аргументі (айнымалы) сияқты циклдің параметрі қызметін атқаратын басқару айнымалысы арқылы беріледі. Параметр өзінің алғашқы мәтіннен соңғы мәніне дейін бірлік қадаммен өзгеру барысында циклге кіретін бір немесе бірнеше операторды қайталап орындауды атқарады.
Оператор FOR сөзінен басталатын оның тақырыбынан және цикл тұлғасынан тұрады да, синтаксистік диаграммасы 5-суреттегідей болып кескінделеді.
5-сурет. For операторының диаграммасы
Диаграммаға сәйкес оның жазылуы екі түрде болады:
For <айнымалы>:=<S1> to <S2> do < оператор>;
For < айнымалы >:=<S1> downto <S2> do < оператор >;
мұндағы S1 және S2-цикл параметрінің алғашқы және соңғы мәндерін айқындайтын өрнектер; for…do-цикл тақырыбын анықтайтын түйінді сөздер; < оператор>-цикл тұлғасы.
FOR- үшін, TO- дейін, DO- орындау деген мағынаны беретін түйінді сөздер. Паскаль тіліне цикл параметрі міндетті түрде бүтін немесе реттелген типтегі айнымалы болуы қажет. Параметрдің өзгеру қадамына байланысты операторда TO немесе DOWNTO(DOWN-төмен, TO-дейін, DOWNTO-кері қарай) түйінді сөздер пайдаланылады. Егер қадам +1-ге тең болса, онда операторда TO, ал қадам -1-ге тең болса, онда DOWNTO сөзі қолданылады. Параметрдің бастапқы және соңғы мәндері бүтін сан түрінде немесе өсуі, кемуі бойынша реттелетін болуы тиіс, әйтпесе оларды бүтін мән беретін арифметикалық өрнек түрінде жазуға да болады.
FOR операторының орындалуы блок-схемасы
түрінде 6-суретте бейнеленген.
Цикл тұлғасы (блок-схемадағы <оператор>) жай немесе құрама оператор болуы мүмкін. FOR операторының жұмысы цикл параметрінің алғашқы мәнінен соңғы мәніне дейінгі аралықты бірлік қадаммен қайталап өтпей тоқталмайды. 6-сурет. For операторының болк-
Цикл тақырыбы:
Мысалы:
For k:=1 to 100 do Read (M[k]); {жиын элементтерін оқу};
For k:=10 downto 1 do Write (M[k]); { жиын элементтерін жазу};
FOR операторы алғаш орындалардан бұрын S1 және S2 өрнектерді есептеледі де, цикл параметрі S1 меншіктеледі, яғни <цикл параметрі>:=S1 операторы жүзеге асырылады.
Осыдан кейін цикл ішінде
FOR операторы параметрінің мәндеріне байланысты, циклдің қайталану санын былай анықтауға болады.
Оператор | S1<S2 | S1=S2 | S1>S2 |
FOR …
TO …
FOR … Downto … |
S2-S1+1рет
орындалмайды |
1 рет
1 рет |
Орындалмайды
S1-S2+1рет |
Мысалдар:
Оператор | Нәтижесі |
For i:=1
to 6 do
For i:=6 downto 1 do For C:=’a‘ to ‘e’ do For C:=’e’ downto ‘a’ do |
Write (i:2); 1 2 3 4 5 6
Write (i:2); 6 5 4 3 2 1 Write (C:2); a b c d e Write (C:2); e d c b a |
4-мысал. 1-ден 100-ге дейінгі натурал сандардың қосындысын табу керек:
Program symma;
var i,s:integer;
begin
s:=0;
for i:=1 to 100 do s:=s+i;
writeln(‘ kosindi=’, s:6);
End.
Нәтижесі:
kosindi=5050
2.5 Күрделі циклдер
Егер бір цикл тұлғасында басқа циклдік құрылым бар болса, онда олар қабатталған циклдер деп аталады. Құрамында басқа цикл кіретін цикл сыртқы болып саналады да, сыртқы цикл тұлғасына кіретін цикл ішкі болып есептеледі.
Көптеген есептерді шығару
Күрделі циклдер қарапайым Whil
Күрделі циклдің құрамын
5-мысал. Program Kobeity;
Var I,j:byte;
Begin
For i:=2 to 9 do
Begin
For j:=1 to 10 do
Writeln(i,’x’,j,’=’,i*j);
Writeln
End;
End.
Нәтижесі:
2x1=2
2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18 2x10=20 |
3x1=3
3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 3x10=30 |
4x1=4
4x2=8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36 4x10=40 |
5x1=5
5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45 5x10=50 |
6x1=6
6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54 6x10=60 |
7x1=7
7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63 7x10=70 |
8x1=8
8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72 8x10=80 |
9x1=9
9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 9x10=90 |