Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_informatike_2003_c_uvelichennym_og....doc
Скачиваний:
31
Добавлен:
12.11.2018
Размер:
5.3 Mб
Скачать

§ 9 Реализация разветвляющихся алгоритмов

Реакция программы на ошибки ввода данных

Правильно составленная программа должна включать контроль ошибок ввода исходных данных и обеспечивать возможность повторения ввода. При расчёте треугольников одной из наиболее распространённых ошибок является нарушение соотношения между длинами сторон, обеспечивающего возможность построения треугольника. Это соотношение состоит в том, что сумма длин любых двух сторон должна быть больше длины третьей стороны. Следовательно, программа должна трижды проверить истинность указанного соотношения, определить количество ошибок ввода и имя неверно введённой величины, если таковая имеется, а также сообщить пользователю об ошибке и предложить повторить ввод. Иными словами, ход выполнения программы зависит от выполнения некоторого условия (правильно выбраны длины сторон треугольника или допущена ошибка). Управление последовательностью выполнения команд программы, а также преобразованием данных осуществляется с использованием операторов. Операторы – синтаксические конструкции, предназначенные как для записи алгоритмических действий по преобразованию данных, так для задания порядка выполнения других действий. Набор операторов языка Паскаль обеспечивает возможность наглядного и однозначного представления алгоритмов в стиле структурного программирования. Язык содержит следующие операторы:

  1. Оператор присваивания.

  2. Оператор перехода.

  3. Условный оператор.

  4. Оператор варианта.

  5. Операторы цикла:

    1. с параметром;

    2. с проверкой условия до начала выполнения операции (с предпроверкой);

    3. с проверкой условия после завершения операции (с постпроверкой);

  6. Оператор процедуры.

  7. Составной оператор.

  8. Пустой оператор.

Оператор присваивания рассматривался выше и применялся в программе расчёта площади треугольника.

Для выбора одного из двух возможных действий в зависимости от выполнения некоторого условия используются условные операторы. Синтаксическая диаграмма условного оператора имеет вид:

Сначала выполняется логическое выражение, стоящее после служебного слова IF. Его результат имеет булевский тип. Если он равен TRUE, то выполняется оператор, указанный после служебного слова THEN, если он равен FALSE, то выполняется оператор, стоящий после служебного слова ELSE. При отсутствии ELSE управление передаётся следующему оператору. Условный оператор может быть использован для решения целого ряда задач, например, для определения максимального или минимального из двух значений: if X<Y then MAX:=Y else MAX:=X или для организации подсчёта количества ошибок. Пусть k – количество ошибок.

k:=0; {Первоначально k=0}

……… {Ввод исходных данных}

if a+b<c then k:=1;

Таким образом, в случае ошибочного ввода данных величина k будет отличной от нуля. Очевидно, что количество ошибок при вводе длин сторон треугольника не может быть больше 1. Только одна из сторон может быть чересчур длинной. Если в случае ошибочного ввода следует выполнить несколько действий, напри­мер, определить количество ошибок и выделить ошибочно введённое значение, необходимо создать составной оператор – последовательность операторов, заключённую между служебными словами begin…end. Пусть требуется выделить ошибочно введённое значение, изменив цвет шрифта:

if a+b<c then begin

k:=k+1;

Edit3.Font.Color:=clRed

end;

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

if k=0 then begin

……………

end;

Задание: Получить у преподавателя 3-ю индивидуальную задачу и создать программу её решения. Ввод исходных данных и вывод результата выполнить с использованием описанных выше визуальных компонентов. В случае ошибки ввода программа должна предлагать пользователю произвести повторный ввод исходных данных.

Отчёт по данной работе должен включать перечень использованных визуальных компонентов, описание свойств компонентов, изменённых при создании формы или изменяемых в процессе выполнения программы, описание событий, изменяющих ход выполнения программы, описание использованных в программе констант и переменных (указать их типы и диапазоны изменения) и стандартных функций, распечатку процедуры обработки каждого из указанных событий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]