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.


 

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

58250. Исследование процесса работы пользователей с информационной системы учета электропогружного оборудования скважин (ИС «ЭПОС») 3.02 MB
  В результате данной работы было спроектирована, разработана и внедрена подсистема оповещения в ИС «ЭПОС», устраняющая недостатки в работе ИС «ЭПОС». Разработаны и реализованы спецификации требований на внесение изменений в ИС «ЭПОС».
58252. Носовой гласный переднего ряда во французском языке 146.5 KB
  Положение всех органов речи то же, что и при [ε]. Язык должен упираться в нижние резцы, иначе звук будет похож на [α̃]. Нёбная занавеска отходит от стен фаринкса и включает носовой резонатор.
58254. СПОСОБЫ ВЫРАЖЕНИЯ МНЕНИЯ В НАУЧНОМ ТЕКСТЕ ЧЕРЕЗ ПРИЗМУ КАТЕГОРИИ СУБЪЕКТИВНОЙ МОДАЛЬНОСТИ 82.23 KB
  Целью данной работы является исследование научного текста и выявление способов выражения мнения в научном тексте при помощи категории субъективной модальности.
58255. Основы освещения сцены 1.49 MB
  Работа с источниками ведется параллельно с созданием объектов геометрии однако окончательная настройка их параметров осуществляется в процессе создания и назначения материалов поскольку освещение тесно связано с текстурированием и может влиять на особенности отображения материалов а также приводить к появлению теней. При создании сцены ее объекты освещаются автоматически однако с добавлением первого источника света установленное по умолчанию освещение отменяется. При удалении всех созданных источников сцена вновь освещается источниками...
58256. Ознайомлення з Конвенцією про права дитини 53 KB
  Мета. Формувати в учнів уявлення про Конвенцію прав дитини. Зясувати обовязки батьків і дітей. Виховувати шанобливе ставлення до батьків.
58257. Наслідки Другої світової війни для країн Західної Європи. Німеччина в другій половині ХХ ст. — на початку ХХІ ст 160 KB
  Мета: проаналізувати внутрішню та зовнішню політику провідних країн Західної Європи у другій половині ХХ ст. Які країни Європи було визволено від гітлерівської окупації радянською армією...
58258. Религия древних египтян 44.5 KB
  Геродот писал про египтян что они в отличие от других народов чрезвычайно религиозны. Религия зародилась у египтян как и у других народов еще в первобытные времена. Жизнь тогда зависела от удачной охоты и собирательства: вот почему египтяне поклонялись зверям например льву собаке кошке птицам например коршуну соколу ибису крокодилам лягушкам змеям жукам.