1. Описание процедуры. Оператор процедуры.
(Вот такой билет, как отвечать? )
ТурбоПаскаль7
Другие языки программирования и технологии
Теоретический вопрос на экзамене (один) . Напишите шпаргалку. Лучшему - 10 баллов.
В языке Паскаль имеется два вида подпрограмм - процедуры и функции.
Процедуры помещаются в раздел описаний программы. Для обмена информацией между процедурами и функциями и другими блоками программы существует механизм входных и выходных параметров. Входными параметрами называют величины, передающиеся из вызывающего блока в подпрограмму (исходные данные для подпрограммы) , а выходными - передающиеся из подрограммы в вызывающий блок (результаты работы подпрограммы) .
Одна и та же подпрограмма может вызываться неоднократно, выполняя одни и те же действия с разными наборами входных данных. Параметры, использующиеся при записи текста подпрограммы в разделе описаний, называют формальными, а те, что используются при ее вызове - фактическими.
Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, перменных. Исполняемая часть содержит собственно операторы процедур.
Формат описания процедуры имеет вид:
procedure имя процедуры (формальные параметры) ;
раздел описаний процедуры
begin
исполняемая часть процедуры
end;
Формальные параметры в заголовке процедур записываются в виде:
var имя праметра: имя типа
и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее) . Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.
Вызов процедуры производится оператором, имеющим следующий формат:
имя процедуры (список фактических параметров) ;
Список фактических параметров - это их перечисление через запятую. При вызове фактические параметры как бы подставляются вместо формальных, стоящих на тех же местах в заголовке. Таким образом происходит передача входных параметров, затем выполняются операторы исполняемой части процедуры, после чего происходит возврат в вызывающий блок. Передача выходных параметров происходит непосредственно во время работы исполняемой части.
При вызове процедур необходимо соблюдать следущие правила:
количество фактических параметров должно совпадать с количеством формальных;
соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.
Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.
Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.
var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;
begin
write('Введите x,y ');
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln('m=',m,'n=',n);
end.
Процедуры помещаются в раздел описаний программы. Для обмена информацией между процедурами и функциями и другими блоками программы существует механизм входных и выходных параметров. Входными параметрами называют величины, передающиеся из вызывающего блока в подпрограмму (исходные данные для подпрограммы) , а выходными - передающиеся из подрограммы в вызывающий блок (результаты работы подпрограммы) .
Одна и та же подпрограмма может вызываться неоднократно, выполняя одни и те же действия с разными наборами входных данных. Параметры, использующиеся при записи текста подпрограммы в разделе описаний, называют формальными, а те, что используются при ее вызове - фактическими.
Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, перменных. Исполняемая часть содержит собственно операторы процедур.
Формат описания процедуры имеет вид:
procedure имя процедуры (формальные параметры) ;
раздел описаний процедуры
begin
исполняемая часть процедуры
end;
Формальные параметры в заголовке процедур записываются в виде:
var имя праметра: имя типа
и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее) . Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.
Вызов процедуры производится оператором, имеющим следующий формат:
имя процедуры (список фактических параметров) ;
Список фактических параметров - это их перечисление через запятую. При вызове фактические параметры как бы подставляются вместо формальных, стоящих на тех же местах в заголовке. Таким образом происходит передача входных параметров, затем выполняются операторы исполняемой части процедуры, после чего происходит возврат в вызывающий блок. Передача выходных параметров происходит непосредственно во время работы исполняемой части.
При вызове процедур необходимо соблюдать следущие правила:
количество фактических параметров должно совпадать с количеством формальных;
соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.
Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.
Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.
var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;
begin
write('Введите x,y ');
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln('m=',m,'n=',n);
end.
Оператор процедуры определяет активизацию процедуры, обозна-
ченную с помощью идентификатора процедуры. Если соответствующее
описание процедуры содержит список формальных параметров, то опе-
ратор процедуры должен содержать в себе соответствующий ему спи-
сок фактических параметров (параметры, список которых приводится
в определении, являются формальными параметрами, а в операторе
вызова процедуры они являются фактическими параметрами) . При вы-
зове происходит передача фактических параметров формальным пара-
метрам.
ченную с помощью идентификатора процедуры. Если соответствующее
описание процедуры содержит список формальных параметров, то опе-
ратор процедуры должен содержать в себе соответствующий ему спи-
сок фактических параметров (параметры, список которых приводится
в определении, являются формальными параметрами, а в операторе
вызова процедуры они являются фактическими параметрами) . При вы-
зове происходит передача фактических параметров формальным пара-
метрам.
учиться учиться и учиться
Похожие вопросы
- Помогите пожалуйста избавиться от "синего экрана смерти"! кто поможет, тому +10 баллов гарантирую!
- помогите по Delphi (10 баллов)
- как можно быстро понять тему бэйсик ответьте на вопрос поставлю 10 баллов
- теоретический вопрос про антивирусы
- Срочно! Даю 10 баллов!
- Теоретический вопрос: "Условие окончания рекурсивного алгоритма". Подскажите пожалуйсто!
- кто поможет???)))))вознаграждение 10 баллов)))))
- Кто знает Delphi. Дам 10 баллов!!
- помогите!!!10 баллов лучшему!!!
- Назовите для меня все ОС тому что назавет все ОС правельно тому гарантирую 10 баллов!