- •1.Массивы.
- •2.Строковые массивы.
- •4.Процедура без параметров.
- •5.Процедура с параметрами.
- •6.Использование параметров-значений и параметров-переменных в качестве входных. Параметры константы.
- •7. Ограничения, наложенные на формальные и фактические параметры.
- •8.Аппарат функций.
- •9. Побочный эффект в процедурах и функциях.
- •10)Рекурсия
- •11.Опережающее описание процедур
- •12.Параметры процедурного типа:
- •13.Внешние модули, реализованные на других языках программирования. Структура основной программы, вызывающей процедуру. Присоединение текстового файла.
- •14. Структура tpu- модуля и программы.
- •15.Ссылочные типы данных, работа со связанным списком.
- •16.Ссылочные типы данных, формирование списка студентов из файла.
- •17.Поиск элемента в списке.
- •18.Исключение и добавление
- •19.Включение в список.
- •20.Типизированный файл.
- •21.Текстовые файлы
- •22.Файлы прямого доступа:
- •1.Особенности языка Си. Программа печати текста.
- •2.Программа печати таблицы с циклом «пока».
- •3.Программа печати таблицы с арифметическим циклом.
- •4.Программа печати таблицы с арифметическим циклом при использовании символических констант.
- •5.Ввод, вывод символов. Копирование файла.
- •6.Подсчет числа символов в файле
- •7.Подсчет числа строк в файле.
- •8.Подсчет числа символов, строк и слов в файле.
- •9.Подсчет числа каждой цифры, символов пустых промежутков и всех остальных символов.
- •10.Функции
- •11.Методы передачи параметров в функциях
- •12.Заполнение массива одинаковыми значениями.
4.Процедура без параметров.
Описание процедуры без параметров имеет вид:
procedure имя;
{описание локальных переменных}
begin
{операторы}
end;
Процедура без параметров может реализовывать любой алгоритм. Все переменные, над которыми производят действия операторы процедуры, определяются в вызывающей программе, им присваиваются необходимые для выполнения процедуры значения. Для удобства передачи данных в процедуру и получения из неё результата используются формальные и фактические параметры. Формальные — условные обозначения в описании процедуры — описываются в её заголовке. Фактические — с которыми требуется выполнить процедуру — перечисляются при вызове процедуры. Формальные и фактические параметры должны соответствовать по количеству, типу и порядку следования. Формальные параметры описываются только в заголовке процедуры и больше нигде. Их описание похоже на описание данных в разделе переменных и может также содержать слово var.
Вызов процедур без параметров.
Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма.
Использование процедур без параметров оправданно только в том случае, если в них не используется обращение к глобальным переменным. Использование таких процедур ограниченно той программой, для которой они написаны и затруднено для других программ.
Материал из лекции:
Рассмотрим пример процедуры без параметров(из лекции): Найти во введенном массиве max и min значение, и сделать то же самое в массиве, состоящем из абсолютных значений первого.
А: 0 1 -5 2 3; max= 3; min =-5;
A2: 0 1 5 2 3 ; max=5; min=0;
Program extr1;
Const n=5;
Var
A:array[1..N] of integer; { Глобальные переменные }
I:1..n;
Max,min:integer;
Procedure max_min;
Var i:1..n;
V:integer;
Begin {Для процедуры}
Max:=a[1];
Min:=max;
For i:=2 to n do
Begin
V:=a[i];
If v>max then max:=v;
If v<min then min:=v;
End;
End;{Для процедуры max_min}
Begin {Для основной программы}
For I:=1 to n do
begin
Read(a[i]);
End;
Max_min;{Обращение к процедуре}
Writeln('max=',max,'min=',min);
For i:=1 to n do
Begin
A[i]:=abs(a[i]);
Write(A[I]:3);
End;
Max_min;
Writeln('max=',max,'min=',min);
End.{Конец основной программы}
Результат программы:
0 1 -5 2 3
max=3 min=-5
0 1 5 2 3
max=5 min=0
5.Процедура с параметрами.
Из лекции:
Процедура без параметров ограниченно используется подпрограммой, т.к. обрабатывается всегда глобальная переменная с одним и тем же именем, для настройки на любые имена переменных используется процедура с параметром, кроме того они позволяют менять действия при следующем обращении.
Те параметры, которые фигурируют при описании заголовка, называются формальными.
Те параметры, которые фигурируют при обращении к П/П называются фактическими.
Параметры имеют 3 характеристики:
Имя
Тип (имя типа)
Вид
2.Если тип параметра определен пользователем в поле TYPE, то имя типа должно быть описано.(TYPE T=array) определение типа внутри скобок недопустимо.
Параметры значения (ПЗ) настраивают процедуру на определенные значения. Фактические задаются в начале программы и заменяют формальные при обращении к подпрограмме.
Подпрограмма относится к ПЗ, как к локальной переменной (она погибает при окончании подпрограммы) служит только входной. Перед ПЗ никогда не ставят VAR.
В секции могут быть объединены только переменные одного типа и вида (var a ,b: byte; c, d:real)
Рассмотрим пример процедуры c параметром (из лекции): Найти во введенном массиве max и min значение, и сделать то же самое в массиве, состоящем из абсолютных значений первого.
А: 0 1 -5 2 3; max= 3; min =-5;
A2: 0 1 5 2 3 ; max=5; min=0;
program extr2;
const n=5;
type
t=array [1..n] of integer;
var
a,b:T;
i:1..n;
max,min:integer;
procedure min_max(x:t; var max,min:integer);
var
i:1..n;
v:integer;{локальные переменные}
begin {для процедуры}
max:=x[1];
min:=max;
for i:=2 to n do
begin
v:=x[i];
if v>max then max:=v;
if v<min then min:=v;
end;
end;{для процедуры }
begin {Для основной программы}
for i:=1 to n do
begin
read(a[i]);
end;
min_max(a,max,min);
writeln('max=',max,'min=',min);
for i:=1 to n do
begin
b[i]:=abs(a[i]);
write(b[i]:3);
end;
writeln;
min_max(b,max,min);
writeln('max=',max,'min=',min);
end. {Конец основной программы}
Из интернета:
Формат процедуры заданной с параметром значения:
Procedure имя; (список формальных параметров: тип); раздел описаний; Begin; раздел операторов процедуры; End; Begin имя процедуры (список фактических параметров); ... End.
Формальные параметры используются в определении процедуры. Фактические параметры используются при вызове процедуры. С помощью фактических и формальных параметров данные передаются из программы в процедуру и обратно. Между формальными и фактическими параметрами должно быть полное соответствие, т.е.: 1.формальных и фактических параметров должно быть одинаковое количество;
2.порядок следования формальных и фактических параметров должен быть одним и тем же;
3.тип каждого фактического параметра должен совпадать с типов соответствующего ему формального параметра.
Если в процедуре перед формальным параметром не стоит слово Var, то такие параметры называются параметрами значения (ПЗ). Если слово Var стоит – переменные (ПП).