36571

Концепция подпрограммы в Турбо Паскале

Контрольная

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

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

Русский

2013-09-22

34.5 KB

3 чел.

Концепция подпрограммы в Турбо Паскале.

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

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

определение (описание) подпрограммы;

вызов подпрограммы для её выполнения.

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

Механизм подпрограмм использует две категории параметров: формальные параметры и фактические параметры. Формальные параметры используются при описании подпрограмм, а фактические - указываются при вызовах подпрограмм. Фактические параметры должны соответствовать формальным параметрам по типу используемых конструкций.

Формальным параметром называется имя, которое может использоваться в операторной части описания подпрограммы для выполнения действий подпрограммы и через которое осуществляется связь подпрограммы с "внешней средой", т.е. с основной программой. Формальные параметры могут быть переменными соответствующих типов, либо именами процедур, функций, объектов.

Формальные параметры условно можно разделить на три вида:

входные параметры, через которые подпрограмма воспринимает исходную информацию для вычислений,

выходные параметры, через которые подпрограмма выдает свои результаты в основную программу, и

смешанные параметры - используемые и как входные и как выходные.

Различают формальные параметры-значения и формальные параметры-переменные. Различие между ними состоит в том, что параметры-значения при вызове представляют копии соответствующих значений выражений, а параметры-переменные не копируются, а непосредственно связываются с подпрограммой, т.е. в подпрограмму передаются адреса соответствующих фактических параметров. Выходные и смешанные параметры всегда являются параметрами-переменными, а входные параметры в большинстве своем являются параметрами-значениями, хотя в некоторых случаях это может быть неэкономно с точки зрения потребляемой оперативной памяти (например, для параметров-массивов). Однако заметим, что этот способ передачи входных параметров в подпрограмму позволяют избежать несанкционированного изменения значения переменных в вызывающей программе, т.е. избежать побочного эффекта.

] Замечание: Для экономной передачи данных через параметры-массивы лучше использовать формальные параметры-константы, отличающиеся от параметров-значений тем, что они не создают копий значений.

Фактический параметр - это выражение соответствующего типа (в том числе, возможно, переменная или константа), значение которого должно быть вычислено в момент вызова и подставлено при вызове на место формального параметра.

Формальные и фактические параметры указываются списком параметров.

В списке формальных параметров параметры описываются с указанием имени параметра и типа, причём параметры-переменные описываются с ключевым словом var, а параметры-константы - с ключевым словом const. Одна группа параметров отделяется от другой точкой с запятой. В группе параметров одного типа имена параметров отделяются запятой.

Замечание Поскольку описание одной подпрограммы может быть вложено в описание другой подпрограммы, следует различать вызывающую подпрограмму и вызываемую подпрограмму. Вызываемая подпрограмма вложена в вызывающую подпрограмму. Роль вызывающей подпрограммы может выполнять и основная программа.

Между списком формальных параметров и списком фактических параметров должно быть взаимно однозначное соответствие (при просмотре списка), причем тип фактического параметра должен точно совпадать с типом формального параметра.

Замечание В описании одной подпрограммы может содержаться вызов другой подпрограммы, а та в свою очередь может содержать вызов первой подпрограммы. Для возможности корректного описания таких подпрограмм используются опережающие описания с помощью директивы forward. Вначале записывается заголовок первой подпрограммы с директивой forward вместо тела подпрограммы. Затем дается полное описание второй подпрограммы и первой подпрограммы .

Задача 4.2.6(9)

program Project9;

type mas=array[1..3,1..6] of Integer;

var a,b:mas;

i,j,l1,l2:Integer;

procedure p(x:mas;n:Integer; var k:integer);

var i,j:Integer;

begin

k:=0;

for i:=1 to 3 do

for J:=1 to n do

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

end;

begin

for i:=1 to 3 do

for j:=1 to 6 do

read(a[i,j]);

Writeln;

for i:=1 to 3 do

for j:=1 to 3 do

read(b[i,j]);

p(a,6,l1);

p(b,3,l2);

if l1=l2 then Writeln('odinakovo')

else if l1>l2 then Writeln('bolshe v A')

else Writeln('bolshe v B');

 Readln;

end.


 

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

46902. Колониальная политика 36 KB
  Над Тунисом был установлен протекторат Франции. Помимо Туниса в наиболее тяжелую зависимость от Франции попали страны Ближнего Востока – Египет и Турция. До второй половины 70х годов в Египте властвовал французский капитал а вместе с ним и преобладало и политическое влияние Франции. В это время во Франции вторично пришел к власти Жюль Ферри который уже провел захват Туниса.
46903. Types of colloquial speech. The main distinctive features 36 KB
  Antitsipation constuction. Antitsipation represents the phenomenon in a sense opposite пролепсе, and consists in removal at the first place in the statement of a rheme component. Thus the thematic component in the form of the isolated noun finishes a design: I never met him in my whole life, Jack
46904. Теоретическое и практическое значение культурно-исторической концепции Выготского для психологии 36 KB
  Теоретическое и практическое значение культурноисторической концепции Выготского для психологии. Это касается и роли Выготского в исследовании понятия деятельность.Выготский избрал областью своего исследования психологию сознания В статье посвященной памяти своего учителя [Выготского Л.Давыдова относительно своего утверждения требуют с нашей точки зрения дополнительного обоснования поскольку даже на той же самой странице из Выготского на которую он ссылается можно найти и термин поведение а в других местах можно увидеть...
46908. Дмитрий Мамин - Сибиряк. «Сказка про храброго Зайца - длинные уши, короткий хвост» 36 KB
  Ход урока.Сообщение темы и цели урока. А может ли имя героя Характер его подсказать И на судьбу повлиять Какова задача нашего урока Исследовать как имя героя может повлиять на его судьбу.Работа по теме урока.
46909. Издержки и прибыль фирмы 37.88 KB
  Предельные издержки изменение валовых издержек в связи с производством дополнительной единицы продукции. Методы статистического изучения взаимосвязи социальноэкономических явлений. Статистическое изучение связи между причиной и следствием состоит из нескольких этапов. На втором этапе строится модель связи.