2. процедура описывается следующим образом:
procedure p(x1;x2;…xn);
D;
begin
…
end;
где
р - имя процедуры;
(x1;x2;…xn); - произвольный список формальных
параметров.
D - произвольные локальные описания,
сгруппированные
таким же образом, как и в случае функций;
begin ... end - составной оператор, в котором имя
процедуры не появляется в операциях
присваивания.
3. Параметры из списка, вводимые через описания
вида
v1,v2…vn:tp называются параметрами-
значениями. Они служат для пере-
дачи значений из основной программы в
процедуру.
Формальные параметры, введенные в список
через описания вида
var v1,v2…vn:tp называются параметрами-
переменными и служат для возвращения
результатов из процедуры в основную
программу.
4. Запуск процедуры выполняется путем ее
вызова:
P(a1,a2,…an);
где (a1,a2,…an) este список фактических
параметров.
Запомните!
Для параметра-переменной в качестве
фактического параметра можно
использовать только переменную.
5. Program P99;
var a, b, c,
t, q : real;
procedure Lac(r : real; var l, s : real);
const Pi=3.14159;
begin
l:=2*Pi*r;
s:=Pi*sqr(r);
end; { Lac }
begin
a:=1.0;
Lac(a, b, c);
writeln(a:10:5, b:10:5, c:10:5);
Lac(3.0, t, q);
writeln(3.0:10:5, t:10:5, q:10:5);
End.
6. 1. Дан заголовок:
Var k, m, n : integer;
a, b, c : real;
procedure P(i : integer; var j : integer; x : real; var y : real);
begin
{ . . .}
end.
Какие из следующих операторов корректны?
a) P(k,m,a,b) ;
b) P(3,m,a,b) ;
c) P(k,3,a,b) ;
d) P(m,m,a,b);
e) P (m, k, 6.1, b) ;
Аргументируйте ваш ответ.
f) P(n,m, 6,b) ;
g) P(n,m,6,20);
h) P(a,m,b,c) ;
i) P(i, i, i, i) ;
j) P(a,a,a,a) ;
7. Program P101;
var a, b : integer;
procedure P(x : integer; var y : integer);
begin
x:=x+1;
y:=y+1;
writeln('x=', x, ' y=', y);
end; { P }
begin
a:=5;
b:=9;
P(a, b);
writeln('a=', a, ' b=', b);
readln;
end.
8. а) находит корми уравнения ах2 + Ьх + с = 0;
б) удаляет из строки символ, указанный при
вызове процедуры;
в) обрамляет строку символами "#";
г) упорядочивает элементы массива array
[1..100] of real в порядке возрастания;