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.


 

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

43664. Cоздания температурно-комфортного режима в холодный и переходный периоды года 2.66 MB
  Система отопления и вентиляции необходима в гражданских зданиях для поддерживания требуемой воздушной среды в помещениях, особенно в тех где имеется присутствие человека. Для строителя – это необходимая часть конструктивного решения здания. Данный курсовой проект посвящает нас в основы проектирования отопления и ветиляции.
43665. Построение твердотельных моделей в системе Unigraphics 7.25 MB
  Добавляем бобышки с двух сторон затем ставим фаски на них. Добавляем отверстие с одной стороны. Добавляем фаски и отверстия. Добавляем фаски.
43666. Проектирование технологических процессов ремонта деталей вагонов 2.85 MB
  Технологический процесс технологическая операция наплавка электрод флюс коэффициент наплавки фрикционный клин. Цель работы: Разработать технологию ремонта фрикционного клина провести подбор оборудования для ремонта В курсовом проекте произведен выбор действующего типового технологического процесса – способа восстановления изношенной поверхности детали составлен технологический процесс ремонта и произведена разработка технологических операций рассчитаны параметры режима ручной дуговой наплавки и автоматической наплавки под плавленым...
43667. Функции программ MSPowerPoint и MSExcel 2.03 MB
  Например в виде презентации можно сделать более доступной сложную правовую информацию которой социальные работники информируют своих клиентов. Создание презентации на тему Дети это наше будущее Открыть MS Word В книге Excel выделить диаграмму Вызвать контекстное меню Копировать В документе MSWord вызвать контекстное меню Вставить Файл Печать Предварительный просмотр Создание презентации средствами MS Power Point на тему Дети это наше будущее Презентация это целенаправленный информационный процесс...
43668. РАЗРАБОТКА ДИЗАЙНА САЙТА ФИТНЕС-КЛУБА 15.44 MB
  Обратите внимание, как мы структурировали тэги по строкам (с помощью клавиши Enter) и какие сделали отступы (клавишей Tab). В принципе не важно, как вы структурируете ваш HTML-документ. Но, для облегчения чтения кода, настоятельно рекомендуем структурировать ваш HTML с помощью перевода строк и отступов, как в нашем примере.
43669. Изучение особенностей отражения в учете договоров финансовой аренды (лизинга) 1.2 MB
  Лизингодатель представляет собой хозяйствующий субъект (лизинговая компания, банк и т.п.) или индивидуального предпринимателя, осуществляющего лизинговую деятельность, т.е. передачу по договору в лизинг специально приобретенного для этого имущества. Иначе говоря, лизингодатель — это арендодатель данного имущества
43670. Підвищення надійності різання деревини за рахунок удосконалення електричної схеми шляхом впровадження сучасних енергозберігаючих технологій 4.8 MB
  Одним з основних видів різання деревини є пиляння. Це операція ділення деревини на частини багаторізцевими зубчастими інструментами  пилками, які здатні видаляти з колоди або заготовки шар деревини, перетворюючи її в стружку. Існує три основних види пил - рамні, стрічкові і дискові. Стрічкові пили представляють собою сталеву нескінченну (у вигляді кільця) смугу з зубами на одній (рідше двох) кромці.
43671. ОСОБЕННОСТИ ВОЕННО-ПАТРИОТИЧЕСКОГО ВОСПИТАНИЯ С МОЛОДЕЖЬЮ 14-18 ЛЕТ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ ФИЗИЧЕСКОЙ КУЛЬТУРЫ 584.5 KB
  Психология юношеского возраста – один из самых сложных и наименее разработанных разделов возрастной психологии. Еще в 20-е годы Л.С. Выготский отмечал, что в психологии юношеского возраста значительно больше общих теорий, чем достоверно установленных фактов.
43672. Інвентаризація інформаційних активів 82.46 KB
  Оглядова частина Визначення поняття інформації. Термін цінність інформації перш за все визначає саме поняття інформації а вже потім її цінності. Єдиного визначення інформації на даний час немає. Труднощі що виникають при спробах знаходження єдиного та вичерпного визначення інформації цілком зрозумілі: поняття інформація являється одним з первісних філософських понять таких як матерія свідомість час простір та ін.