Цель работы: Разработка алгоритмов и написание приложений, использующих циклы с управляющим параметром. Использование функции, созданной пользователем.
Оператор цикла с управляющим параметром (счетчиком) используется при организации цикла с известным числом повторений. Такой цикл является детерминированным, т.е. может использоваться, если количество итераций цикла можно определить до его выполнения. Этот цикл представлен в языке двумя конструкциями:
- инкрементный цикл
for <параметр:= начало> to <конец> do <тело цикла>; (1)
- декрементный цикл
for <параметр:= начало> downto <конец> do <тело цикла>; (2)
В этих структурах:
- параметр – переменная порядкового типа. Значение счетчика автоматически увеличивается на 1 (для инкрементного цикла) и уменьшается на 1 (для декрементного цикла) от значения <начало> до значения <конец>. Детерминированность цикла обусловлена тем, что в теле цикла нельзя изменять значение счетчика, а значения <начало> и <конец> вычисляются один раз при входе в цикл.
Количество итераций (1) цикла = (конец-начало)+1, если начало<= конец, и равно 0 – в противном случае. Фрагмент кода демонстрирует механизм работы инкрементного цикла:
for i:= 1 to 3 do Трассировка: i 1 2 3
begin a 2 4 6
a:= i*2; b:= i*2+1 b 3 5 7
end;
Количество итераций (2) цикла = (начало-конец)+1, если начало>= конец, и равно 0 – в противном случае. Фрагмент кода демонстрирует механизм работы декрементного цикла:
for i:= 3 downto 1 do Трассировка: i 3 2 1
begin a 6 4 2
a:= i*2; b:= i*2+1 b 7 5 3
end;
<Тело цикла> может состоять из одного или нескольких операторов. Для досрочного выхода из цикла можно использовать оператор break. Оператор continue позволяет осуществить переход к следующей итерации цикла до завершения текущей.
Описание подпрограммы «функция» и вызов функции
С помощью подпрограммы-функции можно оформить часть алгоритма, выполняющую требуемые операции (реализовать отдельную подзадачу). Любая функция описывается один раз, а обращаться к ней можно из разных точек кода многократно. Обращение к функции называется вызовом функции. Как правило, функция имеет входные формальные параметры. Структура функции (блок) включает: заголовок со списком формальных параметров, раздел описаний и раздел операторов, заключенный в операторные скобки. Выполнение приложения начинается с главного блока. Когда очередной оператор является вызовом функции, ее формальные параметры замещаются фактическими параметрами, и затем выполняется тело функции. При этом между формальными и фактическими параметрами должно быть полное соответствие: по их количеству, типу и порядку следования. Особенностью функции является то, что она возвращает один результат любого типа (за исключением файлового), который сохраняется в имени функции.
Пример 7. Написать функцию, вычисляющую сумму квадратов двух чисел:
Function Sum (a,b: real48): real48; // функция
Var s:real48;
Begin
S:= sqr(2)+sqr(b);
Sum:= s
End; {Sum}
или
Function Sum (a,b: real48): real48; // функция
Begin
Result:= sqr(2)+sqr(b);
End; { Sum }
Фрагмент кода вызывающего блока:
Var x,y,rez: real48;
.......
Readln(x,y);
rez:= Sum(x,y); или writeln(Sum(x,y)); //вызов функции
Каждая пользовательская функция содержит локальную переменную Result того же типа, что и значение, возвращаемое функцией. Эту переменную можно использовать в правой части оператора присваивания. Result и имя функции всегда содержат одно и то же значение.
Варианты заданий
Задаются: функция в виде графика, произвольный отрезок [ a, b] и количество точек табулирования n > 100. Выполнить табулирование функции на заданном отрезке и вывести результат на экран в виде таблицы с «шапкой», состоящей из четырех столбцов: номер точки, аргумент, значение функции, минимальное или максимальное значение (найти наименьшее и наибольшее значения функции на отрезке и выделить эти значения в таблице, напечатав их повторно в четвертом столбце). Остальные значения функции на отрезке не повторяются. В вариантах 5,7,10-17,20,21,23,24 в точках разрыва вычислять значение функции с правой стороны от точки.
Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8
Вариант 9

Вариант 10

Вариант 11

Вариант 12

Вариант 13

Вариант 14

Вариант 15

Вариант 16

Вариант 17

Вариант 18

Вариант 19

Вариант 20

Вариант 21

Вариант 22

Вариант 23

Вариант 24

Вариант 25







