![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 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. Определить число сочетаний, используя функцию для вычисления факториала. С
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 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; просмотров: 380; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.221 (0.009 с.) |