Оператор цикла repeat

Задача: Вычислить значения функции y = x2 в точках 1.1,1.3,1.5,...,3.5

В решении задачи используется повторяющийся блок операторов:

x:=1.1;y:=x*x;

writeln('при x=',x,'y=',y);

x:=1.3;y:=x*x;

writeln('при x=',x,'y=',y);

и т.д.

Заметьте, что меняется только значение "х". Но в изменении значения "х" есть закономерность: арифметическая прогрессия с разностью 0.2 (шаг)). Можно задать это оператором x:=x+0.2; Для повторения некоторого блока операторов существует оператор цикла (три разновидности).

СТРУКТУРА ЦИКЛА REPEAT

repeat

повторяющийся

блок операторов

until условие;

условие указывает,когда закончить цикл (выйти из цикла).Цикл REPEAT всегда выполняется хотя бы один раз.

Решение задачи:

program prim;

var x,y:real;

begin

x:=1.1; {начальное значение "х"}

repeat

y:=x*x;

writeln('при x=',x,'y=',y);

x:=x+0.2;{вычисление следующего "х"}

until x>3.5 {когда выйти из цикла}

end.

Блок-схема задачи:

 
 


 
 


Циклический алгоритм - алгоритм,описывающий вычислительный процесс, содержащий многократно повторяющийся этап.

Примеры цикла REPEAT:

1. x:=1;

repeat { цикл выпоняется }

y:=x*x; { один раз }

write(y);

x:=x+1;

until x>=1;

2. x:=1;

repeat { цикл выполняется }

y:=x*x; { бесконечное }

write(y); { количество раз }

x:=x-2;

until x>3;

Ситуация в программе,когда цикл выполняется бесконечное количество раз,называется зацикливанием. Чтобы прервать выполнение зацикленной программы, нужно нажать CTRL+BREAK.

Задача: Составить программу для вычисления значения функции:

в точках х=2;...;5 с шагом 0.3

Решение: program prim;

var x,y:real;

begin

x:=2;

repeat

y:=(5*sqr(x)*x+3)/(2*x);

writeln(‘при х=‘,x,’y=‘,y);

x:=x+0.3;

until x>5;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: