- •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
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
-
Условная операция
Трёхмерная условная операция в общем случае имеет вид
e1 ? e2 : e3
где e1, e2, e3 – выражения
Выполнение условной операции начинается с анализа значения выражения e1. Если оно отлично от нуля (условие истинно), то вычисляется выражение e2, значение которого и становится результатом условной операции. Если значение условия (выражения e1) равно нулю (ложно), то в качестве значения всего условного выражения вычисляется третье выражение (е3). Всегда вычисляется только одно из двух выражений, разделённых двоеточием.
Условная операция не может выступать в качестве левой стороны оператора присваивания.
Технология программирования арифметических циклов
Циклическим называется процесс многократного повторения некоторого участка вычислений при изменении хотя бы одной из входящих в него величин.
Математически циклический процесс выражается зависимостью
y i = f( x i ),
т.е. предписывает многократное вычисление функции yi в соответствии с изменением аргумента xi. С точки зрения цикла аргумент xi является входной, а функция yi выходной величинами (данными).
Сформулируем основные определения.
Цикл – повторяющийся участок вычисления.
Тело цикла – совокупность действий, осуществляемых в цикле.
Параметр цикла – входная величина, изменяющая своё значение от цикла к циклу.
Закон изменения параметра цикла – зависимость, связывающая текущее и предыдущее значения параметра цикла.
Условие повторения цикла – зависимость, предписывающая повторение цикла либо выход из него.
Все циклические процессы по способу определения количества повторений (N) разделяются на два класса (рис. 5.1).
Рис. 5.1. Классификация циклов по критерию «количество повторений»
Арифметическим называется циклический процесс, число повторений в котором может быть определено заранее, т.е. не зависит от результатов счёта в теле цикла.
Итерационным именуется циклический процесс, число повторений в котором зависит от результатов вычислений в теле цикла и не может быть определено заранее.
К арифметическим циклам, как правило, относятся вычисления вида yi = f( x i ), к итерационным – yi = f( yi - 1 ).
Независимо от того, к какому классу относится вычислительный процесс, каждый из них содержит обязательные элементы:
-
вход в цикл (формирование начального значения параметра цикла);
-
вычисления в теле цикла (расчёт текущего значения функции, формирование нового значения параметра цикла и вспомогательные операции);
-
выход из цикла (проверка условия, определяющего повторение вычислений либо их прекращение).
По своему содержанию эти элементы зависят от класса и особенностей цикла, в котором используются.
Рассмотрим варианты организации циклических процессов арифметического типа.
Арифметические циклы характеризуются следующей постановкой задачи:
рассчитать текущие значения функции yi = f ( xi ) при изменении аргумента (параметра цикла) в заданном диапазоне xнxixк (1iN) по известному закону x i = ( x i - 1 ), ( ij = ( ij - 1 ) ).
При этом количество повторений цикла (N) может быть определено (задано) до начала вычислений.
В соответствии с видом задания (изменения) параметра цикла арифметические циклы структурируются следующим образом (рис. 5.2):
Рис. 5.2. Классификация арифметических циклов
Многократное вычисление значений функции при изменяющихся значениях аргумента называется табуляцией функции.
Результаты табуляции представляются в виде табл. 5.1.
Таблица 5.1
-
Аргумент
Функция
xн
yн
. . .
. . .
xi
yi
. . .
. . .
xn
yn
Рассмотрим методику программирования арифметических циклов при различных видах изменения аргумента.