Тема: Программирование с использованием процедур и функций.
Необходимые сведения
Правила описания и вызова процедур и функций, механизм передачи параметров, понятие локальных и глобальных переменных.
Варианты заданий
1. Описать функцию max(x,y), где x,y – вещественные числа.
2. Вычислить z=(sign x + sign y) sign (x+y), где 
3. По заданному x вычислить
. Примечание:
.
4. Описать функцию «степень» (x, y) от вещественного x и натурального n, вычисляющую (через умножение) величину x и использовать ее для вычисления b =2.7k+(a + 1).
5. Даны три натуральных числа. Определить их наибольший общий делитель.
6. Type NAT = 1..maxint;
Var m, n : NAT;
Function NOD(m,n:NAT) : NAT;
Begin
Whille m < > n Do
If m > n Then m:= m – n Else n:=n – m;
NOD:=m
End;
1) Определить, что будет выдано на печать
m:=8; n:=6; write(NOD(m,n),m,n);
2) Объясните, почему при вычислении NOD(m,n) не меняется значение переменных m и n, хотя в теле функции оба эти параметра изменяют свое значение.
7. Описать функцию S= 1 + 2 + … + N, N – формальный параметр.
8. Описать процедуру S = 1 + 2 + …+ N, S, N – формальные параметры.
9. Описать процедуру minmax(x,y), которая присваивает параметру x большее из вещественных чисел x и y, а параметру y – меньшее.
10. Использовать описанную в п.9 процедуру minmax для перераспределения значений вещественных переменных a, b, c так, чтобы стало a ³ b ³ c.
11. Перечислить локальные (в том числе и формальные) и глобальные имена, используемые в примере:
Procedure P(x: vec; var y : Integer);
Const z = ‘*’;
Var c : INDEX;
Begin e:= 0;
For c:= a To b Do
If x[c] > z Then y:=y+1
End;