Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Стандартные и пользовательские процедуры




Begin

End.

End.

Begin

End.

Begin

Begin

End.

Begin

End.

Begin

End.

Begin

End.

Begin

Begin

Begin

Then

Begin

Then

End.

Begin

Begin

For J:=l To JMax Do

Write(Mas[I,J]:6);

WriteLn

End;

После печати очередной строки матрицы оператор WriteLn без параметров переведет курсор в начало новой строки. Следует заметить, что в последнем примере матрица на экране будет получена в естественной форме прямоугольной таблицы, если JMax не превышает 12 (сами подумайте почему).

Рассмотрим несколько примеров типовых программ обработки массивов.

 

Пример. Вернемся к массиву среднемесячных температур Т [ 1.. 12]. Требуется вычислить среднегодовую температуру, а также ежемесячные отклонения от этой величины.

Program Example;

Const N = 12;

Type Vec=Array [1..N] Of Real;

Var T,Dt: Vec;

St: Real;

I: Integer;

Begin {Ввод исходных данных}

WriteLn('Вводите таблицу температур');

For I:=l To N Do

Write (I: 2, ':');

ReadLn(T[I])

End;

{Вычисление средней температуры}

St:=0;

For I:=l To N Do

St:=St+T[I];

St:=St/N;

{Вычисление таблицы отклонений от среднего}

For I:=l To N Do

Dt[I]:=T[I]-St;

{Вывод результатов}

WriteLn('Средняя температура равна',St:6:2);

WriteLn;

WriteLn('Отклонения от средней температуры:');

For I:=l To N Do

WriteLn (1:1, ':',Dt[I]:6:2)

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

Пример. Выбор максимального элемента. Пусть из рассмотренного выше массива температур требуется отобрать самую высокую температуру и номер месяца, ей соответствующего. Идея алгоритма решения этой задачи: чтобы получить максимальную температуру в вещественной переменной TMax, сначала в нее заносится первое значение массива T [ 1 ]. Затем поочередно сравнивается значение TMax с остальными элементами массива температур, и каждое значение большее, чем TMax, присваивается этой переменной. Для получения номера самого теплого месяца в целой переменной NumMax в нее следует каждый раз засылать номер элемента массива температур одновременно с занесением в TMax его значения.

ТМах:=Т[1];

NumMax:=1;

For I:=2 To 12 Do

If T[I]>Tmax

TMax:=T[I];

NumMax:=I

End;

Заметим, что если в массиве температур несколько значений, равных максимальному, то в NumMax будет получен первый номер из этих элементов. Чтобы получить последнюю дату, нужно в операторе if заменить знак отношения > на >=.

Пример. Сортировка массива. В одномерном массиве X из N элементов требуется произвести перестановку значений так, чтобы они расположились по возрастанию, т.е. X1≤X2≤…≤XN

Существует целый класс алгоритмов сортировки. Ниже описан

алгоритм, который называется «метод пузырька». Идея: производится последовательное упорядочивание смежных пар элементов массива: Х1 и Х2, Х2 и Х3,..., XN-1 и XN. В итоге

максимальное значение переместится в XN. Затем ту же процедуру повторяют до XN-1 и т.д., вплоть до цепочки из двух элементов Х1 и Х2. Такой алгоритм будет иметь структуру двух вложенных циклов с внутренним циклом — переменной (сокращающейся) длины.

For I:=l To N-l Do

For K:=l To N-I Do

If Х[К]>Х [K+l]

А:=Х[К];

Х[К]:=Х[К+1];

Х[К+1]:=А

End;

Пример. Дан описанный выше двумерный массив среднемесячных температур за 10 лет. Определить, в каком году было самое теплое лето, т.е. в каком году была наибольшая средняя температура летних месяцев. Идея решения: в векторе S получить средние температуры летних месяцев за 10 лет. Затем найти номер наибольшего элемента в

этом векторе, это и будет искомый год.

 

Program Example_2;

Type Month=Array[l..12] Of Real;

Year=Array[1981..1990] Of Month;

