top of page

Цикл с параметром

     Цикл с параметром наиболее часто встречающийся цикл в любом языке программирования. Этот цикл применяется тогда, когда заранее известно условие и число повторений цикла. Используется, когда известно, сколько раз выполняется циклическая часть программы.

for <параметр цикла>:=<начало> to/downto <конец> do <оператор>;
           для                                                       до                         делать

 

параметр цикла - числовая переменная типа integer

 

начало, конец - арифметическое выражение

 

to - используется когда начало меньше конца

downto - используется когда начало больше конца

оператор - тело цикла, любой оператор, в том числе и составной

Принцип работы:

  • Параметру присваивается значение начало

  • Выполняется оператор - тело цикла.

  • Затем параметр сравнивается с концом.

  • Если параметр больше/меньше конца, то начинает работать следующий оператор за оператором цикла, в противном случае к параметру прибавляется/отнимается единица.

  • Снова выполняется оператор.

  • Так продолжается пока параметр не станет больше/меньше конца.

Применение цикла с параметром на конкретных примерах.

Пример 1. 

Пример 2. 

Пример 3. 

Пример 4. 

Пример 5. 

Пример 6. 

Пример 7. 

Пример 8.

Пример 9. 

Пример 10. 

Самостоятельная работа 

      Пример 1. Сто раз написать свое имя на экране в строчку

 Программа:

Program Z_1;

Var i: integer;

Begin

For i: = 1 to 100 do

Write (‘Имя     ’);

Readln

End.

 

      Пример 2.  Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту, для значений от 15 до 30, шаг 1 градус. Формула перевода из Цельсия в Фаренгейты F=(c*1.8)+32.

Program Z_2;

Var c: integer;

       F: real;

Begin

For c: = 15 to 30 do

begin

f:= (c*1.8) +32;

writeln (c,’         ‘,f);

end;

Readln

End.

 

     Пример 3. Написать программу, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел в обратном порядке

Program Z_3;

Var x,y,i: integer;

Begin

Writeln (‘таблица квадратов нечетных чисел’);

Writeln (‘-------------------------‘);

Writeln (‘число’,       ,’квадрат числа’);

Writeln (‘-------------------------‘);

For i: = 5 downto 1 do

begin

y:= sqr (x)

writeln (x,y,);

end;

Writeln (‘-------------------------‘);

Readln

End.

    Пример 4. Подсчитайте число и сумму положительных, число и произведение отрицательных элементов заданного массива A(N).

Решение:

Program B1;

var i,N,Kpol,Kotr: integer;

 Spol, Potr: real;

 a:array[1..20] of real;

Begin write('N='); readln(N);

 for i:=1 to N do

 begin write('a[',i,']=');

 readln(a[i])

 end;

 Kpol:=0; Spol:=0; Kotr:=0; Potr:=1;

 for i:=1 to N do

 begin

 if a[i]>0 then begin Kpol:=Kpol+1; Spol:=Spol+a[i] end;

 if a[i]<0 then begin Kotr:=Kotr+1; Potr:=Potr*a[i] end;

 end;

 writeln('Количество положительных=',Kpol);

 writeln('Сумма положительных=',Spol:7:2);

 writeln('Количество отрицательных=',Kotr);

 writeln('Произведение отрицательных=',Potr:7:2);

End.

     Пример 5.  Заданные векторы X(N) и Y(N) преобразуйте по правилу: большее из xi и yi примите в качестве нового значения xi, а меньшее — в качестве нового значения yi .

Решение:

Program B2;

Var x,y:array[1..20] of real;

 tmp:real;

 i,n: integer;

Begin

write('n=?'); readln(n);

for i:=1 to n do

 begin

 write('x[',i,']=?'); readln(x[i]);

 end;

for i:=1 to n do

 begin

 write('y[',i,']=?'); readln(y[i]);

 end;

Writeln ('Maccив X:');

 for i:=1 to n do write(x[i]:5:2);18

writeln;

Writeln ('Maccив Y:');

 for i:=1 to n do write(y[i]:5:2);

writeln;

{Обработка}

For i:=1 to n do

 if x[i]<y[i] then begin tmp:=x[i]; x[i]:=y[i]; y[i]:=tmp end;

writeln('Результат:');

Writeln ('Maccив X:');

 for i:=1 to n do write(x[i]:5:2);

writeln;

Writeln ('Maccив Y:');

 for i:=1 to n do write(y[i]:5:2);

writeln;

end.

     Пример 6.  Элементы заданного массива B(N) перепишите в новый массив A(N) в обратном порядке.

Решение:

Program B3;

Var a,b:array[1..20] of real;

 i,n: integer;

Begin

write('n=?'); readln(n);

for i:=1 to n do

 begin

 write('b[',i,']=?'); readln(b[i]);

 end;

