Каким символом разделяются перечень однотипных формальных параметров в процедуре

Список формальных параметров

Параметры, описанные в заголовке подпрограммы, называются формальными.

(value: integer) (X, Y: Real) (st:string; n:integer; c,fill:char)

Список формальных параметров – это последовательность объявлений однотипных параметров. Объявления отделяются друг от друга точкой с запятой. Каждое объявление состоит из списка имен параметров, символа ‘:’ и указания их типа. Внутри объявления имена параметров разделяются запятой. Имя параметра – это корректный идентификатор.

Существует два способа передачи параметра в подпрограмму: по значению(параметры-значения) или по ссылке. Для передачи параметра по ссылке рядом с именем параметра используется одно из зарезервированных слов: var (параметры-переменные), const (параметры-константы), out (выходные параметры). Например:

(var S: string; X: Integer)(const P; I: Integer)

Чтобы почувствовать разницу в способах передачи параметров, обратимся к следующим примерам (из Help):

function DoubleByValue(X: Integer): Integer; // X is a value parameter begin X := X * 2; Result := X; end; function DoubleByRef(var X: Integer): Integer; // X is a variable parameter begin X := X * 2; Result := X; end;

Эти функции возвращают одинаковый результат, но только вторая может изменять значение параметра, переданного в подпрограмму. Вызовем эти функции:

Var I, J, V, W: Integer; begin I := 4; V := 4; J := DoubleByValue(I); // J = 8, I = 4 W := DoubleByRef(V); // W = 8, V = 8 end;

Параметры-значения можно рассматривать как локальные переменные, которые получили начальное значение при вызове подпрограммы. Если вы передали какую-нибудь переменную как параметр-значение, то подпрограмма создает копию переменной. Изменения этой копии не приводят к изменению исходной переменной и утериваются после завершения работы подпрограммы.

Параметры-переменные похожи скорее на указатели. Изменения такого параметра внутри тела процедуры или функции сохраняются после завершения работы подпрограммы и возвращаются в вызывающую программу.

Назначение зарезервированных слов:

Ключевое слово
VarМожно использовать для передачи данных в подпрограмму и для получения данных из подпрограммы
ConstНельзя изменять значение в теле подпрограммы. Похож на локальную переменную только для чтения.
OutНельзя использовать для передачи данных в подпрограмму. Используется только для получения данных из подпрограммы.

Для параметров-значений и параметров-констант возможно указание в заголовке процедуры или функции значения по умолчанию. Для этого в объявлении параметра после типа используется ‘=’ и указывается само значение (константное выражение совместимого типа). Например:

(var S: string; X: Integer = 5)(const P, I: Integer; const M: real = 4.5)

Для параметров, передающихся по ссылке, можно не указывать тип параметра. Такие параметры называются нетипизированными. Параметр-значение обязательно типизирован. Примеры:

(var S, X; out Z)(const P, I; var M)

Внутри подпрограммы непизированные параметры несовместимы ни с какими типами. Необходимо выполнить приведение типов.

Локальные объявления

Тело процедуры или функции часто начинают с объявления локальных переменных, которые используются внутри подпрограммы. Эти объявления могут также включать константы, типы, другие подпрограммы. Область видимости локальных идентификаторов ограничена подпрограммой, где они объявлены.

Процедуры и функции иногда содержат в секции локальных объявлений другие функции и процедуры, так называемые вложенные. Например:

procedure DeleteRandomSymbol(var S: string); function RandomNumber(S: string):integer; var LenString: Integer; Begin LenString:=Length(s); Result:= Random(LenString) + 1; end; begin Delete(S, RandomNumber(s), 1); end;

Область видимости вложенных подпрограмм ограничена подпрограммой, внутри которой они объявлены. В примере функцию RandomNumber можно вызывать только внутри процедуры DeleteRandomSymbol.

Тип возвращаемого значения

Понятие возвращаемого значения имеет смысл только тогда, когда мы говорим о функции, так как процедура не возвращает значения. Функции возвращают значения любых типов данных кроме Text и file of.

В теле функции должен быть, по крайней мере, один оператор, присваивающий значение имени функции или неявной локальной переменной Result. Если такого оператора нет, то значение функции будет не определено.

