Алгоритмизация структурой цикла с параметром

Словесная формулировка алгоритма:

1. Ввести исходные данные (одномерный массив стоимостей кладов и процент вознаграждения).

2. Сформировать заголовок цикла:

· Присвоить параметру цикла i его начальное значение (i=1).

· Проверить полученное значение параметра на соответствие диапазону изменения ( ):

– если i соответствует диапазону, выполнить тело цикла (рассчитать текущее значение функции для соответствующего значения аргумента пi = f(сi) и вывести их на печать), сформировать новое значение параметра цикла через предыдущее (i=i+1) и передать управление на п. 2.2;

– если i не соответствует диапазону (i>7), прекратить вычисления.

 

Графическое изображение имеет вид рис. 1 в).

Рис. 1. Блок схема алгоритма решения задачи: а) для цикла с предусловием, б) для цикла с постусловием, в) для цикла с параметром

 

 

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

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

В Си, как в математике, можно оперировать с массивами в целом и с их элементами. При этом в зависимости от типов составляющих массив элементов в языке Си существуют понятия массива и структуры.

Массив – совокупность элементов одного типа.

Структура – совокупность разнотипных элементов.

Поэтому программирование задачи начинается с определения принадлежности используемых данных к массиву или структуре. В большинстве случаев элементы приводятся к одному типу, что позволяет объединить их в языке Си понятием массив. Обязательными условиями работы с массивом или его элементами (элементом) являются:

· описание массива;

· обозначение элементов.

 

Описание массивов

Любая информация в ЭВМ хранится в ячейках оперативной памяти. Поэтому предполагаемая работа с массивом требует предварительного выделения памяти для его хранения. Это действие выполняет описание массива.

Описание массива предписывает резервирование в памяти ЭВМ необходимого количества последовательно расположенных ячеек для хранения его элементов. Число ячеек выделяемого участка должно соответствовать количеству элементов массива. Желательно предусматривать увеличенный размер массива (по отношению к реально заданному). При этом возможные изменения условия задачи не потребуют модификации описания. Например, для реально заданного массива X(7) возможно в описании указывать X(7), X(10), X(15), что позволит во втором и третьем вариантах использовать программу для работы с массивом X на 10 и 15 элементов соответственно. Аналогично выбираются размеры массивов, численные значения которых конкретно не определены. Например, для массива Y(m) в соответствии с логикой задачи необходимо определить максимально возможное значение m (50, или 100, или 150) и использовать его в описании.

Описание обязательно для всех используемых в задаче массивов. Описание массивов производится в начале программы (функции) аналогично простым переменным. При этом используются отдельные операторы описания или в списках уже существующих (наряду с именами переменных) указываются имена и размеры каждого из массивов.

Структура отдельного оператора описания одномерного массива:

описатель имя[размер];

где

описатель – ключевое слово, определяющее тип элементов массива;

имя – идентификатор массива (формируется аналогично имени переменной);

размер – целая константа, определяющая количество элементов массива;

[ ] – ограничители размера массива.

Так, описатель одномерного массива целочисленных элементов с именем D размером 16 элементов имеет вид:

int d[16]; или увеличено int d[20];

Одномерный массив А в 30 вещественных элементов описывается:

float a[30];

Одномерный вещественный массив Y(m) может быть описан:

float y[50]; или float y[100]; или float y[150];

Совместное описание символьных переменных x, y, z, а также одномерных массивов T(120) и S(70) может иметь вид:

char x, y, z, t[120], s[70]; или char y, t[120], x, s[70], z;

т.е. порядок расположения элементов может быть любым.