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.


 

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

66504. Электроизмерительные приборы, описание устройства, принципа действия и характеристик изучаемых приборов 5.33 MB
  Ознакомиться с классификацией назначением устройством принципом действия и характеристиками основных типов измерительных приборов. По представленным наглядным образцам и макетам уяснить принципы работы приборов и варианты их конструктивного исполнения отразив в отчете их основные технические характеристики.
66506. Тестування моніторів та відеоадаптерів 136 KB
  Крізь металеву маску або грати вони потрапляють на внутрішню поверхню скляного екрану монітора яка покрита різнокольоровими люмінофорними точками. Причини виходу монітора з ладу: Порушення втрата вакууму Часта причина відмови монітора особливо на початку експлуатації походить від того що...
66507. СИНТЕЗ СИСТЕМ УПРАВЛЕНИЯ С ОБРАТНОЙ СВЯЗЬЮ 539.92 KB
  Построим переходные и частотные характеристики непрерывной и дискретной модели: Рис. Переходная характеристика непрерывной системы Рис. Переходная характеристика дискретной системы Рис. Частотные характеристики непрерывной системы...
66509. Проектирование и расчет гидропривода. Элементы гидропривода и гидроавтоматики 327 KB
  Пластинчатый нерегулируемый насос БГ1222М Рабочий объем 16 см3 Номинальная подача 194 л мин Давление на выходе из насоса: номинальное 125 МПа предельное 14 МПа Частота вращения: номинальная 1500 об мин максимальная 1800 об мин минимальная 1200 об мин Мощность: номинальная 565 кВт...
66510. ИНСТРУМЕНТАЛЬНЫЕ И ЛАБОРАТОРНЫЕ МЕТОДЫ ИССЛЕДОВАНИЯ 29.59 KB
  Какие инструментальные методы применяют в акушерстве Из наиболее применяемых методов следует указать: наружную кардиотокографию КТГ кардиография механогис терография актография; ультразвуковое сканирование; допплерографию определение скорости кровотока...
66511. Проектирование баз данных Access 1.36 MB
  Перед созданием реляционной базы данных Access пользователь должен определить, из каких таблиц должна состоять база данных, какие данные автоматизируемой предметной области нужно поместить в каждую таблицу, как связать таблицы.
66512. Логические элементы в Workbench 149.78 KB
  Нарисуем моделируемую схему в программе ElectronicsWorkbench После запуска схемы в логическом анализаторе получили следующее Составим таблицы истинности по 4 значения из логического анализатораи по ним определим название логических элементов...