Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU-Pascal.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
707 Кб
Скачать
☆

Var a: mass;

Procedure MinMax(z: mass; n: integer; var min, max: real);

В случае параметров-констант перед их именами ставится слово Const. При их использовании в подпрограмму также передается ссылка, т.е. адрес параметра в памяти, однако компилятор блокирует все попытки изменить его в подпрограмме, т.е. присвоить ему какое-либо значение.

Если формальный параметр является нетипизированным параметром-переменной, то соответствующий ему фактический параметр может представлять собой любую ссылку на переменную, независимо от ее типа. Описание таких параметров выглядит как группа параметров с ключевым словом Var впереди, за которыми не следует указание типа, например:

Function Fun(var First, Second): Boolean;

Если некая переменная объявлена в разделе Var основной программы, то ее называют глобальной переменной. Она существует от места описания до конца программы (эту область называют областью видимости данной переменной). Таким образом, она видна и может быть использована и во всех подпрограммах этой программы.

Если некая переменная объявлена в разделе Var какой-либо подпрограммы, то она считается локальной переменной этой подпрограммы. Она существует от места описания до конца этой подпрограммы, т.е. только в этой подпрограмме.

Если некоторое имя определено в скобках в заголовке подпрограммы, то это формальный параметр этой подпрограммы.

Встретив в тексте подпрограммы какой-либо идентификатор, компилятор начинает искать его описание сначала в разделе Var этой подпрограммы, затем в списке формальных параметров, и если не находит, то продолжает поиск во внешнем по отношению к этой подпрограмме блоке, пока не доберется до раздела Var основной программы. Таким образом, если имя некоторой глобальной переменной совпадет с именем локальной переменной подпрограммы, то в этой подпрограмме можно будет обращаться только к локальной переменной, а глобальная будет недоступна. Говорят, что в этих случаях локальное имя закрывает (маскирует) глобальное.

Считается, что в подпрограммах использовать глобальные переменные следует с осторожностью, так как это может привести к ошибкам.

Практические задания

1. Изучить и запустить программу вычисления площади треугольника, заданного тремя сторонами a, b, c, по формуле Герона, в которой проверка существования треугольника и вычисление площади реализованы в виде функций.

Program Geron;

Var a,b,c,s: real;

function exist(x,y,z: real): boolean;

begin

if (x<=0) or (y<=0) or (z<=0) or

(x+y<z) or (x+z<y) or (y+z<x) then

exist:=false

else exist:=true;

end;

function square(x,y,z: real): real;

Var p: real;

begin

p:=(x+y+z)/2;

square:=sqrt(p*(p-x)*(p-y)*(p-z))

end;

Begin

writeln(’Введите длины сторон a,b,c:’);

readln(a,b,c);

If exist(a,b,c) then

begin

s:=square(a,b,c);

writeln(’Площадь S=’,s:9:6)

end

else writeln(’Треугольник не существует’);

readln

End.

2. Изучить и запустить программу вычисления длины вектора, заданного в виде массива из 3 чисел, в которой вычисление длины вектора реализовано в виде функции. С ее помощью составить программу обработки векторов, заданных в виде массива из 3 чисел, выполняющую следующие действия: а) вычисление скалярного произведения двух векторов; б) вычисление угла между двумя векторами; в) вычисление векторного произведения двух векторов.

Указание. Функцию arcсos(t) вычислять как .

Program Vectors;

type vect=array[1..3] of real;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]