Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Close(f)

End.

End

Begin

End.

Date_Time

Begin

Begin

Readln END.

Begin

Readln(S_t)

Описание функций и процедур

Рекурсивные функции и процедуры

Описание функций и процедур


Модули System, Crt, Graph

Procedure Name_P(p1, p2,...:"тип"; Var p3, p4,...: "тип";...);

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

где Function и Procedure - служебные слова,

Name_F, Name_P - имена функции и процедуры соответственно,

p1, p2 - имена формальных параметров-значений,

p3, p4 - имена формальных параметров-переменных,

Type M= array[1..100]of real;

Procedure Name_P(p: M);

Name_P(p11, p22,..., p33, p44,...); - вызов процедуры Name_P,

Y:= Name_F("список фактических параметров"): - вызов функции Name_F,

Здесь p11, p22,... - имена или значения переменных,

p33, p44,... - имена переменных, значения которых возвращаются в программу.

Y - переменная, которой присваивается значение возвращаемое функцией.


Пример процедуры вывода на экран визитной карточки, Фрагмент 1

Program NP_1;

Var Dat, Fam: string; { Fam: глобальная переменная }

Procedure VIZ(D_R:string); { D_R - формальный параметр }

Var S_t: string; { S_t: локальная переменная }

Begin Writeln('|-------------------------------------------------|');

Writeln('|Разработчик программы:',Fam:14,' |');

Writeln('| |');

Writeln('| г. УФА, ', D_R:14,' |');

Writeln('|Телефон:22-44-66 |');

Writeln('| ----------------------------------------------------|');

Write(' Комментарий: ');

end;

Fam:='И.И.Иванов';

Dat:='06.12.95'; {Dat - фактический параметр }

VIZ(Dat); {вызов процедуры}

 

F_PR. pas

{$I F_PR. pas}

 

Пример использования стандартных процедур модуля DOS для вывода текущей даты и времени, Фрагмент 2:

uses DOS; { подключение модуля DOS }

Procedure Date_Time;

var y, m, d, d_w:word;

h, min, sec, hund: word; {локальные параметры }

GetDate(y,m,d,d_w); {вызов процедуры DOS, возвращающей параметры даты }

GetTime(h,min,sec,hund); { процедура, возвращающая параметры времени }

writeln('сегодня: ');

writeln('_':10, d, ' число');

writeln('_':10, m, ' месяц');

writeln('_':10, y, ' год');

writeln('день недели: ', d_w); { d_w= 0 - воскресенье, и т. д. }

writeln('Время: ');

writeln('_':6, h, ' часов');

writeln('_':6, min, ' минут');

writeln('_':6, sec, ' секунд'); readln

end;

Пример процедуры расчета "N" значений функции Y= 4*Sin(x)+7*Cos(x); в заданном диапазоне x1<=x<=x2, при N<=100 и равномерной разбивке диапазона, Фрагмент 3.

type r_1000= array[1.. 1000] of real; {задается тип r_1000}

var Z: r_1000; x1, x2: real; n: word;

Procedure Mas_Y(var Y:r_1000; x1,x2:real; n:word); {Y - параметр-переменная}

var i: word; x, dx: real; { локальные параметры }

If (n>1000) or (n<2) then begin

writeln('Длина массива >1 и не должна превышать 1000');

Readln; Halt end;

i:=0; x:=x1; dx:=(x2-x1)/(n-1); { dx - шаг изменения аргумента }

If dx<= 0 then begin

writeln('x2 должно быть больше x1'); Readln; Halt end;

While x<x2 do begin

i:=i+1; x:=x1+dx*(i-1); Y[i]:=4*Sin(x)+7*cos(x)

end;

begin Writeln('Введите значения х1,х2, (x2>x1)'); Readln(x1, x2);

Writeln('Введите значение 1 <n<= 1000 '); Readln(n);

Mas_Y(Z, x1, x2, n); { вызов процедуры, возвращающей массив "Z" }

 

 

Пример процедуры вывода массива чисел в файл, Фрагмент 4:

Type M_30х30_r= array[1..30, 1..30] of real;

{ задается тип M_30х30_r }

var x: M_30х30_r; i, j, n, m: byte;

{---------------------------------------------------}

Procedure Wr_M(a: M_30х30_r; name_f: string; n, m: byte);

Var i, j: byte; { a - массив NxM, n<=30, m<=30 }

f: text; { name_f - имя файла }

begin assign(f, name_f); rewrite(f);

For i:= 1 to n do begin writeln(f);

For j:= 1 to m do write(f, a[i,j]:6:2) end;

end;

{---------------------------------------------------}

Begin N:= 10; { создание симметричной матрицы }

for i:= 1 to N do for j:= i to N do

x[i, j]:= 0.5 + random(50); { заполнение верхней треугольной матрицы }

for i:= 1 to N do for j:= i to N do

x[j,i]:= x[i,j]; { заполнение нижней, симметричной части матрицы }

Wr_M(x, 'file_1.out', N, N); { вызов процедуры записи массива в файл }

<== предыдущая лекция | следующая лекция ==>
Установка атрибутов файла | Рекурсивные функции и процедуры
Поделиться с друзьями:


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


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



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




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