Var H: Year;

S: Array [1981..1990] Of Real;

I,J,K: Integer;

Begin {Ввод данных с клавиатуры}

For I:=1981 To 1990 Do

For J:=l To 12 Do

Write(J:2, ‘.’,1:4, ':');

ReadLn(H[I,J])

End;

{Вычисление вектора средних летних температур)

For I:=1981 To 1990 Do

S[I]:=0;

For J:=6 To 8 Do

S[I]:=S[I]+H[I, J];

S[I]:=S[I]/3

End;

{Определение года с самым теплым летом)

К:=1981;

For I:=1982 То 1990 Do

If S[I]>S[K] Then K:=I;

WriteLn('Самое теплое лето было в',К, '-м году')

 

Тема 2.4 Строки, множества, записи.

 

Строка – это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется её длиной. Длина строки может находится в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными.

Строковая константа есть последовательность символов, заключение в апострофы. Например:

 

' Язык программирования ПАСКАЛЬ ',

' IBM PC – computer ',

' 33-45-12 '.

 

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

 

Var <идентификатор>: String[<максимальная длина строки>]

Например:

Var Name: String[20]

Параметр длины может и не указываться в описании. В таком случае подразумевается, что он равен максимальной величине – 255. Например:

 

Var slovo: String

Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Дело в том, что один (нулевой) байт содержит значение текущей длины строки. Если строковой переменой не присвоенное не какого значения, то ее текущая длина ровна нулю. По мере заполнения строки символами ее текущая длина возрастает, но она не должна превышать максимальной по описанию величины.

Символы внутри строки индексируются (нумеруются) от единицы. Каждый отдельный символ идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например:

 

Name [5], Name [i], slovo [k+l].

 

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

Тип String и стандартный тип char совместимы. Строки и символы могут употребляется в одних и тех же выражениях.

Строковые выражения строятся и строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.

Операции сцепления (+) применяется для соединения нескольких строк в одну результирующею строку. Сцеплять можно как строковые константы, так и переменные.

Например:

‘ЭВМ’ + ‘ЧВМ’ + ‘РС’.

В результате получится строка:

‘ЭВМ IBM PC’

Длина результирующей строки не должна превышать 255.

Операции отношения =, <, >, <=, >=, <> производят сравнение двух строк, в результате чего получается логическая величина (True или False). Операция отношения имеет более низкий приоритет, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и больше считается та строка, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки.

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

Пример:

Выражение Результат

‘cosm1’<’cosm2’ True

‘pascal’>’PASCAL’ True

‘Ключ_’<>’Ключ’ True

‘MS DOS’=’MS DOS’ True

Функция copy (S, POZ, N) выделяет из строки S подстроку длиной в N символов, начиная с позиции POZ.N и POZ – целочисленные выражения.

Например:

Значение S Выражение Результат

‘ABCDEFG’ Copy(S, 2,3) ‘BCD’

‘ABCDEFG’ Copy(S, 4,4) ‘DEFG’

 

Функция Concat (S1,S2,…,SN) выполняет сцепление (конкатенацию) строк S1,..., SN в одну строку.

Пример:

Выражение Результат

Concat (’А А ‘, ’X X ‘, ’Y ‘) ‘AAXXY’

 

Функция Length (S) определяет текущую длину строки s. Результат – значение целого типа.

Пример:

Значение S Выражение Результат

‘t e s t - 5‘ Length (S) 6

‘(А+В) *С’ Length (S) 7

 

Функция POS (S1, S2) обнаруживает первое появление в строке S2 подстроки S1. Результат – целое число, равное номеру позиции, где находится первый символ подстроки S1.

Если в строке S2 подстроки S1 не обнаружено, то результат равен 0.

Пример:

Значение S2 Выражение Результат

‘abcdef’ Pos (‘cd’, S2) 3

‘abcdcdef’ Pos(‘cd’,S2) 3

‘abcdef’ Pos(‘k’,S2) 0

 

