8. Организация программ циклической структуры. Нахождение наибольшего и наименьшего значений функции.

Для реализации циклических процессов используют операторы циклов.

Основные виды циклов:

• цикл-пока (while) (а);
• цикл-до (repeat until) (б);
• счетный цикл (цикл с заданным числом повторений) (в).

3_1

Цикл-пока. Синтаксическая диаграмма оператора «цикл-пока» приведена на рисунке ниже. Условие записывают в виде логического выражения. Оператор тела цикла повторяется, пока условие истинно. Проверка осуществляется на входе. Если при входе в цикл условие не выполняется, то оператор тела цикла игнорируется. Если в тело цикла необходимо поместить несколько операторов, то используют составной оператор.

цикл_пока

Цикл-до. Операторы тела цикла повторяются до выполнения условия, условие проверяется на выходе, т.е. тело цикла всегда выполняется хотя бы один раз. Синтаксическая диаграмма оператора «цикл-до» приведена на рисунке ниже. В тело цикла можно поместить несколько операторов, разделив их точкой с запятой «;».

цикл_до

Счетный цикл. Цикл выполняется, пока переменная (параметр) цикла принимает значения в заданном диапазоне с определенным шагом. Синтаксическая диаграмма оператора приведена на рисунке ниже. Переменная цикла должна иметь порядковый тип. Выражение 1 определяет начальное значение параметра цикла, выражение 2 - конечное значение параметра цикла. Соответственно начальное и конечное значения должны принадлежать к тому же типу, что и параметр цикла. Если используется служебное слово to, то при каждом выполнении цикла переменной цикла присваивается следующее значение порядкового типа переменной. Если используется служебное слово downto, то при каждом выполнении цикла переменной цикла присваивается предыдущее значение порядкового типа переменной. Если диапазон значений переменной цикла пуст, то цикл не выполняется.

счетный_цикл

Нахождение наибольшего и наименьшего значений функции.

program kentawforfindingoftheminimumandmax;
uses crt;
var
f:array[1..3] of real;
a,b:real;
i,max,min:integer;
begin
writeln('y=3x*x+x-4 ,[a,b]. max=? ,min=?');
writeln('Vvodite a');
readln(a);
writeln('Vvodite b');
readln(b);
f[3]:=-1/6; {f`(x)=6x+1=0, =>x=-1/6}
f[1]:=3*a*a+a-4;
f[2]:=3*b*b+b-4;
min:=1;
for i:=2 to 3 do
if f[i]<f[min] then min:=i;
writeln('min=',f[min]:6:2);
max:=1;
for i:=2 to 3 do
if f[i]>f[max] then max:=i;
writeln('max=',f[max]:6:2);
readln
end.

Hosted by uCoz