36565

Особенности разработки программы с подпрограммой

Контрольная

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

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

Русский

2013-09-22

35.5 KB

6 чел.

Особенности разработки программы с подпрограммой.

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

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

При разработке алгоритма на псевдокоде для программы с подпрограммами возможны две стратегии (или их сочетание).

Первая стратегия предполагает, что состав подпрограмм определяется раньше фактического использования этих подпрограмм в разделе операторов программы. Для таких подпрограмм вначале указывается их заголовок (в разделе описаний программы), возможно с необходимыми комментариями и возможно без расшифровки реализации этих подпрограмм. Затем в разделе операторов используются вызовы этих подпрограмм. Если тела подпрограмм ещё отсутствуют, то они создаются в процессе последующих уточнений.

Вторая стратегия предполагает, что вызовы подпрограмм использованы раньше, чем появилось описание подпрограмм (даже в виде заголовка). Эта стратегия естественна для случаев, когда состав подпрограмм не определён на этапе проекта программы, и подпрограммы "зарождаются" непосредственно при создании алгоритма задачи. Использование "опережающего" вызова предполагает, что после этого будет уточнен раздел описаний и в нём будет спроектировано тело подпрограммы.

Необходимо учесть также некоторые особенности проектирования подпрограмм по сравнению с обычными программами:

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

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

Таким образом, при разработке подпрограмм во многих случаях нет необходимости в оформлении проекта подпрограммы иначе, чем в это предусмотрено в самом заголовке подпрограммы.

Методика разработки алгоритма подпрограммы не отличается от разработки алгоритма программы. Приведем пример разработки программы с функцией:

program letters; {проект}

1.Постановка задачи:

Для вводимой строки символов определить и вывести на экран все

повторяющиеся латинские буквы (не различая большие и малые буквы).

2. Входные и выходные переменные:

str: string; {входная строка}

j:char; {текущая латинская буква}

3. Аномалии:

if <отсутствуют повтор. латинские буквы> then ‘Нет повторяющихся букв’

4. Экранная форма:

 begin

‘Введите строку:’

<str>

‘Повторяющиеся буквы:’

[ {<j>}]

[ Нет повторяющихся букв]

end.

 

 program letters; {0.1}

{Нахождение повторяющихся латинских букв во вводимой строке}

 var str:string;j:char;alfa:Boolean;

{0* function count(s:string;k:char):byte;}

 {число вхождений символа k в строку s}

 BEGIN writeln('Введите строку:');readln(str); writeln('Повторяющиеся буквы:'); alfa:=true; for j:='A' to 'Z' do if count(str,j)>1 then begin write(j,' ');alfa:=false end;

 if alfa then writeln('Нет повторяющихся букв');writeln;

 END.

 program letters;{0.2}

{Нахождение повторяющихся латинских букв во вводимой строке}

 var str:string;j:char;alfa:Boolean;

 function count(s:string;k:char):byte;

 var c,j:byte;

 begin c:=0;for j:=1 to length(s) do

 if upcase(s[j])=k then c:=c+1;count:=c

 end{count};

 BEGIN writeln('Введите строку:');readln(str); writeln('Повторяющиеся буквы:'); alfa:=true; for j:='A' to 'Z' do if count(str,j)>1 then begin write(j,' ');alfa:=false end;

 if alfa then writeln('Нет повторяющихся букв');writeln;

 END.

Задача 4.2.6(3)

program alex3;

type mas=array[1..5,1..4]of integer;

mass=array[1..5]of real;

var b:mas;

c:mass;

i,j:integer;

y:real;

procedure proc(x:mas;k:integer;var sr:real);

var i,sum,l:integer;

begin

sr:=0;

l:=0;

for i:=2 to 5 do

if x[k,i]>x[k,1] then begin

sr:=sr+x[k,i];

l:=l+1;

end;

sr:=sr/l;writeln(sr:5:2);readln;

end;

begin

for i:=1 to 5 do

for j:=1 to 4 do

read(b[i,j]);

for i:=1 to 5 do

proc(b,i,c[i]);

y:=exp(5*ln(c[1]-1))+exp(4*ln(c[2]-1))+exp(3*ln(c[3]-1))+sqr(c[4]-1)+(c[5]-1);

writeln('y=',y:5:2);

readln;

end.


 

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

82037. Технология изготовления детали подшипника на автоматизированном оборудовании с ПУ 5.4 MB
  Оборудование с ЧПУ может быть представлено: станочным парком например станками станки оборудованные числовым программным управлением называются станками с ЧПУ: для обработки металлов например фрезерные или токарные дерева пластмасс для резки листовых заготовок для обработки давлением и т.
82038. Проектування магістральної волоконно-оптичної лінії зв’язку між м. Луцьк та м. Хмельницький 1.59 MB
  Розвиток засобів зв’язку має велике значення для ефективного керування народним господарством чіткої роботи державного апарату та всебічного задоволення населення в потребі зв’язку і технічних засобів інформації. А це потребує збільшення пропускної спроможності лінії зв’язку приблизно в 10 разів кожні 1617 років.
82039. Разработка рекламного продукта для декоративного покрытия «Модесто» 18.14 MB
  Характеристики рекламируемого товара. На основе информации собранной из различных источников составляется перечень основных характеристик товара. В качестве основных характеристик которые желательно иметь для разработки рекламного продукта можно выделить следующие: наименование товара...
82040. Основные компоненты бизнес-плана Агентства наружной рекламы 464.5 KB
  Обычно полотно перетяжки изготавливается методом трафаретной печати на хлопчатобумажной ткани. При необходимости размещения на длительный срок или при изготовлении сложного макета используется либо сублимационная печать на шелковой ткани, либо печать на баннере.
82041. Тиристорні перетворювачі 297.5 KB
  Система імпульснофазового управління в свою чергу складається із вузла що перетворює напругу управління в послідовність імпульсів визначеної тривалості форми моменти яких залежать від напруги управління; вузла підсилення імпульсів що формує імпульси з визначеними електричними параметрами.
82042. Туристическая база 13.36 MB
  Туризм можно классифицировать по различным критериям: По цели отдыха По характеру отдыха и его организации По продолжительности путешествия По сезонности Эти критерии имеют решающее значение потому что именно цель поездки больше всего влияет на формирование тура и организацию туристического обслуживания.
82043. Изготовление изделий из бисера 6.73 MB
  В настоящее время бисерная вышивка переживает свой расцвет. Это красиво, модно, современно. Вышивкой из бисера украшают не только платья, кофточки, но и обувь, сумки и многое другое. Основой для вышивки служат холст, лен, бархат, атлас, шерсть. Сукно. Нитки следует брать армированные, чтобы бусинки их не перетирали.
82044. Країни південно-східної Азії у другій половині ХХ-го століття 7.55 MB
  Економічна колонізація Вєтнаму французьким капіталом розпочата у другій половині ХІХ ст. в умовах післявоєнного економічного буму французькі колонізатори вдалися до розширеної експлуатації людських і природних багатств Вєтнаму.
82045. Beethovens Musik ist ewig 85 KB
  Liebe Kunstfreunde, liebe Gäste! Es freut mich euch alle in diesem gemütlichen Saal zu begrüßen. Unsere außerschulische Veranstaltung ist dem genialen deutschen Komponisten Ludwig van Beethoven gewidmet. Schüler 1: Ludvig van Beethoven ist einer der größten Komponisten, Schüler 2: einer der berühmtesten Komponisten der Welt,