Процедура Delete (S, Poz, N) выполняет удаление N символов из строки S, начиная с позиции Poz.

Пример:

Исходное значение S Оператор Конечное значение S

‘abcdefg’ Delete(S,3,2) ‘abefg’

‘abcdefg’ Delete(S,2,6) ‘a’

В результате выполнения процедуры уменьшается текущая длина строки в переменной S.

 

Процедура insert (SI, S2, Poz) выполняет вставку строки SI

в строку S2, начиная с позиции Poz.

Пример:

Начальное S2 Оператор Конечное S2

‘ЭВМ PC’ Insert(‘IBM-‘,S2,5) ‘ЭВМ IBM-PC’

‘Рис.2 ‘ Insert(‘N’,S2,6) ‘Рис.N2’

 

Пример. Следующая программа получает из слова «ВЕЛИЧИНА» слово «НАЛИЧИЕ»:

Program Slovo_l;

Var S11,S12: String[10];

S11:=’ВЕЛИЧИНА’;

S12:=Copy(S11,7,2) +Copy(S11,3,4) +S11[2];

WriteLn(S12)

Пример. По следующей программе из слова «СТРОКА» будет получено слово «СЕТКА».

Program Slovo_2;

Var SI: String[10];

S1:=’СТРОКА’;

Delete (S1,3,2);

Insert (‘E’,S1,2);

WriteLn(S1)

Пример. Составим программу, которая формирует символьную строку, состоящую из п звездочек (n — целое число,, ).

Program Stars;

Var A: String;

N,I: Byte;

Write(‘Введите число звездочек’);

ReadLn(N);

A: = ';

For I:=1 To N Do

A:=A+’*’;

WriteLn(A)

Здесь строковой переменной А вначале присваивается значение пустой строки (‘’). Затем к ней присоединяются звездочки.

 

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

Program С;

Var S: String;

К,I: Byte;

WriteLn(«Введите строку»);

ReadLn(S);

K:=0;

I:=1;

While (I=Length(S)) And (S[I]<>’!’) Do

If (S[I]>='0') And (S[i]<='9')

Then K:=K+1;

I:=I+1

End;

WriteLn (‘Количество цифр до символа «!» равно’,К)

В этой программе переменная K играет роль счетчика цифр, а переменная I роль параметра цикла. Цикл закончит выполнение при первом же выходе на символ! или, если в строке такого символа нет, при выходе на конец строки. Символ S [I] является цифрой, если истинно отношение: 0<S[1]<9.

 

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

В отличие от элементов массива от элементы множества не пронумерованы, не упорядочены. Каждый отдельный элемент множества не идентифицируется, и с ним нельзя выполнить какие-либо действия. Действия могут выполняться только над множеством в целом. Тип элементов множества называется базовым типом. Базовый тип может быть любым скалярным, за исключением типа Real.

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

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

[3,4,7,9,12]- множество из пяти целых чисел

[1…100]- множество целых чисел от 1 до 100;

[‘a’,’b’,’c’]- множество, содержащее три литеры a, b, с;

[‘A’…’Z’,’?’,’!’]- множество, содержащее все прописные латинские буквы, а также знаки? и!.

Символы [] обозначают пустое множество, т.е. множество, не содержащее никаких элементов.

Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1,2,3] и [3,2,1]эквивалентные множества.

Каждый элемент в множестве учитывается только один раз. Поэтому множество [ 1, 2, 3, 4, 2, 3, 4, 5 ] эквивалентно [ 1.. 5 ].

Переменные множественного типа описываются так:

Var <идентификатор>: Set Of <базовый тип>

Например:

Var A,D: Set Of Byte;

В: Set Of ' a '.. ' z ';

C: Set Of Boolean;

Нельзя вводить значения во множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания следующего формата:

<Множественная переменная>: = <множественное выражение>

Например:

А: = [ 50, 100, 150, 200 ];

B: = [' m', ' n ', ' k ' ];

C: = [ True, False ];

D: =A;

 

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

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

Объединение множеств. Объединением двух множеств Ан В называется множество, состоящее из всех элементов, принадлежащих хотя бы одному из множеств А или В. Знак операции объединения в Паскале +.

Например:

[ 1, 2, 3, 4 ] + [ 3, 4, 5, 6 ] → [ 1, 2, 3, 4, 5, 6]

 

Пересечение множеств. Пересечением двух множеств А и В называется множество, состоящее из всех элементов принадлежащих, одновременно множеству А и множеству В

Знак операции пересечения в Паскале *.

Например:

[ 1, 2, 3, 4 ] * [ 3, 4, 5, 6 ] → [ 3, 4 ]

Разность множеств. Разностью двух множеств А и В называется множество, состоящее из элементов множества А, не принадлежащих множеству В (см. рис. 34, в).

Например:

[ 1, 2, 3, 4 ] - [ 3, 4, 5, 6 ] → [ 1, 2 ]

[ 3, 4, 5, 6 ] - [ 1, 2, 3, 4 ] → [ 5, 6 ]

Очевидно, что операции объединения и пересечения — перестановочны, а разность множеств — не перестановочная операция

Операции отношения. Множества можно сравнивать между собой, т.е. для них определены операции отношения. Результатом отношения, как известно, является логическая величина true или false. Для множеств применимы все операции отношения, за исключением > и <. В таблице описаны операции отношения над множествами. Предполагается, что множества А и В содержат элементы одного типа.

 

Отношения Результат
True False
А = В А<> В А<= В А>= В Множества А и В совпадают Множества А и Вне совпадают Все элементы А принадлежат В Все элементы В принадлежат А В противном случае В противном случае В противном случае В противном случае

 

Примеры использования операций отношения.

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

Var M: Set of Byte;

В разделе операторов ей присваивается значение:

М:=[3,4,7,9];

Тогда операции отношения дадут следующие результаты:

М=[4,7,3,3,9] - true

M<>[7,4,3,9] - true

[3,4]<=М - true

[]<=М - true

М>=[1..10] - true

М<=[3..9] - true

Операция вхождения. Это операция, устанавливающая связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества. Если х — такая скалярная величина, а м — множество, то операция вхождения записывается так:

х in м

Результат - логическая величина true,если значение х входит в множество м, и false- в противном случае для описного выше множества

4 in м – true

5 in м – false

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

Пример. Дана символьная строка. Подсчитать в ней количество знаков препинания (.-,;:!*?).

Program p1;

Var s: string; I.,K: byte;

Readln(s); k:=0;

For i:=1 to length(s) do

If s[i] in [‘.’,’-’,’,’,’;’,’:’,’!’,’*’,’?’]

Then K:=K+1;

WriteLn (‘Число знаков препинания равно’, K)

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

(S [ I] = ‘. ‘) or (S[i] = ' - ') и т.д. Использование множества сокращает запись.

Пример. Даны две символьные строки, содержащие только строчные латинские буквы. Построить строку S3, в которую войдут только общие символы S1 и S2 в алфавитном порядке и без повторений.

Program p2;

Type Mset= Set Of ‘a’.. ‘z’;

Var S1, S2, S3: String;

MS1, MS2, MS3: Mset;

C: Char;

Procedure SM (S: String; Var MS: Mset);

{Процедура формирует множество MS, содержащее все символы строки S}

Var I: Byte;

Begin MS:=[];

For I:=l To Length(S) Do

MS:=MS+[S[I]];

End;

Begin {Ввод исходных строк}

ReadLn(Sl);ReadLn(S2);

{Формирование множеств MS1 и MS2 из символов строк S1 и S2}

SM(S1,MS1);

SM(S2,MS2);

{Пересечение множеств - выделение общих элементов в множество MS3}

MS3:=MS1*MS2;

{Формирование результирующей строки S3}

S3:='';

For С:='а' То 'z' Do

If С In MS3 Then S3:=S3+C;

WriteLn('Результат:',S3)

 

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

 

 


Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа Record (запись). Задать тип и описать соответствующую переменную можно следующим образом:

 