Writeln ('Maccив B:');

 for i:=1 to n do write(b[i]:5:2);

writeln;

{Заполнение массива A}

 for i:=1 to n do a[n+1-i]:=b[i];

Writeln ('Maccив A:');

 for i:=1 to n do write(a[i]:5:2);

writeln;

end.

   Пример 7. Из заданного вектора A(3N) получите вектор B(N), очередная компонента которого равна среднему арифметическому очередной тройки компонент вектора А.

Решение:

Program B4;

Var a,b:array[1..100] of real;

 i,n,k: integer;

Begin 19

write('n=?'); readln(n);

for i:=1 to 3*n do

 begin

 write('a[',i,']=?'); readln(a[i]);

 end;

Writeln ('Maccив a:');

 for i:=1 to 3*n do write(a[i]:7:2);

writeln;

{Заполнение массива B}

 k:=1;

 for i:=1 to n do

 begin

 b[i]:=(a[k]+a[k+1]+a[k+2])/3;

 k:=k+3

 end;

Writeln ('Maccив B:');

 for i:=1 to n do write(b[i]:7:2);

writeln;

end.

    Пример 8. В заданном массиве Х(N) замените нулями все отрицательные компоненты, непосредственно предшествующие его максимальной компоненте (первой по порядку, если их несколько).

Решение  

Program B5_2;

Var x:array[1..50] of real;

 i,k,n: integer;

 max:real;

Begin

write('n=?'); readln(n);

for i:=1 to n do

 begin

 write('x[',i,']=?'); readln(x[i]);

 end;

Writeln ('Maccив x:');

 for i:=1 to n do write(x[i]:5:2);

writeln;

k:=1; max:=x[1];

for i:=2 to n do

 if x[i]>max then

 begin

 max:=x[i]; k:=i

 end;

for i:=1 to k-1 do x[i]:=0;

Writeln ('Результат:');

 for i:=1 to n do write(x[i]:5:2);

writeln;

end.

    Пример 9. Вычислите значения

а) sin x + sin2x + ... + sinnx ; 

б) sin x+ sin x2+ ...+ sin xn;

в) sin x+ sin sin x+ ...+ sin sin...sin x (n раз).

Решение a):

Program B6_a;

Var i,n:integer;

 x,P,S:real;

Begin

Write('n=?'); readln(n);

Write('x=?'); readln(x);

S:=0; P:=1;

For i:=1 to n do

 begin

 P:=P*sin(x);

 S:=S+P

 end;

Writeln(S:7:2);

readln

End.

Решение б):

Program B6_b;

Var i,n:integer;

 x,P,S:real;

Begin

Write('n=?'); readln(n);

Write('x=?'); readln(x);

S:=0; P:=1;

For i:=1 to n do

 begin

 P:=P*x;

 S:=S+sin(P)

 end;

Writeln(S:7:2);

End.

Решение в):

Program B6_в;

Var n,i:integer;

x,s,p:real;

Begin

Write ('x='); Readln(x);

Write ('n='); Readln(n);

S:=0;

P:=1;

For i:=1 to n do

Begin

P:=sin(p);

S:=s+p;

End;

Write(s:5:2);

End.

    Пример 10. Вычислите сумму квадратов всех элементов заданного массива X(N), за исключением эле-

ментов, кратных пяти.

Решение:

Program B7;

Type Mas=Array[1..50] of integer;

Var x: Mas;

 i,n,s:integer;

Begin

 write('n=?'); readln(n);

 for i:=1 to n do

 begin

 write('x[',i,']='); readln(x[i]);

 end;

 s:=0;

 for i:=1 to n do

 if x[i] mod 5 <> 0 then s:=s+x[i]*x[i];

 writeln('s=',s);

 End.

  • Проверить, является ли целое число простым.

Проверить

  • Написать программу, которая выводит на экран табл. умножения, например на 7.

Проверить

  • Написать программу, которая выводит табличные значения функции у=|x|+2. Диапазон изменения аргумента  от – 4 до 4, приращение аргумента  - 0.5

Проверить

  • Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 0.

Проверить

  • Написать программу, которая позволяет найти наибольший общий делитель двух целых чисел

Проверить

  • Написать программу, которая позволяет найти наименьшее общее кратное двух целых чисел

Проверить

 

   * Написать программу, которая выводит табличные значения функции у=х2+2. Диапазон изменения аргумента  от – 4 до 4, приращение аргумента  1.

Самостоятельная работа

Якорь 1
Якорь 2
Якорь 3
Якорь 4
Якорь 5
Якорь 6
Якорь 7
Якорь 8
Якорь 9
Якорь 10
Якорь 11
Якорь 12
Якорь 13
Якорь 14
Якорь 15
Якорь 16
Якорь 17
Якорь 18
bottom of page