Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование с использованием функций
И процедур
При решении различных задач может возникнуть необходимость проводить вычисления по одним и тем же алгоритмам. В языке Паскаль предусмотрена возможность объединения любой последовательности операторов в подпрограмму. Выделяют два вида подпрограмм: процедуру (Procedure) и функцию (Function).
Функции Функция – это группа операторов, в результате выполнения которых вычисляется одно значение, присваиваемое имени функции. Описание функций включает заголовок; раздел описаний; блок операторов функции:
function имя функции (формальные параметры): тип; Раздел описаний Begin Раздел операторов Имя функции:= результат end; Особенности использования функции: – функция располагается после раздела var основной программы и до раздела begin основной программы; – обращение к функции осуществляется в операторе присваивания или вывода y:=f (b1, b2, …); – функция имеет единственный результат, который передается через имя функции (присваивается имени функции); – формальные параметры указывают в любом порядке, например: function sum (k:real; f: integer; r: real): real; function sum (k, r: real; f: integer): real; – формальные и фактические параметры должны соответствовать по количеству, порядку следования и типу; – тип массива, передаваемого в функцию, должен быть описан в разделе type основной программы.
Пример 1. Определить число сочетаний, используя функцию для вычисления факториала. С =N! / M!(N – M)!.
Var c: real; n, m, l: integer;
function Fact (k: integer): real; Var i: integer; p: real; Begin p: =1 ; for i:=1 to k do p:= p*i; Fact:= p; end;
Begin Write (‘Введите n, m =>’); ReadLn (n, m); if n > m then Begin l:=n – m; c:= Fact (n) /Fact (m) / Fact (l); WriteLn (‘Число сочетаний =’, c:12:1); end; Else WriteLn (‘Нельзя вычислить’); End.
Пример 2. Вычислить функцию y. Для вычисления суммы использовать функцию. y= ax + bx +c, где а= , b= , c= . Type mas=array[1..12] of real;
Var p, t, r:mas; i:integer; x, y:real;
function Sum (z: mas; k:integer): real; Var s:real; j: integer; Begin s:= 0; for j:= 1 to k do s:= s+z[j]; Sum:= s end;
Begin Write (‘Введите х=>’); ReadLn (x); WriteLn (‘Введите р[8]’); for i:= 1 to 8 do Read (p[i]); ReadLn; WriteLn (‘Введите т[10]’); for i:= 1 to 10 do Read (t[i]); ReadLn; WriteLn (‘введите r[12]); for i:= 1 to 12 do Read (r[i]); ReadLn; y:=Sum (p, 8)*x*x+Sum (t, 10)*x+Sum (r,12); WriteLn (‘y=’, y:15:3); End.
Пример 3. Найти максимальный элемент отдельно в массивах А(10), В(20) среди тех элементов, которые принадлежат отрезку (С, D), используя функцию. Для каждого массива задать свой отрезок. Найти среди найденных элементов наибольший.
Type ms=array[1..20] of real;
Var a, b:ms; ca, da, cb, db, amax, bmax: real; i: integer;
function Max (x: ms; n: integer; c1, d1: real):real; Var p, m: real; Begin p:= 0; for i:= 1 to n do if (x[i] >=c1) and (x[i] <=d1) then if p=0 then Begin m:=x[i]; p:=1; End Else if m<x[i] then m:= x[i]; if p=0 then WriteLn (‘Нет элементов из отрезка’) Else WriteLn (‘ max=’, max:5:1); Max:=m; WriteLn (‘Массив’); for i:=1 to n do Write (x[i]:5:1,’_’); WriteLn; end;
{ Основная программа } Begin Write(‘Введите [с, d] для а =>’); ReadLn (ca, da); WriteLn (‘Введите массив а[10] ’); for i:=1 to 10 do Read (a[i]); ReadLn; Write(‘Введите [с, d]’ для в=>); ReadLn (cb, db); WriteLn (‘Введите b [20]’); for i:=1 to 20 do Read (b[i]0; ReadLn; amax:=Max (a, 10, ca, da); bmax:=Max (b, 20, cb, db); if amax>bmax then WriteLn (‘больше элемент из а’); Else WriteLn (‘больше элемент из в’); ReadLn; End.
Пример 4. Даны матрицы D (2, 3), F (4, 5), найти отдельно в каждой матрице количество элементов кратных 7, используя подпрограмму – функцию.
Type matr = array [1..4, 1..5] of integer;
Var d, f: matr; kd, kf, i, j: integer;
function Kol (a:matr; n1, n2: integer): integer; Var k: integer;
Begin k:=0; for i:= 1 to n1 do for j:= 1 to n2 do if a[i, j] mod 7 = 0 then k:= k+1; WriteLn (‘Матрица’); for i:= 1 to n1 do Begin for j:= 1 to n2 do Write (a[i, j]); WriteLn; end; kol:= k; end;
{ Основная программа } Begin WriteLn (‘Введите d[2, 3]’); for i:= 1 to 2 do for j:= 1 to 3 do Read (d[i, j]); ReadLn; kd:= Kol (d, 2, 3); WriteLn (‘kd=’, kd); WriteLn (‘введите f[4, 5]’); for i:= 1 to 4 do for j:= 1 to 5 do Read (f[i, j]); ReadLn; kf:= Kol (f, 4, 5); WriteLn (‘kf=’, kf); End.
|
|||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 324; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.115.120 (0.016 с.) |