КАТЕГОРИИ: Архитектура-(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) |
Подпрограмма-функция
Подпрограмма-процедура Любая процедура начинается с заголовка. В отличие от основной программы заголовок в процедуре обязателен. Общий вид заголовка: procedure <имя процедуры> ( <формальные параметры>: <тип> ); За заголовком могут идти такие же разделы, что и в основной программе. В отличие от основной программы процедура завершается точкой с запятой. В качестве результата процедура может возвращать в вызывающую программу множество простых или структурированных величин. Параметры, передающие результаты работы процедуры, должны быть обязательно параметрами–переменными. Разрешается описывать процедуры без формальных параметров, тогда организация передачи информации из программы в процедуру и обратно проводится с помощью глобальных переменных, а заголовок процедуры будет иметь более простой вид: procedure <имя процедуры> ; Для вызова процедуры из основной программы или другой подпрограммы следует записать имя процедуры и список фактических параметров. Например: Streug(a,b,c,s); Streug(a/b,c+5,7,s1);. Вызов процедуры без формальных параметров осуществляется по имени. Пример 1. Даны два массива из N целых элементов из интервала [-20,20]. В каждом массиве найти максимальный элемент и затем сравнить их. Program SravMas; {сравнение максимальных и минимальных элементов} Const n=15; Type massiv=Array[1..n] оf Integer; Var m1, m2: massiv; max1, max2: Integer; { процедура заполнения матрицы случайными числами } Procedure RandomMas(Var x:massiv); Var i:Integer; Begin Randomize; For i:=1 To n Do x[i]:= -20+Random(41); End; { процедура вывода матрицы } Procedure VivodMas(Var x:massiv); Var i:Integer; Begin For i:=1 To n Do write(x[i]:5); End; { процедура нахождения максимального элемента матрицы } Procedure MaxMas(Var x:massiv; Var MX:Integer); Var i:integer; Begin MX:=x[1]; For i:=2 to n do if x[i]>MX then MX:=x[i]; End; { основная программа } Begin RandomMas(m1); Writeln('Первый массив:'); VivodMas(m1); RandomMas(m2); Writeln('Второй массив:'); VivodMas(m2); {вызов процедуры нахождения максимального элемента} MaxMas(m1,max1); MaxMas(m2, max2); if max1>max2 then writeln('В 1-м массиве максимальный элемент больше и =',max1) else if max1<max2 then writeln('Во 2-м массиве максимальный элемент больше и=',max2) else writeln('В обоих массивах максимальные равны ',max1); End. Подпрограмма-функция вычисляет одно единственное значение, которое передается через ее имя. Блок функции может содержать все разделы, которые могут быть в процедурах. Основные отличия функции от процедуры: 1. Заголовок функции состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного строкового типа string, любого указателя. 2. В теле функции хотя бы раз имени функции должно быть присвоено значение: <имя функции>:= <результат>;. 3. Функция вызывается в каком-нибудь выражении. Пример 2. Составить программу табулирования функции на отрезке с шагом h. Program pr_2; Var a,b,h,x: real; Function f(t: real): real; Begin f:=t*cos(t); End; Begin Write('Введите начало и конец отрезка: '); Readln(a,b); Writeln('Введите шаг табуляции: '); Readln(h); Writeln('Аргумент Функция f(x)=x cos(x) '); x:=a; Repeat writeln(x:6:3, f(x):20:3); x:=x+h; Until x>b; End.
Дата добавления: 2015-05-10; Просмотров: 476; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |