- •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
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
Алгоритмизация структурой цикла с постусловием
Словесная формулировка алгоритма:
Ввести исходные данные (одномерный массив стоимостей кладов и процент вознаграждения).
Присвоить параметру цикла iего начальное значение (i=1).
Выполнить тело цикла (рассчитать текущее значение функции для соответствующего значения аргумента пi = f(сi) и вывести их на печать).
Сформировать новое значение параметра цикла через предыдущее (i=i+1).
Проверить полученное значение параметра на соответствие диапазону изменения ():
если i соответствует диапазону (), передать управление на п. 3;
если i не соответствует диапазону (i>7), прекратить вычисления в цикле.
Графическое изображение имеет вид рис. 5.9.
Алгоритмизация структурой цикла с параметром
Словесная формулировка алгоритма:
Ввести исходные данные (одномерный массив стоимостей кладов и процент вознаграждения).
Сформировать заголовок цикла:
Присвоить параметру цикла iего начальное значение (i=1).
Проверить полученное значение параметра на соответствие диапазону изменения ():
если i соответствует диапазону, выполнить тело цикла (рассчитать текущее значение функции для соответствующего значения аргумента пi = f(сi) и вывести их на печать), сформировать новое значение параметра цикла через предыдущее (i=i+1) и передать управление на п. 2.2;
если i не соответствует диапазону (i>7), прекратить вычисления.
Графическое изображение имеет вид рис. 5.10.
Анализ рассмотренных способов построения цикла показывает, что с точки зрения компактности записи наиболее удобным является использование цикла с параметром, предписывающего универсальный вариант формирования его значений в заголовке цикла.
Программирование задачи
В Си, как в математике, можно оперировать с массивами в целом и с их элементами. При этом в зависимости от типов составляющих массив элементов в языке Си существуют понятия массива и структуры.
Массив– совокупность элементов одного типа.
Структура– совокупность разнотипных элементов.
Поэтому программирование задачи начинается с определения принадлежности используемых данных к массиву или структуре. В большинстве случаев элементы приводятся к одному типу, что позволяет объединить их в языке Си понятием массив. Обязательными условиями работы с массивом или его элементами (элементом) являются:
описание массива;
обозначение элементов.
Описание массивов
Любая информация в ЭВМ хранится в ячейках оперативной памяти. Поэтому предполагаемая работа с массивом требует предварительного выделения памяти для его хранения. Это действие выполняет описание массива.
Описание массива предписывает резервирование в памяти ЭВМ необходимого количества последовательно расположенных ячеек для хранения его элементов. Число ячеек выделяемого участка должно соответствовать количеству элементов массива. Желательно предусматривать увеличенный размер массива (по отношению к реально заданному). При этом возможные изменения условия задачи не потребуют модификации описания. Например, для реально заданного массива X(7) возможно в описании указыватьX(7),X(10),X(15), что позволит во втором и третьем вариантах использовать программу для работы с массивомXна 10 и 15 элементов соответственно. Аналогично выбираются размеры массивов, численные значения которых конкретно не определены. Например, для массиваY(m) в соответствии с логикой задачи необходимо определить максимально возможное значениеm(50, или 100, или 150) и использовать его в описании.
Описание обязательно для всех используемых в задаче массивов.Описание массивов производится в начале программы (функции) аналогично простым переменным. При этом используются отдельные операторы описания или в списках уже существующих (наряду с именами переменных) указываются имена и размеры каждого из массивов.
Структура отдельного оператора описания одномерного массива:
описатель имя[размер];
где описатель – ключевое слово, определяющее тип элементов массива;
имя – идентификатор массива (формируется аналогично имени переменной);
размер – целая константа, определяющая количество элементов массива;
[ ] – ограничители размера массива.
Так, описатель одномерного массива целочисленных элементов с именем Dразмером 16 элементов имеет вид:
intd[16]; или увеличеноintd[20];
Одномерный массив А в 30 вещественных элементов описывается:
floata[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;
т.е. порядок расположения элементов может быть любым.