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.


 

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

35680. Моя професійна кар’єра. Творчий проект 1.75 MB
  План роботи над проектом: Моє професійне самовизначення Додаток : Топ 20 найперспективніших Загальні відомості про дану професію: Завдання та обовязки; Вимоги до робітника; Особистості якості робітника. І найголовніше: людина повинна отримувати задоволення від своєї роботи Серед усіх пяти основних типів професій найбільше мені підходять людинатехніка до цього типу належать професії: водій машиністи потягів оператори верстатів з програмованим управлінням інженери слюсарі тощо. Умови роботи: Повна...
35682. Інформаційно-пошуковий проект «Олександр Матросов. 70 років подвигу» 36.14 KB
  Обґрунтування актуальності проекту Сучасна школа спрямована на забезпечення всебічного розвитку особистості шляхом навчання та виховання які ґрунтуються на загальнолюдських цінностях та принципах науковості інтегрованості єдності навчання і виховання на засадах гуманізму демократії громадянської свідомості взаємоповаги в інтересах людини родини суспільства держави. І саме тому я запропонувала своїм учням залучитися до реалізації цільового творчого проекту з громадянськопатріотичного виховання Олександр Матросов 70 років подвигу ....
35683. Квіткова фантазія. Творчий проект на виготовлення композиції з бісеру 1.75 MB
  ОРГАНІЗАЦІЙНО-ПІДГОТОВЧИЙ ТЕХНІЧНЕ ЗАВДАННЯ Призначення виробу що проектується. Аналіз конкурентної спроможності виробу на ринку. Робочий ескіз виробу з описом. Моделювання виробу.
35684. Теплообменное оборудование второго контура реактора ВВЭР-1000 1.38 MB
  3 Принципиальная тепловая схема 3 Принципиальна тепловая второго контура схема установки К50060 1500 4 Принципиальная тепловая схема второго контура установки К100060 15001 4 Принципиальная тепловая схема второго контура установки К100060 15002 5 Принципиальная тепловая схема второго контура установки К100060 3000 5 Теплообменное оборудование второго контура реактора ВВЭР1000 6 Парогенератор 6 Паровая турбина 7 Система сепарации и промежуточного перегрева пара 8 Конденсационная установка паровой турбины 9 Деаэратор 10 Подогреватели...
35685. Проектуваня та виготовлення полиці з ДСП 4.65 MB
  Нашою дизайнерською групою було вирішено розробити проект полиці. Віками на полиці клали найрізноманітніші предмети. В українській традиції існує термін для позначення особливої полиці для посуду мисник.
35686. ПОДГОТОВКА ТВОРЧЕСКОГО ПРОЕКТА 107 KB
  Подготовка творческого проекта по дисциплине Этика и культура межнациональных отношений. Рекомендации помогают студентам организовать собственную самостоятельную работу по подготовке творческого проекта являющимся итоговой работой по дисциплине Этика и культура межнациональных отношений. Методические рекомендации разъясняют сущность творческого проекта содержат примерные темы для него описывают этапы работы над проектом.
35687. Создание творческого проекта 51 KB
  Кто предложил Метод фокальных объектов МФО Ч. К каким методам относится МФО ассоциативный эмпирический когнитивный 10. На чем базируется МФО рассмотрение задач других методов анализ случайных объектов и случайных признаков этих объектов анализ типовых объектов 11. В чем состоит принцип МФО перенесение ярких неожиданных свойств случайных объектов на совершенствуемый объект интерпретация свойств совершенствуемого объекта рассмотрение свойств объекта в разных ситуациях 12.
35688. Мой выбор: оператор ЭВМ. Творческий проект 148 KB
  Обоснование выбора профессии Профессиональное самоопределение важный и ответственный шаг в жизни каждого молодого человека. Но осуществить свободный выбор профессии очень не просто. Показатели Содержание Мои жизненные ценности Семья профессия благополучие Смысл и цель моей жизни Приобретение любимой профессии овладение ею в совершенстве достижение высокого профессионального мастерства Предполагаемая профессия Основной вариант: оператор ЭВМ Запасной вариант: оператор станков с программным управлением Мотивы выбора профессии Интерес к...