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.


 

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

34475. Живопись Дионисия 41 KB
  Вот в такое время освобожденной обновляемой Руси как нельзя кстати пришелся светлый талант Дионисия его умение создавать праздничный настрой духа его сочные краски. Художественные тенденции последней трети XV начала XVI веков к праздничному декоративизму рафинированной утонченности и каноническому догматизму нашли в лице Дионисия тонкого истолкователя. О творчестве Дионисия в московский период можно судить только по двум произведениям: по иконе Божией Матери Одигитрия и по иконе Апокалипсис.
34476. Русское искусство 17в.: Живопись С. Ушакова. Деятельность оружейной палаты. Фресковая живопись. Парсуна 17.72 KB
  Тяга к наукам интерес в литературе к реальным сюжетам рост светской публицистики нарушение иконографических канонов в живописи сближение культового и гражданского зодчества любовь к декору к полихромии в архитектуре да и во всех изобразительных искусствах все это говорит о быстром процессе обмирщения культуры XVII в. Во главе нового движения провозглашающего те задачи живописи которые вели по сути к разрыву с древнерусской иконописной традицией стоял царский изограф теоретик искусства Симон Ушаков 16261686 взгляды которого...
34477. Строгоновская и годуновская школа иконописи. Особенности выразительного языка 18.35 KB
  Второе строгановская школа условно названная так потому что некоторые иконы выполнялись по заказу именитых людей Строгановых. Собирали иконы шитье и резьбу так что их домашние молельни стали настоящими музеями. Так они особенно ценили иконы совсем небольшого размера однако включающие не меньше отдельных сцен чем многоаршинный иконостас. Иконы этого типа напоминающие миниатюру или драгоценные эмалевые изделия и принято называть строгановскими даже если они не были написаны в мастерских Строгановых.
34478. Русское искусство первой трети 18в. Эпоха реформ Петра 1. Строительство Петербурга. Петровское барокко. Скульптура К.Б. Растрелли 72 KB
  Петровское барокко. Петровское барокко историкорегиональный стиль архитектуры СанктПетербурга сложившийся при жизни его основателя Петра Великого в первой четверти XVIII в. Стиль петровского барокко впитал в себя множество разнородных элементов и потому не является Барокко в полном значении этого слова. Так же петровскому барокко свойственна двуцветная окраска зданий чаще красная с белым и плоскостная трактовка декора.
34479. Русское искусство первой трети 18в.: формирование живописного портрета. Преображенская серия. Творчество живописцев И.Н. Никитина, А.М. Матвева 32.5 KB
  : формирование живописного портрета. Еще в XVII веке возник прообраз реалистического портрета значительно отличающийся от старого условного иконописания. В портрете XVIII столетия проявился исключительный интерес к человеку. Уже в так называемой Преображенской серии портретов которые долго было принято называть в науке портретами шутов так как они исполнены с лиц участвовавших в таком сатирическом конклаве как Всепьянейший сумасбродный собор всешутейшего князьпапы видно напряженное внимание к человеческому лицу к реалиям быта.
34480. Русское искусство сер.18в.:Елизаветинское барокко. Интерьеры. Архитектура. Деятельность Б.Ф. Растрелли. Тенденции рококо и барокко в интерьерах и мебели 31 KB
  :Елизаветинское барокко. Тенденции рококо и барокко в интерьерах и мебели. делится на два этапа: 30е годы мрачное время правления Анны Иоанновны засилья иноземцев и 4050е годы годы елизаветинского правления некоторого смягчения нравов предыдущего времени роста национального самосознания поощрения всего отечественного время сложения стиля русского барокко знаменующего синтез всех видов искусства. Елизаветинское барокко художественный стиль характерный для времени Елизаветы.
34481. Русское искусство середины 18в.: Живопись – расцвет портрета. Своеобразие творческого метода живописцев И.Я. Вишнякова, И.П. Аргунова, Л.П. Антропова 36 KB
  : Живопись расцвет портрета. В его портретах особенно детских отразился дух русского рокайльного искусства но в них нет бездушности фривольности наружной слащавости и галантности присущих западному рококо. Но лица в портретах пронизаны теплотой и душевностью в них есть особая интимность и непритязательность обаяние и цельность образа. Аргунов первые приобретшие известность портреты соединяют в себе принцип композиции западноевропейского парадного портрета и идущие от парсуны черты застылости живописной сухости плоскостности.
34482. Русское искусство середины 18в.: Архитектура – от барокко к классицизму 31 KB
  : Архитектура от барокко к классицизму. Переход от барокко к классицизму был одним из самых быстрых в смене стилей отечественной архитектуры. Конец 1750х годов еще расцвет барокко. Барокко как самостоятельный стиль в русской архитектуре оформилось в 1730х годах.
34483. Русская архитектура середины 18в. Школа Д. В.Ухтомского. Своеобразие архитектурного почерка 33 KB
  Ухтомского заключалась в руководстве правильной застройкой города. Ухтомского. Ухтомского выходили отличные зодчие примером чего может служить М. Ухтомского.