Var A, G: Double; procedure Average(const X, Y: Double; out M, P: Double);begin M := (X + Y) / 2; P := Sqrt(X * Y);end; procedure TForm1.Button1Click(Sender:Tobject);begin Average(10, 20, A, G); ShowMessage(‘Среднее арифметическое = ‘, FloatToStr(A)); ShowMessage(‘Среднее геометрическое = ‘, FloatToStr(G));End; end.

При вызове подпрограмм необходимо помнить следующее:

1. Выражения, используемые для передачи в типизированные параметры-константы и в параметры-значения должны быть совместимыми по присваиванию с соответствующими формальными параметрами.

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

3. На место параметров, передаваемых по ссылке можно подставлять только переменные, нельзя – числа и константы.

4. Если список формальных параметров отсутствует, то список фактических параметров (в том числе круглые скобки) не указывается.

5. Если вызывается подпрограмма с параметрами по умолчанию, то все фактические параметры по умолчанию, идущие перед тем параметром, который необходимо передать значение, отличное от умолчания, должны быть заполнены. Например, SomeFunction(,,X) – некорректен

Различные способы передачи параметров в подпрограмму. Передача параметров-массивов в подпрограмму. Передача параметров, значения которых заданы по умолчанию. Примеры.

Источник

Pascal: Занятие № 7. Подпрограммы: процедуры в Pascal

Процедуры в Паскале

Подпрограмма — это фрагмент кода, который имеет свое имя и создается в случае необходимости выполнять этот код несколько (много) раз. Подпрограмма описывается единожды перед началом основной программы (до begin ). Компилятор пропускает данный фрагмент кода, пока в основной программе не встретит «вызов» подпрограммы, который выглядит как обращение к ней по имени (возможно, имени с аргументами, указанными в скобках).

Во многих языках программирования подпрограммы существуют только в виде функций. Однако в Паскале подпрограмма — и функция и процедура. Разница между ними станет очевидна в данном уроке.

Итак, рассмотрим синтаксис объявления и описания процедуры в Паскале

procedure pr; var i:integer; begin for i:=1 to 60 do begin <тело подпрограммы>write(‘*’); writeln; end; end; <конец подпрограммы>begin pr; <вызов процедуры>end.

В данном примере работы с процедурой в Паскале очевидно, что компилятор пропустит блок описания процедуры и дойдет до основной программы (9 строка кода). И только после того, как встретится вызов процедуры (10 строка), компилятор перейдет к ее выполнению, вернувшись к строке 1.

Процедуры с параметрами. Фактические и формальные параметры

Рассмотрим пример необходимости использования процедуры.

Особенность: Три похожие фигуры.

Алгоритм решения:

Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре

Решение на паскале:
Процедура:
Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре

uses GraphABC; procedure Tr( x, y: integer; color:system.Drawing.Color); begin MoveTo(x, y); LineTo(x, y-60); LineTo(x+100, y); LineTo(x, y); FloodFill(x+20, y-20,color); end; begin SetPenColor(clBlack); Tr(100, 100, clBlue); Tr(200, 100, clGreen); Tr(200, 160, clRed); end.

Рассмотрим синтаксис объявления и описания процедуры с параметрами в Паскале.

Параметры процедуры (в некоторых языках они называются аргументами) указываются в скобках после ее имени (в объявлении).

В данном примере в качестве введенного символа будем использовать параметр процедуры. Формальный параметр процедуры указывается в скобках при ее описании. Обязательно необходимо указать тип формального параметра через двоеточие.

Фактический параметр — это то значение, которое указывается в скобках при вызове процедуры. Фактическим параметром может быть конкретное значение (литерал: число, символ, строка…) либо переменная, которые компилятор подставит вместо формального параметра. Поэтому тип данных у формального и фактического параметра процедуры должен быть одинаковым.

Процедуры с параметрами. Параметр-переменная

В примере формальные параметры a и b служат для помещения в них сравниваемых чисел, а параметр-переменная max — для сохранения в ней максимального из двух чисел. Параметр-переменная или выходной параметр передает свое значение в основную программу (фактическому параметру m ), т.е. возвращает значение, тогда как формальные параметры-значения (входной параметр), наоборот, принимают значения из основной программы (из фактических параметров x и y ). Для параметра-переменной ( max ) используются те ячейки памяти, которые отведены под соответствующий параметр при вызове процедуры (ячейка m ).

Таким образом, сформулируем понятия:

