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.


 

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

37617. Бег с барьерами 15.99 KB
  Дисциплины: Зимний сезон : 50 метров 60 метров Летний сезон : 100 метров женщины 110 метров мужчины 400 метров История Первые упоминания об официальных стартах в барьерном беге относятся к соревнованиям в Англии в 1837 году в колледже Итон. Олимпийский дебют на дистанции 110 метров с барьерами состоялся в 1896 году.
37618. Горный бег 18.2 KB
  Классификация трасс по критерию набор высоты Категория А: набор высоты составляет как минимум 76 метров 250 футов на каждую милю 16 км дистанции; по шоссе проходит не более 20 от общей длины трассы; трасса должна быть длиной не менее одной мили 16 Категория В: набор высоты составляет как минимум 38 метров 125 футов на каждую милю 16 км дистанции; по шоссе проходит не более 30 от общей длины трассы; Категория С: набор высоты составляет как минимум 304 метра 100 футов на каждую милю 16 км дистанции; по шоссе проходит не...
37619. Михаил Сергеевич Горбачёв 42.26 KB
  Как обычные люди становятся историческими личностями, что выделяет их из общего ряда? То, что отличает от остальных, - исключительные способности, энергия, честолюбие, жажда власти, приверженность идеалу, или, напротив, безоглядный цинизм, беспринципность, или то, что с ними связывает
37620. Слагаемые профессионального имиджа педагога 135.5 KB
  Теоретические основы исследования проблемы имиджа педагога. Понятие и структура имиджа. Профессиональный имидж педагога. Создание имиджа учителя. Рекомендации и памятки для учителей...
37621. Определение итогов года по всем объектам учет прибыли и убытков компании 64.87 KB
  Дано: Ведомость расчета ущерба по объекту страхования Таблица выданных полюсов страхования Окончательный расчет рисков. начало Заполняем из таблицы Ведомость расчета ущерба по объекту страхования следующие поля: Номер договора Номер полиса Дата выдачи Колво страховых случаев соответствующие поля таблицы Учет фактических доходов компании Переносим из таблицы Окончательный расчет рисков страхования следующие поля: Ф.О Объект Адрес Вид страхования Срок страхования и заполняем в соответствующие поля...
37622. Создание единого информационного пространства образовательного учреждения 23.07 KB
  Одним из важнейших направлений информатизации современного общества является информатизация образования - процесс обеспечения сферы образования теорией и практикой разработки и использования современных информационных технологий, ориентированных на реализацию психолого - педагогических целей обучения и воспитания.
37623. Составление плана осмотра объекта 61.83 KB
  Цель задачи: Определить сроки осмотра объекта по всем поданным объектам. Требуется: Вывести план выезда страхового агента на объект. Организационноэкономическая сущность: Данная задача предназначена для того чтобы направить страхового агента на объект в соответствии с желаемой датой указанной клиентом.
37624. Економіка інтелектуальної власності 172 KB
  Економіка інтелектуальної власності. Права на об’єкти інтелектуальної власності як товару. Особливості права інтелектуальної власності як товару. Інтелектуальна власність як нематеріальний актив.
37625. Учет рисков в страховании 63.17 KB
  Дано: Ведомость предварительной стоимости объекта страхования Справочник клиентов Заявка от клиента. Требуется: Определить предварительный расчет рисков по объекту страхования. Периодичность и область применения: Предварительный расчет рисков по объектам страхования на момент запроса составляется при поступлении заявки. Техноэкономическая эффективность: Автоматизированное составление вывести предварительный расчет рисков по объектам страхования на момент запроса существенно повысит эффективность работы организации.