Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М_Отчёт.doc
Скачиваний:
6
Добавлен:
06.05.2019
Размер:
390.66 Кб
Скачать

Вызов процедуры

Вызов процедуры Inp_Int(L: TLabeledEdit; var V, Flag: Integer) свяжем с событием Нажатие кнопки. Для этого выполним следующие действия.

1. Установим компонент типа TButton, переопределим свойство Caption на Y=.

2. Определим событие Button1Click(Sender: TObject).

Критическая ситуация при вызове процедуры Inp_Int может возникнуть при ошибке преобразования Flag=1.

Код процедуры обработки события.

procedure TForm1.Button1Click(Sender: TObject);

var Flag: Integer;

begin

Inp_Int(LE_n, n, Flag); // преобразование в число n, X, dX

Inp_Int(LE_X, X, Flag);

Inp_Int(LE_dX, dX, Flag);

If Flag = 1 //в одной из Inp_Int ошибка преоброазования, досрочное завершение

then exit;

//продолжение

end;

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

Задача 4. Вычисления и представление результата

Исходные данные: значения глобальных переменных n, X и dX, выражение Y = X/(X-5)

Критическая ситуация: при x=5 – деление на 0.

Соглашения.

1. Решение оформим в виде процедуры Out(L: TLabel; n, X, dX: Integer), где L:– компонент типа TLabel – формальный входной параметр для вывода значений X и Y.

2. Для вычислений и вывода значений X и Y воспользуемся счётным оператором цикла по I:= 1..n.

3. При X = 5 выражение не вычисляем, после X выводим сообщение деление на 0.

4. Вызов процедуры свяжем с событием Нажатие кнопки.

Код процедуры Out(L: TLabel; n, X, dX: Integer).

//Вычисления и вывод результатов

Procedure Out(L: TLabel; n, X, dX: Integer);

//Вычисление и вывод X, Y; L: TLabel - куда выводить

Var I: Byte; //счётчик цикла

Y: Real;

begin

L.Caption := ' '; //очистка метки вывода

L.Caption := ' X Y' + #10#13 ; //заголовок вывода

For I:= 1 to n do

begin

If X <> 5 //Х =0 - деление на 0

then begin

Y:= X/(X - 5); //вывод X, Y

L.Caption := L.Caption + IntToStr(X) + ' ' +

FloatToStrF(Y, ffGeneral, 2, 5)+ #10#13;

end

//вывод X и сообщения о делении на 0

else L.Caption := L.Caption + IntToStr(X) + ' Деление на 0'+ #10#13;

X:= X + dX;

end;

end;

4. 3. Тестирование проекта

Запустите программу на выполнение при правильных значениях полей ввода, при Xi=5, при ошибочном синтаксисе введённого значения, при пустых значениях полей ввода.

Отлаженный проект должен выглядеть примерно как на рис.2.

Рис. 2. Готовый проект

Приложение 1. Элементы схем алгоритмов Обозначения основных элементов схем алгоритмов

Элемент

Функции

Процесс - выполнение операции или группы последовательных операций. Внутри элемента или в выноске указывают содержание операции.

Предопределённый процесс - указывает на отдельно описанный программный элемент. Чаще всего это процедура. Внутри элемента или в выноске указывают полное имя с фактическими параметрами.

Ввод-вывод - обмен данными между устройствами. Внутри элемента или в выноске указывают эти данные, при необходимости указывают устройства ввода-вывода.

Решение - выбор направления выполнения алгоритма в зависимости от условия. Внутри элемента указывают условие (логическое выражение). Направление выхода помечают словами "True" и 'False".

Линия потока - указание последовательности связей между элементами. Если направление обхода однозначно, то стрелки не указывают.

Пуск-останов - начало, конец программы или модуля.