Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_Паскаль_5_6.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
228.86 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Саратовский государственный технический университет

Кафедра "Приборостроение"

Паскаль:

процедуры и функции,

работа с файлами

Методические указания

к лабораторным работам

для студентов специальности 190100, 190500

Одобрено

редакционно-издательским советом

Саратовского государственного технического университета

Саратов 2006

Содержание

Лабораторная работа № 5 3

Цель работы 3

Теоретическая часть 3

Варианты заданий 12

Лабораторная работа № 6 14

Цель работы 14

Теоретическая часть 14

Варианты заданий 19

Содержание и оформление отчета 21

Литература 21

Лабораторная работа № 5 Цель работы

Изучение работы с процедурами и функциями.

Теоретическая часть

В Паскале существует 2 разновидности подпрограмм: процедуры и функции. Структура подпрограммы аналогична структуре всей программы. Перед использованием подпрограмма должна быть описана.

Процедура

Предназначена для выполнения какой-то законченной последовательности действий. В отличие от программы заголовок в процедуре обязателен:

procedure <имя процедуры> (<список параметров>);

За заголовком процедуры могут идти такие же разделы, что и в основной программе, за исключением раздела uses. Завершается процедура не точкой (как основная программа), а точкой с запятой

Пример 1:

procedure WriteSquareN(N : integer);

var

I : Integer;

begin

for I := 1 to N do

write(I,'^2=',I*I,' ');

writeln;

end;

В примере 1 реализована процедура вывода квадратов N целых чисел. Участок кода между операторами begin…end называется телом процедуры.

Вызов процедуры осуществляется указанием ее имени и фактических параметров, тип которых должен совпадать с типами параметров, описанных в заголовке процедуры (см. пример 2).

Пример 2:

program Test;

var

Count : Integer;

procedure WriteSquareN(N : integer);

var

I : Integer;

begin

for I := 1 to N do

write(I,'^2=',I*I,' ');

writeln;

end;

begin

write('Введите число:');

readln(Count);

WriteSquare(Count);

end.

В примере 2 перед использованием процедура WriteSquare описана в разделе переменных var основной программы. После этого в теле программы можно осуществлять вызов процедуры. Результат работы программы приведен ниже.

Введите число: 5

1^2=1 2^2=4 3^2=9 4^2=16 5^2=25

Функция

Предназначена для вычисления какого-либо параметра. В отличие от процедуры заголовок имеет вид:

function <имя функции>(<список параметров>) : <тип возвращаемого параметра>;

Тип возвращаемого параметра может быть следующий: любой порядковый, любой вещественный, string, указатель.

В теле функции хотя бы раз имени функции должно быть присвоено значение – это и означает возврат параметра.

Пример 3:

function Factorial(N : Byte) : LongInt;

var

Fact : LongInt;

I : Byte;

begin

Fact := N;

for I := N-1 downto 2 do

Fact := Fact * I;

Factorial := Fact; {возврат значения - имени функции присваивается вычисленное значение}

end;

В примере 3 реализована функция для вычисления факториала числа N.

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

Пример 4:

Program Test;

var

T : Byte;

function Factorial(N : Byte) : LongInt;

var

Fact : LongInt;

I : Byte;

begin

Fact := N;

for I := N-1 downto 2 do

Fact := Fact * I;

Factorial := Fact;

end;

begin

write('Введите число (1..127): ');

readln(T);

writeln('Значение формулы:', Part := Sqr(T)/Factorial(T););

end.

В примере 4 вычисляется значение формулы .