Шутилина Л.А. Процедуры в Turbo Pascal ( часть 1: процедуры с параметрами)
Применение процедур без параметров не удобно из-за большого количества операторов присваивания, которые до обращения к процедуре определяют значения переменных a, d c. Процедуры с параметрами позволяют при вызове процедуры напрямую указывать переменные или константы для определения значений переменных a, b, c (тех, которые используются в тексте процедуры).
Procedure (Список параметров); Procedure Ploshad3( var a, b, c:real); В основной программе процедура вызывается тоже с указанием параметров: (Список параметров); Ploshad3 (AB, BC, AC, S); Формат записи процедуры с параметрами
Формальные параметры – это параметры, которые указаны в скобках после имени процедуры в разделе описания процедуры и служат для описания порядка действий в процедуре. Фактические параметры – это параметры, которые указываются в скобках при вызове процедуры. Они заменяют формальные параметры при выполнении программы.
program Prog3; uses CRT; var AB, BC, CD, DA, AC, S1, S2: real; Procedure Ploshad3(var a, b, c, s :real); var p:real; begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); end; begin Clrscr; Writeln('Задайте стороны 4-угольника ABCD и его диагональ AC'); readln (AB, BC, CD, DA, AC); Ploshad3(AB, BC, AC, S1); Ploshad3(DA, AC, CD, S2); Writeln ('Площадь ABCD= ', S1+S2:8:2); readln; end. Формальные параметры Фактические параметры Пример программы
Procedure (Список параметров); Procedure Ploshad3 (a, b, c: real; var s:real); В основной программе процедура вызывается аналогично: Ploshad3 (AB, BC, AC, S); Параметры-значения Параметры-переменные Параметры-значения используются для задания начальных значений в процедуре, Параметры-переменные для вывода результата. Процедуры с параметрами-значениями и параметрами-переменными
program Prog4; uses CRT; var AB, BC, CD, DA, AC, S1, S2: real; Procedure Ploshad4( a, b, c: real; var s:real); var p:real; begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); end; begin Clrscr; Writeln('Задайте стороны 4-х угольника ABCD и его диагональ AC'); readln (AB, BC, CD, DA, AC); Ploshad4(AB,BC,AC,S1); Ploshad4(DA,AC,CD,S2); Writeln ('Площадь ABCD= ', S1+S2:8:2); readln; end. Пример записи программы
1.Соответствие между параметрами команды вызова процедуры и параметрами описания процедуры устанавливается не по именам параметров, а по порядку следования: Первый параметр в команде вызова соответствует первому параметру в описании процедуры, второй – второму и т.д., следовательно число фактических параметров должно соответствовать числу формальных параметров. Procedure Ploshad3(var a, b, c, s :real); Ploshad3(AB, BC, AC, S1); Правила вызова процедур с параметрами
2. Типы фактических параметров должны соответствовать типам формальных параметров. 3. Фактические параметры, соответствующие результатам вычислений в процедуре, должны быть только именами переменных. Procedure Ploshad3 (a, b, c: real; var s :real); Ploshad3 (АВ, 3, 6-2.7, S1); 4. Фактические параметры, соответствующие начальным значениям для процедуры, могут быть именами переменных, константами и выражениями соответствующего типа. Правила вызова процедур с параметрами
Задание на урок Составьте программу, в которой используется процедура с параметрами, вычисляющая сумму, произведение и среднее арифметическое трех целых числа. Составьте программу, в которой используется процедура с параметрами, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ, который выводится, являются параметрами процедуры.