
- •3. Контроль ввода данных
- •3.1 Цель работы
- •3.2. Задание
- •Теоретические сведения
- •Числовые типы
- •Арифметические операции
- •Множества
- •Описание множества
- •Примеры определение и задание множеств
- •Формы оператора if
- •Поливариантные условия и конструкции
- •Контроль типа входных величин
- •Пример 1. Контроль ввода вещественных чисел
- •Оператор выбора
- •Неполная форма оператора Case.
- •Пример 2. Контроль ввода с использованием Case
- •Преобразования Строка-Число и Число-Строка
- •TButton – кнопка
- •Пример 3. Вычисление арифметического выражения
- •Процедура ShowMessage
- •Пример 4. Простое сообщение
- •Пример 5. Использование процедуры Val и ShowMessage
- •Тестирование программы
- •3.4 Содержание отчёта
- •3.5 Контрольные вопросы
- •3.6 ПриложениЕ Основные процедуры и функции для работы с арифметическими выражениями
Поливариантные условия и конструкции
Если выбор необходимого действия требует проверки нескольких условий, то такую задачу решают с помощью «вложенных» операторов If.
If Условие 1
then if Условие2
then Оператор 1
else Оператор 2
else Оператор 3;
If Условие 1
then Оператор 1
else if Условие 2
then Оператор 2
else Оператор 3;
Контроль типа входных величин
Контроль типа вводимых величин в поле TEdit можно осуществить путём проверки принадлежности вводимых символов алфавиту вещественных или целых чисел.
['0'..'9', '+', '-', ','] - множество символов алфавита чисел вещественного типа, (число в поле записывается с «,» ).
['0'..'9', '+', '-'] - множество символов алфавита чисел целого типа,
Пример 1. Контроль ввода вещественных чисел
Дано: текстовое поле Edit1.
Требуется: разработать процедуру, контролирующую ввод символов (событие OnKeyPress) соответствующих алфавиту вещественных чисел. При вводе недопустимого символа подменить его пустым значением (код #0).
После назначения события Object TreeViewEdit1
Object Inspector Events OnKeyPress,
в разделе interface будет объявлена процедура TForm1.Edit1KeyPress(Sender: TObject; var Key: Char). В разделе implementation появится текст шаблона этой процедуры.
Текст, добавленный разработчиком, выделен курсивом.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', '+', '-', ‘,’, #8])
//несоответствие алфавиту вещественных чисел, #8 - <Backspace>
then key:=#0 ; //подмена недопустимого символа пустым значением
end;
Параметр-переменная Key соответствует коду символа нажатой клавиши. Если введённый символ не соответствует указанному символьному множеству ['0'..'9', '+', '-', ‘,’, #8], то параметру-переменной Key будет присвоен код #0, а в поле ввода, введённый символ будет заменён на “пустой символ” (в соответствии со стандартом кодировки символов ANSI символу #0 соответствует пустое значение NUL).
Нелинейные процедуры следует иллюстрировать схемой алгоритма. Только совместно текст процедуры и схема алгоритма дают полное и наглядное представление о работе процедуры.
Оператор выбора
Конструкции условного перехода, построенные с помощью оператора If, при большом количестве условий становятся громоздкими. Оператор Case позволяет выбрать одно из нескольких действий в зависимости от значения переключателя (ключ выбора). Если Переключатель=константа_1, то выполняется оператор_1. в противном случае оператор при else. Количество вариантов выбора не может превышать 65535.
Case Переключатель of
Список констант_1: Оператор_1;
Список констант_2: Оператор_2;
………………
Список констант_N: Оператор_N;
else Оператор_E;
end;
Неполная форма оператора Case.
C
ase
Переключатель of
Список констант_1: Оператор_1;
Список констант_2: Оператор_2;
………………
Список констант_N: Оператор_N;
end;
В описании оператора Case приняты следующие обозначения и соглашения:
of, else - ключевые слова (из, иначе);
переключатель (ключ) – переменная или выражение порядкового типа (целые, символьные, перечисляемые, диапазон);
список констант - константы порядковых типов;
оператор - любой допустимый оператор, в том числе операторы Case, If, составной оператор begin ... end, при неполной форме оператора ветвь else отсутствует.