Если в качестве формального параметра указана обычная переменная с указанием ее типа, то такой параметр есть параметр-значение или входной параметр ( a и b в примере). Тип данных формального параметра-значения должен соответствовать типу данных его фактического параметра ( a и b должны попарно соответствовать типу данных x и y ).

Если перед именем формального параметра в объявлении процедуры стоит служебное слово var, то такой параметр называется параметром-переменной или выходным параметром ( max в примере). Для него используются те ячейки памяти, которые отведены под соответствующий параметр при вызове процедуры ( m ). Фактический параметр, соответствующий параметру-переменной, может быть только переменной (не константой, не литералом и не выражением).

Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре
Словесный алгоритм:

Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре

В задачах на Паскале часто встречается необходимость заполнить массив данными и затем вывести значения на экран. Почему бы не автоматизировать данную задачу заполнения и вывода массива — т.е. оформить при помощи процедур, а в дальнейшем использовать данные процедуры при надобности.

const n = 10; var i:integer; a, b: array[1..n] of integer; procedure arr_out (k:integer; arr: array[1..n] of integer); var i: byte; begin write (‘вывод массива: ‘); for i := 1 to k do write (arr[i]:4); writeln; end; begin for i:=1 to n do a[i]:=random(10); arr_out (n, a); end.

Пояснение:
Тело основной программы:
— формирование элементов массива (с функцией random ).
— вызов процедуры с двумя параметрами: количество элементов, массив.
Тело процедуры:
— вывод элементов массива с использованием параметров

Продолжим нашу задачу:

const n = 10; var a, b: array[1..n] of integer; procedure arr_rand (k:integer; var arr: array[1..n] of integer); var i: byte; begin write (‘Заполнение массива случайными числами ‘); randomize; for i := 1 to k do arr[i]:=random(100); end; begin arr_rand (n, a); end.

Самостоятельная работа

X и Y — входные параметры, AMean и GMean — выходные параметры вещественного типа.
В основной программе: Для заданных A, B, C, D найти среднее арифметическое и среднее геометрическое для пар (A, B), (A, C), (A, D), используя созданную процедуру.

1 вариант: для 5 одномерных массивов определять произведение элементов каждого массива, используя процедуру с двумя параметрами — число элементов массива и параметр-переменная для вывода произведения.

2 вариант: для 5 одномерных массивов определять минимальный элемент каждого массива, используя процедуру с двумя параметрами — число элементов массива и параметр-переменная для вывода минимального элемента.

Источник

Подпрограммы

В практике программирования часто складываются ситуации, когда одну и ту же группу операторов, реализующих определённую цель, требуется повторить без изменений в нескольких местах программы. Для избавления от столь нерациональной траты времени была предложена концепция подпрограммы.

4.1 Общие сведения о подпрограммах. Локальные и глобальные переменные

Для правильного определения области действия идентификаторов (переменных) необходимо придерживаться следующих правил:

4.2 Формальные и фактические параметры. Передача параметров в подпрограмму

Обмен информацией между вызываемой и вызывающей функциями осуществляется с помощью механизма передачи параметров. Переменные, указанные в списке в заголовке функции, называются формальными параметрами, или просто параметрами подпрограммы. Все переменные из этого списка могут использоваться внутри подпрограммы. Список переменных в операторе вызова подпрограммы — это фактические параметры, или аргументы.

Механизм передачи параметров обеспечивает обмен данных между формальными и фактическими параметрами, что позволяет выполнять подпрограмму с различными данными. Между фактическими параметрами в операторе вызова и формальными параметрами в заголовке подпрограммы устанавливается взаимно однозначное соответствие. Количество, типы и порядок следования формальных и фактических параметров должны совпадать.

Формальные параметры процедуры можно разделить на два класса: параметры-значения и параметры-переменные.

При передаче данных через параметры-значения в подпрограмму передаются значения фактических параметров, и доступа к самим фактическим параметрам из подпрограммы нет. При передаче данных параметры-переменные заменяют 1 Реально в подпрограмму передаются адреса фактических параметров. формальные параметры, и, следовательно, в подпрограмме есть доступ к значениям фактических параметров. Любое изменение параметров-переменных в подпрограмме приводит к изменению соответствующих им формальных параметров. Следовательно, входные данные следует передавать через параметры-значения, для передачи изменяемых в результате работы подпрограммы данных следует использовать параметры-переменные.

