Проектирование алгоритма задачи

 

1-й шаг. Расчленим нашу задачу на две подзадачи:

а) вычисление среднего балла группы;

б) подсчет количества оценок меньших среднего балла группы.

Добавим к этим подзадачам обязательные операции ввода исходных данных и вывода результатов счета.

 

Алгоритм задачи

       
 
 
   

 


 

 

2-й шаг. Предназначен для детализации подзадачи А1 и А2.

 

Подзадачу А1 расчленим на две подзадачи более низкого уровня: подзадачу А11, назначение которой состоит в вычислении суммы оценок, полученных студентами группы, и подзадачи А12, с помощью которой вычисляется средний балл группы.

 

Алгоритм подзадачи А1 (2-й шаг)

 
 

 

 


 

 

3-й шаг. Подзадача А11 представляет собой типовую задачу и расчленяется на две структуры, не нуждающиеся в дальнейшей детализации: линейной структуры, состоящей из одного символа и предназначенной для подготовки цикла и циклической, с помощью которой вычисляется сумма оценок.

 

Алгоритм подзадачи А11 (3-й шаг)

       
 
 
   

 


 

 

Подзадача А12 представляет собой линейную структуру, состоящую из одного символа. В дальнейшей детализации она не нуждается.

Рассмотрим теперь дальнейшую детализацию подзадачи А2, полученной в результате детализации задачи на первом шаге.

2-й шаг (продолжение). Алгоритм этой подзадачи аналогичен алгоритму подзадачи А11 и представляет собой линейную и циклическую структуру, соединенные между собой последовательно. Отличие же заключается только в том, что в задаче А2 телом цикла является не линейная, а ветвящаяся структура (ответвление).

 

Алгоритм подзадачи А2 (2-й шаг)

           
 
 
   
     
 

 

 


               
   
 
   
 
   
 

 


 

 

В результате применения метода пошаговой детализации получена совокупность подзадач в виде иерархической структуры, основанием которой являются подзадачи, не требующие дальнейшей детализации. Вершиной же структуры является сама задача.

Алгоритм задачи в целом получают путем “сборки” его из алгоритмов подзадач, полученных на предыдущем этапе.

 

Алгоритм задачи в целом

 
 

 

 


 

 
 


1.5. Вопросы для самоконтроля

 

1) Какова последовательность подготовки и решения задачи на ЭВМ?

2) В чем заключается постановка задачи?

3) Обосновать необходимость использования численных методов при подготовке задачи к решению на ЭВМ.

4) Что представляет собой алгоритм задачи? Какими свойствами он должен обладать?

5) Что представляет собой программа? Из чего она состоит?

6) Для чего производится отладка программы?

7) Из каких этапов состоит преобразование исходной программы в загрузочный модуль? Что он из себя представляет?

8) Что представляет собой схема алгоритма? По каким правилам она строится?

9) Как называются типовые элементы, из которых строится схема алгоритма?

10) В какой последовательности располагаются символы в линейной структуре?

11) Какую структуру можно назвать ветвящейся?

12) Что составляет отличительную особенность циклической структуры?

13) Что такое параметр цикла? Какие функции он может выполнять?

14) Что представляет собой структурное программирование? Какие идеи положены в его основу?

15) Сформулируйте основные положения метода пошаговой детализации «сверху-вниз».


[1] Рекуррентное соотношение – (от лат. recurentis – возвращающийся) формула, связывающая значения p + 1 соседних членов u k, u k-1,…, u k-p (k ³ p+1) некоторой последовательности {un} (n = 1,2,…): u k = f ( k, u k-1,…, u k-p), позволяющая шаг за шагом определять любой член последовательности, если известны p первых ее членов.