Type Anketal=Record

FIO: String[50]; {поля}

Pol: Char;

Dat: String[16]; {записи}

Adres: String[50]

Curs: 1..5; {или элементы}

Grup: 1..10;

Stip: Real {записи}

End;

Var Student: Anketa1;

 

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

<имя переменной>.<имя поля>

Например, student. f io; student. dat и т.п. Если, например, требуется полю курс присвоить значение 3, то это делается так:

Student.Curs:=3;

 

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

 

 


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

 

Type Anketa2=Record

FIO: S t r i n g [ 5 0 ];

Pol: Char;

Dat: Record

God: I n t e g e r;

Mes: S t r i n g [ 1 0 ];

Den: 1..31;

End;

Adres: Record

Gorod: S t r i n g [ 2 0 ];

UlDomKv: S t r i n g [ 3 0 ];

End;

Curs: 1..5;

Grup: 1.. 1 0;

S t i p: Real;

End;

Var Student: Anketa2;

 

Поля такой записи, находящиеся на третьем уровне, идентифицируются тройным составным именем. Например, s t u d e n t. D a t. G o d; student.Adres.Gorod. Приведем структурограмму задания комбинированного типа.

 

<комбинированный тип>

Record <Список полей> End

 

<Список полей>

< Имя поля> <Тип>

 

 

В программе могут использоваться массивы записей. Если на факультете 500 студентов, то все анкетные данные о них можно представить в массиве:

Var Student: Array [1..500] Of Anketal;

В таком случае, например, год рождения пятого в списке студента хранится в переменной student [5].Dat.God.

 

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

 

For I:=l То 500 Do

With Student[I] Do

Write('Ф.И.О.:'); ReadLn(FIO);

Write('Пол (м/ж):'); ReadLn(Pol);

Write("Дата рождения:'); ReadLn(Dat);

Write('Адрес:'); ReadLn(Adres);

Write('Курс:'); ReadLn(Curs);

Write('Группа:'); ReadLn(Grup);

Write('Стипендия (руб.):'); ReadLn(Stip)

End;

 

В этом примере использован оператор присоединения, который имеет следующий вид:

With <переменная типа запись> Do <оператор>;

 

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

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

 

Тема 2.5 Процедуры и функции

 

 

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

Для более эффективной разработки программ, содержащих такие повторяющиеся действия, введен механизм подпрограмм.

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

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

В PASCAL для организации подпрограмм используются процедуры и функции. Заметим, что в отличие от некоторых других языков высокого уровня, например, С («си»), в которых существуют только функции, в языке Pascal используются два механизма.

 

Процедура предназначена для выполнения некоторых действий.

Функция аналогична процедуре, но имеет два отличия:

1) Функция передает в точку вызова значение (результат своей работы);

2) Имя функции может входить в выражение как операнд.

 

Все процедуры и функции в Pascal подразделяются на:

§ Стандартные (встроенные, реализованные разработчиками системы программирования)

§ Пользовательские (разрабатываемые самим программистом)

Встроенные программы – это часть языка.

Они могут вызываться без предварительного определения в разделе описаний, вызываются по строго фиксированному имени, хранятся в библиотеках подпрограмм (в стандартных модулях). Например, в модулях Opcrt, System, Graph.

Пример стандартных подпрограмм – это процедуры и функции для работы со строками, арифметические функции, подпрограммы для работы с экраном, для построения графических изображений и многие другие.

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

 

Со стандартными процедурами мы уже встречались не один раз.

Примеры стандартных процедур

Clrscr;

Delline;

Nosound;

Hightvideo.

Это процедуры БЕЗ параметров.

 

Gotoxy (x, y:byte);

Sound (I:word);

Read (CON, v1, v2, …)

Это процедуры С параметрами.

 

До использования в программе процедура должна быть описана, лучше в разделе описаний (сразу после описаний переменных).

 

Процедура состоит из заголовка и теле процедуры;

По структуре процедура аналогична программе.

Тело процедуры – это локальный блок.

 




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 617; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.224 сек.