
- •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
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
Повторение расчётов
Любая задача в принципе должна выполняться один раз. Однако практика показывает неэффективность такого подхода, т.к. безошибочное выполнение всех этапов предмашинной подготовки и машинной обработки встречается исключительно редко.
В общем случае приходится выполнять отладку программы с многократным повторением контрольных, а затем истинных значений переменных. Наряду с этим может быть необходим повторный просчет уже отлаженной программы с различными исходными данными. Для решения этой проблемы желательно предусмотреть в алгоритме и программе фрагменты, позволяющие по желанию пользователя повторять решение без выхода из программы либо прекращать ее использование.
Возможны несколько вариантов реализации путем формирования дополнительного цикла, телом которого будет алгоритм (программа) решаемой задачи. Предлагается вариант использования цикла с постусловием.
Фрагменты алгоритма и программы:
алгоритм |
программа
main() { int t; . . . do { операторы основных вычислений
printf("Повторение решения – 1, \n" "выход – другая цифра: "); scanf("%d", &t); } while( t==1 ); } |
Дополнительный цикл по окончании основных вычислений запрашивает ввод переменной, значение которой определяет повторение решения (1) или прекращение его (например, 0).
Приостановка вывода
Вывод информации может осуществляться по-разному:
-
одиночными строками;
-
блоками строк;
-
непрерывным потоком.
Поэтому пользователю желательно иметь средства управления выводимым потоком в любом из указанных вариантов. Как правило, экран монитора вмещает 25 строк информации. Последняя выводимая строка всегда является текущей. Следовательно, если результаты решения более объемны, происходит автоматическое перемещение (скроллинг) выводимой информации с последовательным удалением с экрана верхних строк. Приостановка вывода позволяет ознакомиться с полученной порцией информации, а затем продолжить вывод. Таким образом организуется любой блочный (по максимуму постраничный) просмотр информации.
Приостановка вывода может осуществляться пользователем в любой, удобной ему, точке решения.
Фрагменты алгоритма и программы организации постраничного просмотра представлены ниже:
алгоритм |
программа
операторы вывода информации
printf("\n Для продолжения " "нажмите любую клавишу\n"); getch( );
|
В диалоге рекомендуется использовать только функцию getch, чтобы не выводить на экран ненужную информацию.
Предлагаемые фрагменты можно использовать в программе неоднократно (по мере необходимости), создавая требуемое количество остановок в нужных пользователю точках решения.
Очистка экрана
Запущенная на выполнение программа пользователя вводит информацию, начиная с текущей строки. При этом, как правило, на экране монитора высвечивается информация результатов работы предыдущих программ, т.е. текущая строка не является первой, что не всегда удобно пользователю.
Очистка экрана позволяет удалить ненужную информацию и сделать текущей первую строку. В принципе очищать экран желательно не только от чужой, но и от собственной ненужной информации.
В любом из вариантов используется оператор следующей структуры:
clrscr( );
где clrscr – имя функции (clear screen – очистить экран);
( ) – ограничители аргументов функции;
; – признак простого оператора.
Функция clrscr() предписывает очистку экрана от всей информации и устанавливает курсор в первую позицию первой строки.
Как правило, оператор очистки экрана устанавливается в начало выполняемой части программы, а также, по желанию пользователя, внутри ее.
Фрагменты алгоритма и программы для первоначальной очистки экрана имеют вид
алгоритм |
программа . . . #include <conio.h> . . . main( ) { описатели переменных clrscr( ); . . . |
При необходимости дополнительной очистки внутри расчетной части оператор clrscr( ); устанавливается пользователем в выбранных им точках программы.
-
Внимание ! Использование функции очистки экрана clrscr( ) требует предварительного подключения заголовочного внешнего файла conio.h с помощью специальной директивы #include<conio.h>.