От общетеоретических положений перейдём к практическому использованию подпрограмм при решении задач. Изучение подпрограмм начнем с процедур.

4.3 Процедуры

Описание процедуры имеет вид:

procedure name_1( r : real; i : integer; c : char );

Однотипные параметры могут быть перечислены через запятую:

procedure name_2( a, b : real; i, j, k : integer );

Список формальных параметров необязателен и может отсутствовать:

Если в заголовке процедуры будут применяться параметры-переменные, то перед ними необходимо указывать служебное слово var :

procedure name_4( x, y : real; var z : real );

Для обращения к процедуре необходимо использовать оператор вызова:

Фактические параметры в списке оператора вызова отделяются друг от друга запятой:

a : = 5. 3; k : = 2; s := ’ a ’;

Если в описании процедуры формальные параметры отсутствовали, то и при вызове их быть не должно:

Алгоритм решения этой задачи был подробно описан в задаче 3.3 (рис. 3.14). Однако там не была рассмотрена ситуация некорректного ввода значений коэффициентов. Например, если пользователь введёт Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре, то уравнение из квадратного превратится в линейное. Алгоритм решения линейного уравнения тривиален: Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре, при условии, что Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Чтобы не усложнять уже составленный алгоритм решения квадратного уравнения, запишем его в виде подпрограммы-процедуры. Далее приведён фрагмент программы с комментариями:

Источник

Процедуры

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

Формат оператора вызова процедуры:

Список фактических параметров может отсутствовать.

Несколько параметров, записываемых в объявлении процедуры и операторе вызова, разделяются запятыми. Фактические параметры должны совпадать по количеству и типам с формальными параметрами процедуры.

Пример. Процедура ввода N целых чисел.

Arr=array[1..100] of Integer;

Procedure InpInt(var Mas:Arr; N:Byte);

Writeln(‘Введите ‘,N,’ целых чисел’);

For i:=1 to N do Readln(Mas[i])

Пример. Функция вычисления факториала числа N.

Function Factorial(N: Byte): LongInt;

For i:=(N-1) downto 2 do

Для досрочного выхода из подпрограммы предусмотрена процедура Exit. Досрочно прекратить выполнение программы можно с помощью процедуры Halt.

Формальные и фактические параметры

подпрограмма турбо паскаль рекурсивный

Формальные параметры указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группы, разделенные точками с запятыми. В группу формальных параметров включаются однотипные параметры одной категории. В языке Turbo Pascal существует четыре категории формальных параметров:

1. параметры-значения, которые в подпрограмме не изменяются;

2. параметры-переменные, которые подпрограмма может изменить и передать в основную программу;

3. параметры-константы (используются только в версии 7.0);

4. параметры-подпрограммы (параметры процедурного типа).

Function Max(A: array[1..100] of Real): Real;

Чтобы правильно объявить данную функцию следует в основной программе объявить тип-массив, а затем использовать его в заголовке функции, например:

Vector: array[1..100] of Real;

Function Max(A: Vector): Real;

При обращении к подпрограмме формальные параметры заменяются на соответствующие фактические вызывающей программы или подпрограммы.

Параметр-значение не может быть файлового типа. Если параметров-значений одного типа несколько, их можно объединить в одну группу, перечислив их имена через запятую, а затем через двоеточие указать общий тип, например:

Procedure One(Max,Min: Real; Number: Word);

Function Two(X,Y: Integer): Real;

В качестве фактического параметра на месте параметра-значения при вызове подпрограммы может быть любое выражение допустимого для присваивания типа, например:

Параметр-переменная указывается в заголовке подпрограммы аналогично параметру-значению, но перед именем параметра записывается слово Var. Действие слова Var распространяется в пределах одной группы параметров (до ближайшей точки с запятой). Тип параметров-переменных может быть любым, включая файловый.

Пример. Объявление подпрограммы с разными параметрами:

Procedure MxMn(Mas:Vector; Var Max,Min:Real; Num:Word);

Параметр-константа указывается в заголовке подпрограммы аналогично параметру-значению, но перед именем параметра записывается слово Const. Действие слова Const распространяется в пределах одной группы параметров. Параметры-константы предназначены для передачи в подпрограмму параметров больших размеров. Тип такого параметра может быть любым, кроме файлового.

