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.


 

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

7965. Поняття людина і основні теорії її походження 56.5 KB
  Тема уроку: Поняття людина і основні теорії її походження. Мета уроку: Зясувати підстави для використання визначення Людина і його сутність визначити особливості основних тлумачень походження людини, розкрити роль середовища і спадковос...
7966. Честь, совість, гідність людини. Інтелігентність і порядність 55.5 KB
  Честь, совість, гідність людини. Інтелігентність і порядність Мета: Розглянути співвідношення понять честь, совість, гідність людини, інтелігентність і порядність розвивати вміння критично аналізувати різні точки зору на певну проблему виховувати ...
7967. Історія України з найдавніших часів до XV ст 56.5 KB
  Тема уроку. Історія України з найдавніших часів до XV ст. Мета: Визначити, який період історії України вивчатиметься цього навчального року ознайомити учнів зі структурою і методичним апаратом підручника як передумовою їхньої подальшої успішної роб...
7968. Давня історія України 58 KB
  Тема уроку:Давня історія України. Мета уроку: Визначити особливості перших поселень на території сучасної України розвивати вміння учнів отримувати знання, використовуючи різні джерела інформації виховувати в ліцеїстів почуття патріотизму. Тип уро...
7969. Витоки Київської Русі 29.32 KB
  Тема Витоки Київської Русі. Мета уроку: Охарактеризувати виникнення Київської русі та ранню історію його існування розвивати здібність аналізу та обґрунтуванню фактичного матеріалу ПІДНЕСЕННЯ Й ЗАНЕПАД КИЇВСЬКОЇ РУСІ Перебуваючи в тіні дивовижних ...
7970. Правова поведінка правопорушення і юридична відповідальність 84.5 KB
  Тема 3. Правова поведінка правопорушення і юридична відповідальність Мета заняття.Ознайомити студентів із поняттями законність, правопорядок, правомірна поведінка, правопорушення, юридична відповідальність їх ознаками та видами. Охарактеризува...
7971. Поняття дух, душа, духовність. Співвідношення духовного і тілесного 49.5 KB
  Поняття дух, душа, духовність. Співвідношення духовного і тілесного. Мета: Розглянути співвідношення понять дух, душа, духовність, співвідношення духовного і тілесного, розвивати вміння критично аналізувати різні точки зору на певну проблему ...
7973. Історія педагогіки. Навчальний посібник 1.21 MB
  Історія педагогіки У навчальному посібнику для студентів, магістрів, аспірантів розкриті основні розділи з курсу Історія педагогіки. У систематизованому вигляді представлені питання, пов’язані з розвитком світової педагогічної думки, починаюч...