- •Содержание
- •Язык программирования Turbo Pascal 7.0 Основные понятия
- •Буквенно-цифровые символы.
- •Специальные символы.
- •Структура программы на языке Паскаль
- •Константы в языке Паскаль
- •Типы данных в языке Паскаль
- •Простые типы данных
- •Объявление переменных
- •Выражения
- •Стандартные арифметические функции.
- •Арифметические операции.
- •Операторы ввода
- •Операторы вывода
- •Использование стандартных модулей
- •Пример программы (линейный алгоритм)
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Структурированные типы данных
- •Работа с массивами
- •Работа со строками
- •Операции над строками.
- •Множества
- •Операции над множествами
- •Стандартные процедуры и функции для работы с файлами.
- •Работа с текстовыми файлами
- •Работа с типизированными файлами
- •Подпрограммы в языке Паскаль.
- •Локальные и глобальные переменные
- •Подпрограмма-процедура
- •Параметры
- •Подпрограмма-функция
Параметры
Обмен информацией между основной программой и подпрограммой осуществляется с помощью параметров.
Фактические параметры – это реальные величины, над которыми должны быть выполнены действия, описанные в подпрограмме. Фактические параметры перечисляются через «,».
Формальные параметры – это переменные, которые используются в подпрограмме для описания действий над данными.
Формальные параметры можно разбить на категории:
-
параметры-значения;
-
параметры-переменные;
-
параметры-процедуры;
-
параметры-функции.
При передаче параметров по значению подпрограмма получает копию переменной. Изменение копии внутри подпрограммы не влияет на оригинал. При вызове подпрограммы фактические параметры вычисляются и используются как начальные значения формальных параметров, т. е. осуществляется подстановка значений. Параметры-значения используются для передачи исходных данных в подпрограмму.
При передаче параметров-переменных в подпрограмму передается адрес переменной, таким образом, подпрограмма получает доступ к самой переменной и может ее изменять. Параметры-переменные могут использоваться как для передачи исходных данных, так и для сохранения результата.
Формальные параметры перечисляются через «;» и задаются в виде:
<имя параметра>:<тип> для параметров-значений;
var <имя параметра>:<тип> для параметров-переменных.
Если несколько параметров имеют одинаковый тип, то они могут быть перечислены через запятую перед указанием типа.
Формальные и фактические параметры должны соответствовать:
-
по количеству;
-
по порядку следования;
-
по типу.
Пример использования процедур с параметрами:
Для массивов А(5) и В(6) найти разность между суммами элементов:
Сумму найти в подпрограмме-процедуре.
Код программы:
Program Pp;
Uses crt;
Const n=6;
Type
TMas=array[1..n] of real;
Var
a, b:TMas;
i:byte;
Sa, Sb, y:real;
Procedure Sum_Mas(c:Tmas; k:byte; var s:real);
begin
s:=0;
for i:=1 to k do
s:=s+c[i];
end;
begin {основная программа}
clrscr;
for i:=1 to 5 do
begin
write('Введите а[', i, ']=');
readln(a[i])
end;
for i:=1 to 6 do
begin
write('Введите b[', i, ']=');
readln(b[i])
end;
Sum_Mas(a, 5, Sa);
Sum_Mas(b, 6, Sb);
y:=Sa-Sb;
writeln('Результат=', y:6:3);
readkey
end.
Результаты работы программы:
Введите а[1]=4.5
Введите а[2]=2.7
Введите а[3]=4.6
Введите а[4]=1.2
Введите а[5]=-7.5
Введите b[1]=3.6
Введите b[2]=8.4
Введите b[3]=-5.1
Введите b[4]=-5.8
Введите b[5]=3.5
Введите b[6]=9.4
Результат=-8.500
Подпрограмма-функция
Подпрограмма-функция предназначена для вычисления какого-либо значения.
Описание функции начинается с заголовка:
function имя [(список_формальных_параметров)]:тип_возвращаемого_результата;
Имя функции используется для передачи результата в вызывающую программу, поэтому в теле функции хотя бы раз должно быть присвоено значение результата имени функции.
Для вызова функции следует в выражении, где необходимо использовать значение функции, указать имя функции со списком фактических параметров:
имя_функции [(список_фактических_параметров)]
Пример использования процедур с параметрами:
Для массивов А(5) и В(6) найти разность между суммами элементов:
Сумму найти в подпрограмме-функции.
Код программы:
Program Pp;
Uses crt;
Const n=6;
Type
TMas=array[1..n] of real;
Var
a, b:TMas;
i:byte;
y:real;
Function Sum_Mas(c:Tmas; k:byte):real;
var
s:real;
begin
s:=0;
for i:=1 to k do
s:=s+c[i];
Sum_Mas:=s
end;
begin
clrscr;
for i:=1 to 5 do
begin
write('Введите а[', i, ']=');
readln(a[i])
end;
for i:=1 to 6 do
begin
write('Введите b[', i, ']=');
readln(b[i])
end;
y:=Sum_Mas(a, 5)-Sum_Mas(b, 6);
writeln('Результат=', y:6:3);
readkey
end.
Результаты работы программы:
Введите а[1]=3
Введите а[2]=6
Введите а[3]=7.3
Введите а[4]=5.7
Введите а[5]=2.4
Введите b[1]=6.7
Введите b[2]=4.5
Введите b[3]=1.8
Введите b[4]=-4.7
Введите b[5]=-3.7
Введите b[6]=5.2
Результат=14.600