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.


 

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

38204. Актуальні проблеми воєнної політології 108.5 KB
  За такого підходу до предмета â€œВійськової політологіїâ€ відносять військові аспекти окремих галузей знань: філософії політики політичної історії політичної соціології та економіки та ін. Звідси “військову політологію†пропонують вважати не самостійною наукою а комплексною науковою дисципліною на зразок теорії безпеки окремі галузі якої відповідали б різновидам військової політики; 3 третя група політологів зазначає що â€œВійськова політологія†має свій специфічний предмет. Їхня думка зводиться до того що...
38205. Обороноздатність держави: сутність, зміст 105.5 KB
  Політичні і економічні засади забезпечення обороноздатності України. ОСНОВНА ЧАСТИНА: Проблеми повязані із забезпеченням воєнної безпеки нашої держави були актуальними з перших днів незалежності України. Однією з вихідних категорій що застосовується для розкриття сутності та змісту процесів забезпечення оборони нашої країни і які часто зустрічаються у...
38206. Політичні і економічні засади забезпечення обороноздатності України 103.5 KB
  Оборона України - система політичних, економічних, соціальних, воєнних, наукових, науково-технічних, інформаційних, правових, організаційних, інших заходів держави щодо підготовки до збройного захисту та її захист у разі збройної агресії або збройного конфлікту
38207. Альфред Мехен – Морська могутність 112 KB
  Щоб збагнути виникнення і розвиток життя на Землі Ратцель пропонує подивитися на нього ніби зверху з космосу. Правильна інтерпретація цього цілого або його частин можлива лише тоді коли ми не тільки сьогоднішнє становище Землі будемо розглядати як окремий розділ історії Всесвіту уточнює він але і взагалі всякий стан Землі що видається нам спокоєм необхідно розуміти тільки...
38208. Основні понятійні категорії теорії інформаційно-психологічних операцій 112.5 KB
  Аналіз закономірностей розвитку сучасного людства говорить про те, що світ знаходиться на порозі глобального інформаційного суспільства, суспільства цивілізаційних змін, що передвіщає кардинальні зміни у всіх сферах особистого та суспільного життя
38210. Основные категории регионального управления 72.5 KB
  Регион — территориальное образование на едином экономическом поле, выполняющее посредническую роль между макро- и микроэкономикой, обеспечивая оптимальное функционирование всех систем: экономических, социальных, политических, национальных в любой части пространства и тем самым в целом на определенной территории.
38211. Информационное обеспечение регионального управления 93.5 KB
  Научный подход - это стратегия исследования. От того, насколько обоснована с научных позиций региональная политика, зависит успех в социально-экономическом развитии региона. И, наоборот, игнорирование процесса познания, опора только на интуицию чреваты самыми отрицательными последствиями во всех сферах жизни людей, общества.
38212. ИНФОРМАЦИОННЫЙ РЫНОК И ОСОБЕННОСТИ ЕГО РАЗВИТИЯ В УКРАИНЕ 86.5 KB
  Информация сегодня важнейший ресурс и источник, обеспечивающий эффективное функционирование государства, межгосударственных отношений, различных регионов. Без развития информационной деятельности невозможен экономический рост и технический прогресс.