- •Технология программирования циклических процессов. Арифметические циклы
- •Арифметические циклы с аналитическим заданием аргумента
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма
- •Правила записи и выполнения
- •Программирование задачи
- •Операторы цикла
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Структура оператора
- •Правила записи и выполнения
- •Оператор пошагового цикла for
- •Структура оператора
- •Правила записи и выполнения
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Арифметические циклы с табличным заданием аргумента
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Алгоритмизация структурой цикла с предусловием
- •Алгоритмизация структурой цикла с постусловием
- •Алгоритмизация структурой цикла с параметром
- •Программирование задачи
- •Программирование задачи
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Заключение
- •Вопросы для контроля
Постановка задачи
Рассчитать размер вознаграждений, получаемых сдатчиками кладов, если известно, что он составляет 25 % оценочной стоимости, при условии, что количество кладов равно 7, а оценочные стоимости составляют 492 тыс. р., 503, 948, 738, 892, 320, 250 тыс. р.
Математическая формулировка
Анализ постановки задачи позволяет сделать вывод, что оценочные стоимости кладов можно представить в виде одномерного массива с именем, например C, размерностью 1 и размером 7, т.е. массива C(7). При этом каждый элемент массива будет обозначаться как ci при изменении индекса i от 1 до 7.
Исходные данные
|
c1 = 492 тыс. р. |
|
|
c2 = 503 тыс. р. |
|
|
c3 = 948 тыс. р. |
|
|
c4 = 738 тыс. р. |
|
|
c5 = 892 тыс. р. |
|
|
c6 = 320 тыс. р. |
|
|
c7 = 250 тыс. р. |
|
|
про = 25 % |
|
Расчётные зависимости
|
пi=ci про/100% |
[тыс.р.= тыс.р. % / %] |
|
|
|
|
|
– диапазон изменения индекса; |
|
|
i=i+1 |
|
– закон изменения индекса. |
|
Выбор метода решения
Анализ полученной математической формулировки позволяет сделать следующие выводы:
-
необходим многократный расчет выплачиваемой премии пi как функции от стоимости каждого клада ci (элемента массива C);
-
найти закономерность между численными значениями элементов ci не представляется возможным. Однако анализ их обозначений позволяет в качестве параметра цикла использовать индекс i, который изменяется от элемента к элементу по закону i=i+1 в диапазоне от 1 до 7;
-
диапазон изменения параметра цикла i позволяет сформировать его начальное значение i=1 и условие повторения цикла
,
невыполнение которого (i>7)
приводит к выходу из цикла.
Следовательно, методом решения является циклический процесс арифметического типа (число повторений 7 – известно) с табличным заданием аргумента и использованием индекса элементов (i) в качестве параметра.
Составление алгоритма решения
Методика составления алгоритма решения рассматриваемой задачи подчиняется общим закономерностям выполнения циклических процессов арифметического типа с аналитическим изменением параметра.
Первый шаг – выбор одного из стандартных способов реализации цикла:
-
с предусловием;
-
с постусловием;
-
с параметром.
Выполним алгоритмизацию задачи с использованием словесного описания и схем алгоритмов отдельно по каждому способу.
Алгоритмизация структурой цикла с предусловием
Словесная формулировка алгоритма:
-
Ввести исходные данные (одномерный массив стоимостей кладов и процент вознаграждения).
-
Присвоить параметру цикла i его начальное значение (i=1).
-
Проверить полученное значение параметра на соответствие диапазону изменения (
):
-
если i соответствует диапазону (
):
-
выполнить тело цикла (рассчитать текущее значение функции для соответствующего значения аргумента пi=f(сi) и вывести их на печать);
-
сформировать новое значение параметра цикла через предыдущее (i=i+1);
-
передать управление на п. 3;
-
если i не соответствует диапазону (i>7), прекратить вычисления в цикле.
Графическое изображение алгоритма приведено на рис. 5.8.
