- •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
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
Циклы с аналитическим заданием аргумента
Аналитическим называется закон изменения параметра цикла вида
x i = ( x i - 1 ).
Как правило, в качестве такого закона используют простейшую зависимость:
x i = x i - 1 + x.
При этом диапазон изменения параметра xi задаётся начальным (xн) и конечным (xк) значениями. Математическая формулировка условия нахождения xi в диапазоне счёта зависит от конкретных численных значений xн, xк и x.
При xн<xк и положительных x оно запишется как xнxixк.
При xн>xк и отрицательном x получим xнxixк.
Варианты изменения параметра цикла имеют вид рис. 5.3.
Y Y
xнxixк xнxixк
yк yк
x положительно x отрицательно
yi yi
yн yн
x x
xн xi xк X xк xi xн X
Стрелки определяют направление изменения параметра цикла.
Рис. 5.3 Варианты изменения аргумента
Сформулированные двойные неравенства позволяют выделить из них конкретные элементы цикла:
-
начальное значение параметра xi=xн (левая часть неравенства);
-
условие повторения цикла (правая часть неравенств) xixк при положительном x ( xixк при отрицательном x ), невыполнение которого приводит к выходу из цикла.
Дополнив полученные элементы входа в цикл и выхода из него конкретной основной зависимостью yi = f ( xi ) и стандартным законом xi = xi-1 + x, получим все необходимые компоненты арифметического цикла с аналитическим изменением параметра.
Принадлежность цикла к классу арифметических подтверждается тем, что количество повторений в нём может быть определено заранее по формуле N = ] ( xк - xн ) / x [ + 1. Обратные квадратные скобки предписывают от полученного частного учитывать только целую часть.
Рассмотрим программирование задач этого класса на конкретном примере задачи о подоходных налогах.
Постановка задачи
Рассчитать величину подоходного налога на работников предприятия, если известно, что зарплата может изменяться в диапазоне от 842 до 2500 р. с шагом изменения 100 р., а налог составляет 12 % от зарплаты.
Формирование математической модели
Исходные данные
-
Зн = 842 р.
-
начальная (минимальная) зарплата;
Зк = 2500 р.
-
конечная (максимальная) зарплата;
З = 100 р.
-
шаг изменения зарплаты;
пн = 12 %
-
процент налога.
-
Расчётные зависимости
Зн Зi Зк |
[р.р.р.] |
|
Зi = Зi-1 + З |
[р.=р.+р.] |
|
Нaлi = Зi пн / 100 |
[р.=р. % / %] |
|
N = ](Зк - Зн) / З [ + 1 |
[ед.=(р.-р.)/р.] |
|
Выбор метода решения
Анализ полученной математической формулировки позволяет сделать выводы:
-
решение задачи требует многократного вычисления подоходного налога Налi, однозначно зависящего от величины зарплаты Зi, следовательно, процесс является циклическим, а параметр цикла есть Зi;
-
диапазон изменения параметра цикла задан зависимостью ЗнЗiЗк, что позволяет сформулировать начальное значение параметра Зi=Зн и условие повторения цикла ЗiЗк, невыполнение которого приводит к выходу из него;
-
закон изменения параметра цикла имеет вид Зi = Зi-1 + З, т.е. является аналитическим;
-
количество повторений цикла N можно определить до начала счёта по стандартной формуле.
Следовательно, в качестве метода решения необходимо использовать циклический процесс арифметического типа с аналитическим изменением параметра.