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.


 

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

73721. Организация безналичных расчетов с использованием банковских карт 198.82 KB
  Поэтому карты на протяжении всего срока действия остаются собственностью банка а клиенты держатели карт получают их лишь в пользование. Характер гарантий банкаэмитента зависит от платежных полномочий предоставляемых клиенту и фиксируемых классом карты. При выдаче карты клиенту осуществляется ее персонализация: на нее заносятся данные позволяющие идентифицировать карту и ее держателя а также осуществить проверку платежеспособности карты при приеме ее к оплате или выдаче наличных денег. Авторизация разрешение предоставляемое эмитентом...
73722. ПРОЕКТИРОВАНИЕ АНАЛОГОВО-ЦИФРОВЫХ ПЛАТ 505.5 KB
  Поверхности заземления и питания Обеспечение низкоимпедансных заземляющих поверхностей большой площади очень важно для всех современных аналоговых схем. Выводы питания должны быть развязаны прямо на заземляющую поверхность с помощью низкоиндуктивных керамических конденсаторов для поверхностного монтажа SMD. Керамические конденсаторы должны быть расположены как можно ближе к выводам питания микросхемы. частично заземляющая поверхность разумеется должна быть удалена для отведения места под дорожки питания и сигналов межслойные переходы и...
73723. Экономика ресурсосбережения, конспект лекций 1.74 MB
  Обоснование программы ресурсосбережения промышленного предприятия. Схема обеспечения ресурсобезопасности предприятия. Факторы прямого воздействия – связаны с действиями контрагентов непосредственно работающих с предприятием или обусловленные характером деятельности предприятия собственники предприятия персонал предприятия поставщики ресурсов потребители конечной продукции; Факторы косвенного воздействия – связаны с действием системы государственного управления в сфере экономики политики социальной сферы. Сокращение длительности...
73725. Информационные системы, конспект лекций 180.5 KB
  Введение в теорию баз данных Цель лекции: сформировать общее представление о теории информационных систем и раскрыть основные понятия данной теории. Сформировать понятия классической теории баз данных. Существуют несколько классификаций информационных систем в основе которых лежат следующие критерии: цель функционирования схема 6; характер процесса преобразования данных схема 7; характерные функции управления данными схема 8; сферы применения схема 9. База данных БД это ядро информационной системы состоит из совокупности...
73726. Управление роботами и робототехническими системами 499 KB
  Современный промышленный робот – универсальный, оснащенный компьютером манипулятор, состоящий из нескольких твердых звеньев, последовательно соединенных вращательными или поступательными сочленениями.
73727. Динамика тела с одной неподвижной точкой 1.29 MB
  Будем рассматривать движение тела под действием системы n заданных сил показанных на рис. Для составления дифференциальных уравнений движения тела с одной неподвижной точкой применим теорему об изменении кинетического момента системы теорему моментов относительно неподвижной точки...
73728. Методика преподавания руского языка во вспомогательной школе 222.97 KB
  Языковыми средствами для их отображения являются слова словосочетания простые предложения нераспространенные и распространенные осложненные однородными членами. Ключевые слова: грамота аналитикосинтетический метод речедвигательный анализатор синтагма. Пишущий должен оформить свою мысль в виде предложения точно подобрав для этой цели слова и спрогнозировав место каждого предложения среди других единиц текста осуществить звуковой анализ отобранных слов соотнести звук и букву учитывая при этом правила графики и орфографии выполнить...