36567

Параметры-процедуры и параметры-функции. Процедурный тип

Контрольная

Информатика, кибернетика и программирование

Описание процедурных типов имеет форму заголовка процедуры или функции с опущенным её именем: type имя процедурытипа = procedure список формальных параметров ; type имя функциитипа = function список формальных параметров : тип ; Например: type fun =function x:rel:rel; При описании подпрограммы с процедурными параметрами такие параметры указываются формальным именем и соответствующим процедурным типом. Пример процедуры использующей описанный выше процедурный тип fun: procedure print_f n:byte; f:fun; const count = 20; vr X:rel;...

Русский

2013-09-22

30.5 KB

4 чел.

Параметры-процедуры и параметры-функции. Процедурный тип.

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

Процедурный тип - тип, представляющий семейство процедур или функций для их использования в программе. Как и любой тип Турбо Паскаля, процедурный тип должен быть описан, а затем может быть использован для работы с переменными процедурного типа (или константами). Описание процедурных типов имеет форму заголовка процедуры (или функции) с опущенным её именем:

type < имя процедуры-типа> = procedure ( <список формальных параметров>);

type < имя функции-типа> = function( <список формальных параметров>):<тип>;

Например: type fun =function (x:real):real;

При описании подпрограммы с процедурными параметрами такие параметры указываются формальным именем и соответствующим процедурным типом.

Пример процедуры, использующей описанный выше процедурный тип fun:

procedure print_f (n:byte; f:fun);

const count = 20;

var X:real; j:integer;

begin window(n, 1, n+20, 25);

for j:=1 to count do begin X:=j*(2*pi/count);writeln(X:5:3, f(x):5:5) end

end {print_f};

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

program grid_functions; { Печать таблицы значений 2-х функций }

uses CRT;

type fun =function (x:real):real;

function sint(x:real):real; {функция sin(x) }

begin sint:=sin(x)

end {sint};

function expcos(x:real); {функция (cos(x)+1)*exp(-x)}

begin expcos:= (cos(x)+1)*exp(-x)

end {expcos};

procedure print_f (n:byte; f:fun); { печать значений функции f}

const count = 20;

var X:real; j:integer;

begin window(n, 1, n+20, 25);

for j:=1 to count do begin X:=j*(2*pi/count);writeln(X:5:3, f(x):5:5) end

end {print_f};

BEGIN { Основная программа } ClrScr;

print_f(1, sint); writeln;

print_f(30, expcos);writeln

END { grid_functions}.

Задача 4.2.6(5)

program alex5;

const n=4;

type mas=array[1..n,1..n]of integer;

var a:mas;

i,j,m:integer;

procedure proc(x:mas;k:integer;var l:integer);

var i:integer;

begin

l:=0;

for i:=1 to n do

if x[i,k]=0 then l:=l+1;

end;

begin

for i:=1 to n do

for j:=1 to n do

read(a[i,j]);

for j:=1 to n do

begin

proc(a,j,m);

if m>0 then for i:=1 to n do

writeln(a[i,j]);

end;

if m=0 then writeln('net stolbcov s nulami');

readln;

readln;

readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

10601. Нагрев неограниченного цилиндра 67.29 KB
  Нагрев неограниченного цилиндра Решение задачи нагрева цилиндра произведем с помощью преобразования Ханкеля 81 Краевые условия Tr0=fr...
10602. Нагрев цилиндра конечных размеров 86.09 KB
  Нагрев цилиндра конечных размеров. Если имеется симметрия относительно оси z то оператор тождественно равен нулю тогда получим Рассмотрим решение уравнения для конечного цили...
10603. Численные методы решения тепловой задачи. Метод конечных разностей 218 KB
  Численные методы решения тепловой задачи. Метод конечных разностей Многие математические модели описываются дифференциальным уравнением или системой дифференциальных уравнений с краевыми условиями первого второго и третьего рода. Точное решение краевых задач уд...
10604. Метод граничных элементов 353 KB
  Метод граничных элементов Приводятся фундаментальные решения для ортотропных и анизотропных областей и показывается что все положения обсуждавшиеся в предыдущих разделах справедливы также и для бесконечных областей при выполнении определенных условий регулярно...
10605. Метод конечных элементов. Прямое построение глобальной матрицы жесткости 124.5 KB
  Метод конечных элементов Прямое построение глобальной матрицы жесткости Метод построения глобальной матрицы жесткости весьма неэффективен при использовании цифровой вычислительной машины. Эта неэффективность объясняется тем что матрица жесткости отдельного эл...
10606. Решение МКЭ тепловой задачи для цилиндра. Алгоритм расчета 635.5 KB
  Решение МКЭ тепловой задачи для цилиндра. Алгоритм расчета Математическая модель линейной задачи теплопроводности с внутренним тепловыделением в цилиндрических координатах имеет вид: 1 с граничными условиями:
10607. Электродуговой нагрев. Общие положения. Постановка тепловой задачи. Методы решения. Устойчивость дуги 292.5 KB
  Электродуговой нагрев. Общие положения. Постановка тепловой задачи. Методы решения. Устойчивость дуги Электрическая дуга представляет собой один из видов электрических разрядов в газах при котором наблюдается прохождение электрического тока через газовый промежут...
10608. Электроэрозионная обработка материалов. Теория электротепловых процессов 79.5 KB
  Электроэрозионная обработка материалов. Теория электротепловых процессов Производительность и точность электроискровой обработки чистота обработанной поверхности определяются многими факторами. Важнейшими из них являются параметры электрической схемы обуслов
10609. Особенности цифрового управления процессами 196.25 KB
  Исторический обзор. Понятие системы. Особенности цифрового управления процессами Первый пример практического применения управляющей ЭВМ относится к 1959 году он связан с работой нефтехимического завода компании Texaco в городе Порт Артур штат Техас. Компания Texaco выпо...