- •1. Основные этапы разработки программных продуктов
- •1.1 Постановка задачи
- •Словесная формулировка
- •Формульная постановка задачи
- •1.2 Создание программного продукта
- •1.2.1.Формирование математической модели
- •Формирование исходных данных
- •Составление расчётных зависимостей
- •Правила формирования математической модели.
- •1.2.2.Алгоритмизация задачи
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •1.2.3. Реализация программного продукта
- •1.2.4. Работа с результатами
- •1.2.5.Анализ результатов решения
- •1.2.6.Принятие решения
- •1.2.7.Составление технической документации
- •1.3.Полная обработки задачи пользователя
- •1.4.Обеспечение эффективности разработки программных продуктов
- •2.5 Идентификаторы
- •2.6 Описание операций
- •2.6.1 Унарные операции
- •2.6.2 Бинарные операции
- •2.6.3 Пунктуаторы
- •Программирование простых ветвлений
- •4.1.5. Программирование задачи
- •Правила составления и использования
- •4.1.5.2. Операторы условной передачи управления
- •Укороченный оператор условного перехода
- •Правила записи и выполнения
- •Условная операция
- •Технология программирования арифметических циклов
- •Циклы с аналитическим заданием аргумента
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма
- •Оператор цикла с предусловием
- •Правила записи и выполнения
- •Оператор цикла с постусловием
- •Правила записи и выполнения
- •Оператор пошагового цикла for
- •Правила записи и выполнения
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Циклы с табличным заданием аргумента
- •Описание массивов
- •Описатель имя[размер];
- •Обозначение элементов массива
- •Имя[индекс]
- •Описатель имя[разм_1] …[разм_i]… [разм_n];
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Алгоритмизация структурой цикла с предусловием
- •Алгоритмизация структурой цикла с постусловием
- •Алгоритмизация структурой цикла с параметром
- •Программирование задачи
- •Описание массивов
- •Обозначение элементов массива
- •Составление программ решения задачи
- •Улучшение качества программных продуктов
- •Организация ввода-вывода Использование укороченных спецификаторов
- •Ввод переменных
- •Вывод переменных
- •Организация ввода в диалоге
- •Варианты ввода массивов
- •Оформление выводимых величин
- •Управление выполнением программ Использование составных присваиваний
- •Выбор устройства вывода
- •Повторение расчётов
- •Приостановка вывода
- •Очистка экрана
- •Позиционирование курсора
- •Пример улучшения качества
- •Программирование с использованием подпрограмм
- •Имя (фактические параметры)
- •Подпрограмма с одним результатом
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Подпрограмма с результатом – массивом
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Обработка текстовой информации в Си Символьные строки
- •Определение значения символьной строки
- •Массивы строк
- •Ввод строки
- •Выделение памяти
- •Функции ввода символьной строки
- •Функция ввода символьной строки gets( )
- •Функция ввода символьной строки scanf( )
- •Преобразование символьных строк
- •Функция atoi( )
- •Функция atol( )
- •Функции atof( ) и atold( )
- •Методика ввода числовых данных с использованием функции gets( )
- •Вывод строки
- •Вывод строки функциями printf( ) и fprintf( )
- •Вывод строки функциями puts( ) и fputs( )
- •Перевод чисел в формат символьной строки
- •Обработка символьных строк
- •Определение длины строки
- •Объединение строк
- •Копирование строк
- •Сравнение строк
- •Функции по работе с датой и временем.
- •Структуры.
- •Работа с дисками.
- •Ввод-вывод потока.
- •Открытие потока.
- •Объектно−ориентированное программирование
- •Классы ObjectWindows
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
Постановка задачи
Рассчитать размер вознаграждений, получаемых сдатчиками кладов, если известно, что он составляет 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.