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.


 

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

56028. Виды упражнений по совершенствованию техники чтения учащихся начальной школы 72.5 KB
  Умения и навыки чтения формируются не только как важнейший вид речевой и умственной деятельности как средство самовоспитания и саморазвития но и как сложный комплекс умений и навыков имеющий...
56029. Скандинавія 57 KB
  Нормани з’являлися біля европейського узбережжя на своїх кораблях під червоними або полосатими парусами зі страшними головами змій чи драконів на кормі. Учні працюють зі слайдом № 5 та відповідають на питання вчителя : Де знаходиться Скандинавський півострів Хто такі нормани Які народи виокремлилися від норманів Чим займалися нормани і чому Як у різних країнах називали цей народ Робота з текстом підручника с. Які були...
56030. Брейн-ринг «Знання – це скарб» 48.5 KB
  Саме для цього потрібно частіше відступати від стандартного методу викладання і шукати нові форми подання навчального матеріалу. Представлення команд супроводжувались презентацією кожного з учасників а щоб раціонально розрахувати людські ресурси ми обрали лише одного ведучого.
56031. Здоров’я – найдорожчий скарб 53.5 KB
  Мета: поглибити поняття про те, що для людини головне – це здоровя. Створити умови для закріплення знань учнів з питань здорового способу життя; розширити поняття про те, що від здоровя дітей залежить здоровя нації, а значить благополуччя і добробут всієї України, її майбутнє.
56032. Здоров`я - це скарб 44 KB
  Unser Zeil ist heute tiber die Rolle des Sportes und tiber die Rolle des Sportes und tiber die gesunde Lebensweise zu sprechen und am Ende der Stunde unseren kleinem Schulem die Vorschl ge zu diesem Thema zu prasentieren.
56033. Від цікавого до складного 78 KB
  Смак до вивчення математики приходить під час розв?язування задач, які потребують логічного мислення, просторової уяви та кмітливості. Таке заняття цікаве, але водночас і складне.
56034. Таємниця острова скарбів 40.5 KB
  Матеріал: лист в конверті карта острова з окремих частин скриня на семи замках ключі від скрині декорації острова іграшкові тварини кросворди загадки кольорові олівці роздатковий матеріал художнє слово.
56035. В пошуках скарбів космічного пірата 57.5 KB
  Діти проговорюючи текст ідуть один за одним і виконують тренувальні вправи готуючись до польоту: Чекають нас ракети Чекають нас планети. Діти розбігаються і попарно займають ракети.
56036. Подорож до казки 52 KB
  Доброго дня, мої дорогі друзі. Ось і знову ми до вас прийшли, казку принесли. Казки наші старовинні - не короткі, не довгі. А ось тепер, друзі дивіться і слухайте. Починаємо казку для тебе, для вас і для всіх нас.