Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
38
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать

Повторение расчётов

Любая задача в принципе должна выполняться один раз. Однако практика показывает неэффективность такого подхода, т.к. безошибочное выполнение всех этапов предмашинной подготовки и машинной обработки встречается исключительно редко.

В общем случае приходится выполнять отладку программы с многократным повторением контрольных, а затем истинных значений переменных. Наряду с этим может быть необходим повторный просчет уже отлаженной программы с различными исходными данными. Для решения этой проблемы желательно предусмотреть в алгоритме и программе фрагменты, позволяющие по желанию пользователя повторять решение без выхода из программы либо прекращать ее использование.

Возможны несколько вариантов реализации путем формирования дополнительного цикла, телом которого будет алгоритм (программа) решаемой задачи. Предлагается вариант использования цикла с постусловием.

Фрагменты алгоритма и программы:

алгоритм

программа

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>.