В языке Turbo Pascal можно использовать параметры-переменные и параметры-константы без указания типа. В этом случае фактический параметр может быть переменной любого типа, а согласование формальных и фактических параметров возлагается на программиста.

Источник

Pascal | Лекция №6

Подпрограммы. Процедуры и функции

СОДЕРЖАНИЕ:

Подпрограммы (см. Рапаков стр.143-157!)

Понятие подпрограмма встречается во многих языках программирования, т.к. является основным средством структурирования языка. Очень часто в программах встречаются однотипные участки, которые выполняют одни и те же вычисления с различными данными. Такие части программ целесообразно выполнять с помощью подпрограмм.

Использование подпрограмм позволяет:

Таким образом, подпрограмма – это часть операторов программы, выделенных в группу, оформленную в виде отдельной конструкции.

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

Структура подпрограмм

Структура подпрограмм почти в точности повторяет структуру всей Pascal-программы.

При описании подпрограммы в общем случае необходимо задать три основные компоненты:

Интерфейс подпрограммы содержится в заголовке и говорит о том, что именно делает подпрограмма.

Две остальные компоненты называются телом подпрограммы и содержат информацию о том, как выполняется подпрограммой то, что описано в ее заголовке.

В языке Pascal выделяют два вида подпрограмм: процедуры и функции. Различия процедур и функций заключается в назначении и способе их использования.

Функции нужны для вычисления нового значения некоторого выражения, и вызов функции должен быть операндом в выражении.

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

Описание процедур и функций. Формальные параметры

Описание процедур и функций в общем виде:

Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре

Тело подпрограммы – это блок, состоящий из двух частей: описание объектов и группа операторов. Более полный общий вид процедуры (общий вид функции отличается только заголовком):

Здесь — имя процедуры.

Раздел описаний, как и в основной программе, может включать разделы Label, Const, Type, Var и раздел процедур и функций.

Формальные параметры представляют собой список переменных с указанием их типа, которые отделяются друг от друга «;». Эти переменные не описываются в разделе описания процедур. Допускается использование процедур без параметров.

Если в качестве параметров используется массив, то предварительно нужно описать имя типа массива в разделе Type, а затем использовать это имя при описании массива в качестве формального параметра.

Параметры процедур бывают двух типов:

Описание входных параметров процедуры в списке формальных параметров имеет также вид:

Список переменных1: тип1; список переменных2: тип2;

Соответственно описание выходных параметров выглядит следующим образом:

Var Список переменных1: тип1; Var список переменных2: тип2;

Вызов процедуры в основной программе имеет следующий вид:

(список фактических параметров);

Фактические параметры перечисляются через запятую, без указания их типа. Идентификаторы формальных параметров можно считать условными обозначениями в теле подпрограммы тех реальных, фактических параметров, с которыми будет вызвана подпрограмма. При этом должны выполняться требования:

Имена соответствующих фактических и формальных параметров могут быть одинаковыми или разными.

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

Другой вид подпрограммы в языке Турбо-Паскаль – функция – оформляется аналогично процедуре и отличается от нее по структуре только заголовком, общий вид которого выглядит следующим образом:

Function (список формальных параметров): тип;

Функции имеют несколько отличительных особенностей:

Область действия имен

Переменные, представленные в разделе описания основной программы, могут быть использованы в теле основной программы и в любой ее подпрограмме. Эти переменные называются глобальными.

Переменные, описанные в подпрограмме, действуют только в теле данной подпрограммы и в любой, объявляемой внутри нее, подпрограмме. Такие переменные называются локальными. Они недоступны для операторов основной программы и др. подпрограмм.

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

Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть фото Каким символом разделяются перечень однотипных формальных параметров в процедуре. Смотреть картинку Каким символом разделяются перечень однотипных формальных параметров в процедуре. Картинка про Каким символом разделяются перечень однотипных формальных параметров в процедуре. Фото Каким символом разделяются перечень однотипных формальных параметров в процедуре

Самый внешний блок программы обозначен буквой A (имена этого блока «видны» во всех остальных блоках), B и D – подпрограммы, описанные во внешнем блоке, C – подпрограмма, описанная в блоке B (объекты этого блока известны только внутри самого блока).

При написании программ, имеющих вложенные подпрограммы, необходимо соблюдать следующие правила:

Использование процедур и функций на примере

Пример 1: вычислить площадь выпуклого четырехугольника

В результате выполнения данной программы на экран будет выведено:

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *