3. Параметрлі цикл операторына мысалдар: Мысал 1. 1-ден 100-ге дейінгі натурал сандардың қосындысын табу керек, яғни мынадай қосындыны анықтау қажет: S=1+2+…100=i. Бұл есептің орындалу схемасын 1.9-суретте көрсетілген, оған сәйкес программа мәтіні Program cymma; Var i, s: integer; Begin s:=0; for i:=0 to 100 do {цикл басы} s:=s+i; {қайталау операторы} writeln(‘қосынды=’ s:6) end.
1.9-сурет
Мысал 2. k функциясының мәндерін оның аргументі х -4-тен +4-ке дейін қадамы 0,2 болып өзгерген кезде табу қажет, мұндағы
y=(x2-2x+2)/(x2+1).
Бұл алгоритмде бізге циклдің неше рет қайталанатынын алдын ала білуіміз керек, сондықтан аргументтің алғашқы, соңғы мәндерін және өзгеру қадамын пайдалана отырып, қайталану санын төмендегі формуламен есептей аламыз:
n=[(xk-x0)/x]+1;
n=(4-(-4))/0,2+1=41рет.
Цикл операторының параметрін 1-ден 41-ге дейін өсіре отырып, алгоритмді 1.10-суреттегідей, ал программаны төмендегіше құруға болады:
Program funksia;
Var k: integer; x, y: real;
Begin
x:=-4; for k:=1 to 41 do
begin
y:=(x*x-2*x+2)/(x*x+1);
writeln('x=', x:5:2, 'y=', y:8:3);
x:=x+0.2
end
end.
FOR операторындағы цикл параметрінің бүтін мәндері қабылдайтынын ескере отырып,
х айнымалысының өзгеру қадамын 0,1 етіп, бұл программаны басқаша жолмен де жасауға болады.
Var k: integer; x, y: real;
Begin 1.10-сурет
for k:=-40 to 40 do
begin
x:=k/10;
y:=(x*x+2*x+2)/(x+1);
writeln('x=', x:5:2, 'y=', y:8:3);
end
end.
Мысал 3. Бүтін сандардың көбейтіндісін өрнектейтін n! мәнін, яғни n!=1*2…n табу қажет. Бұл алгоритмді құру барысында FOR операторының кері қарай есептейтін мүмкіндігін пайдаланайық (1.11-сурет).
Program faktorial;
Var i, n: integer; p:longint;
Begin
Write(‘бүтін n енгізіңіз:’); readln(n);
p:=1; for i:=n downto 2 do p:=p*i;
writeln(n:2, ‘!=’, p:7);
end. 1.11-сурет
Достарыңызбен бөлісу: |