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.


 

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

32792. Спецефика филосовского знания. Соотношение философии и частных наук. Взаимосвязь философии и медецины 15.26 KB
  Соотношение философии и частных наук. Взаимосвязь философии и медецины. С выделением отдельных наук в самостоятельные области знаний возникает вопрос о соотношении философии и частных наук под частными науками понимаются те которые изучают отдельные области реальности. Роль философии представители данного направления сводят к логическому анализу научного языка; 3антисциентизм ограничивает роль науки решением узко практических задач.
32793. Основной вопрос философии и его 2 стороны. Исторические формы материализма и идеализма 16.65 KB
  Основной вопрос философии и его 2 стороны. Центральная мировоззренческая проблема – об отношении человека к миру – конкретизируется в философии как вопрос об отношении мышления к бытию об отношении идеального и материального. Этот вопрос является основным вопросом философии т. Крупнейший представитель немецкой классической философии И.
32794. Исторические этапы развития мировой филосовской мысли. Основные филосовские принципы и исторические типы филосовствования 14.95 KB
  В истории философской мысли также выделяются основные типы философствования философского анализа. В античности созерцательный тип философствования проявился в натурфилософии философии природы а в Древнем Китае – в принципе недеяния т. 2Умозрительный тип философствования – это способ теоретического постижения действительности основанный на отвлеченных логических построениях не связанных с опытными данными. Ярким примером умозрительного типа философствования являются доказательства существования Бога в учении Ф.
32795. Особенности Древнеиндийской философии. Её основные направления 17.32 KB
  В развитии культуры Древней Индии можно выделить два основных периода: 1ведический – предфилософский сер. связанный с переселением на территорию Древней Индии арийских племен. Культура Древней Индии в целом и философия в частности возникла и развивалась в условиях кастовой организации общественной жизни патриархальных традиций и власти деспотического государства. Основным культурным источником философии Древней Индии стала ведическая литература.
32796. Особенности Древнекитайской философии и её основные направления 17.69 KB
  В этот период создавались важнейшие философские школы оказавшие огромное влияние на общественную мысль китайского общества: конфуцианство даосизм моизм легизм и др. б даосизм как онтологическое учение его наивнодиалектический характер. Основателем даосизма является мудрец Лаоцзы VI – V вв. Его главный труд – Даодэцзын – Книга о Дао и Дэ.
32797. Античная философия: этапы развития и характерные черты. Первые греческие мыслители 22.71 KB
  Античная философия: этапы развития и характерные черты. Античная философия возникла в Древней Греции в середине I тысячелетия до н. В центре внимания философии данного периода проблемы природы космоса в целом; 2классическая греческая философия учения Сократа Платона Аристотеля – V – IV вв. Главное внимание здесь уделяется проблеме человека его познавательных возможностей; 3философия эпохи эллинизма – III в.
32798. Философия Платона, Теория познания Платона 14.35 KB
  Наиболее известные диалоги Платона: Государство Пир диалоги Софист и Федр посвящены проблеме души Тимей – вопросу возникновения Космоса Протагор – проблеме добродетели. Человек по Платону единство души и тела которые в то же время противоположны. Смертное тело – только тюрьма для души оно источник страданий причина всех зол; душа гибнет если она слишком срослась с телом в процессе удовлетворения своих страстей. Стимулом к совершенствованию души является любовь к прекрасному.
32799. Философия эпохи эллинизма, ее основные направления 14.57 KB
  На развитие античной философии значительное влияние оказал распад империи А. Неоплатонизм получил распространение в период когда античный способ философствования уступал место философии основанной на христианской догматике. Это последняя попытка решить задачу создания целостного философского учения в рамках дохристианской философии. Главное отличие от философии Платона заключается в том что мир идей Платона – это неподвижный безличный образец мира а в неоплатонизме появляется активное мыслящее начало – Ум.
32800. Вклад Аристотеля в развитие мировой философской культуры (учение о материи и форме). Учение о душе 13.19 KB
  Аристотель 384 – 322 гг. Аристотель считается величайшим энциклопедистом древности и систематизатором всех философских и научных знаний накопленных до него в области логики физики биологии психологии этики экономии искусствознания и др. Высоко оценивая Платона Аристотель подверг его идеалистическое учение серьезной критике Платон мне друг но истина дороже. Аристотель формулирует свое представление о бытии.