Логические выражения и операции.

Результатом выполнениялогического (булевского) выраженияявляется логическое значение True или False. Операндами служат данные только булевского типа. Простейшими видами логических выражений являются следующие: логическая константа; логическая переменная; элемент массива ло­гического типа; логическая функция; выражение отношения.

Другие логические выражения строятся из вышеперечисленных пу­тем применения логических операций и круглых скобок, список ло­гических операций приведен в таблице.

Логические операции

Операция Действие Выражение А В Результат
Not Логическое отрицание Not A True   False
And Логическое И A and B True True True
True False False
False True False
False False False
Or Логическое ИЛИ A or B True True True
True False True
False True True
False False False
Xor Исключающее ИЛИ A xor B True True False
True False True
False True True
False False False

Приоритет операций.

Выполнение каждой операции происходит с учетом ее приоритета:

1. @, not Первый (высший)

2. *, /, div, nod, and, shi, shr Второй

3. +, -, or, xor Третий

4. =, о, <, >, . <=, >=, in Четвертый (низший)

Для определении старшинства операций имеются четыре основных правила:

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

2.Операция, находящаяся между двумя операциями с равными при­оритетами, связывается с той операцией, которая находится слева.

3.Выражение, заключенное в скобки,перед выполнением вычисля­ется, как отдельный операнд.

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

Ввод и вывод информации на экран.

Стандарные функции

Для выполнения часто встречающихся вычислений и преобразований дан­ных в Object Pascal существуют стандартные функции.

Арифметические функции

Арифметические функции позволяют выполнять различные вычисления. Например, функция sqrt вычисляет значение квадратного корня. Подробнее об арифметических функциях будет изложено в лабораторной работе 3.

3.2.1.2. Функции преобразования типов

Функции преобразования типов наиболее часто используются в инструкци­ях, обеспечивающих ввод и вывод информации. Например, для того чтобы вывести в поле вывода диалогового окна значение переменной типа real, необходимо сначала получить изображение числа, являющегося значением данной переменной. Это можно сделать при помощи функции FloatToStr, которая возвращает строковое представление выражения действительного типа, указанного при вызове функции.В таблице перечислены наиболее часто используемые функции преобразо­вания типов.

Функции преобразования типов

Функция Значение
Chr (n) Символ ANSI с номером n
IntToStr (n) Преобразование целого n в строку.
FloatToStr(n) Преобразование вещественного n в строку.
FloatToStrF(n,f,l,m) Преобразование вещест­венного n в строку по формату. При вызове функции указываются: f — формат (способ изображения); l —точность (нужное общее количество цифр); m — количество цифр после десятичной точки
StrToInt (s) Преобразование строки s в целое число.
StrToFloat (s) Преобразование строки s в вещественное число.
Round (n) Целое, ближайшее к n
Trunc(n) Целая часть от n
Frac(n) Дробная часть вещественного n
Int (n) Целая часть вещественного n

Ввод данных

Программа может получить исходные данные из окна ввода, поля ввода диалогового окна или из файла.

Ввод из окна ввода

Ввод данных из окна ввода осуществляется вызовом функции InputBox, воз­вращаемым значением которой является строка, введенная пользователем. В общем виде инструкция для ввода данных с использованием функции InputBox выглядит так:

Переменная := InputBox(Заголовок, Подсказка, Значение);

где

Переменная — имя переменной строкового типа, значение которой должно быть получено из окна ввода;

Заголовок —текст заголовка окна ввода;

Подсказка — текст поясняющего сообщения;

Значение — текст, находящийся в поле ввода в момент появления окна ввода на экране.

Например, в программе пересчета веса из фунтов в килограммы инструкция ввода количества фунтов может выглядеть так:

s:=InputBox('Фунты-килограммы','Введите вес в фунтах','');

Выполняется эта инструкция следующим образом:

1. На экран монитора выводится окно ввода.

2. В поле ввода вводится (набирается на клавиатуре) число.

3. Затем необходимо нажать одну из командных кнопок окна ввода:

• Щелчок на кнопкеОК присваивает переменной s значение, соответ­ствующее введенной строке

• Щелчок на кнопкеCancel присваивает переменной s предопределен­ное значение, указанное при вызове функции inputBox в качестве ее аргумента (в данном примере переменной s будет присвоено '', т. е. пустая строка)

Следует еще раз обратить внимание на то, что значение функции InputBox строкового (string) типа. Поэтому, если программе надо получить значение числового типа, то введенная строка (изображение числа) должна быть пре­образована в число при помощи соответствующей функции преобразования.

s:=InputBox('Фунты-килограммы','Введите вес в фунтах','');

funt:=StrToFloat(s);

3.2.2.2. Ввод из поля диалогового окна

Ввод данных из поля ввода диалогового окна осуществляется обращением к свойству Text этого поля. Если Edit1 — имя поля, предназначенного для ввода коэффициента при второй степени неизвестного, тогда инструкция ввода значения коэффици­ента, для представления которого в программе используется переменная а типа real, будет иметь вид:

a:=StrToFloat(Edit1.Text);

В приведенной инструкции параметр Text — это имя внутренней перемен­ной (свойства) поля ввода, которая содержит текст, находящийся в поле.

Вывод данных

Программа может вывести результат в окно сообщения, в поле вывода диа­логового окна, в файл или на принтер.

Вывод в окно сообщения

Вывод в окно сообщения осуществляется вызовом процедуры ShowMessage или функции MessageDlg.

Процедура ShowMessage выводит на экран простое диалоговое окно с текстом и одной командной кнопкойОК.В общем виде инструкция вызова процедуры ShowMessage выглядит так:

ShowMessage(Сообщение);

где Сообщение — выражение строкового типа. Заголовок окна сообщения, выводимого про­цедурой ShowMessage, совпадает с именем исполняемого файла приложения.

Функция MessageDlg более гибкая. Она позволяет снабдить сообщение од­ним из стандартных значков Windows, например, значком "Внимание", а также задать количество и тип командных кнопок. Пример выполнения инструкции:

r:=MessageDlg('Дискриминант меньше нуля'+#13+'Уравнение не имеет действительных корней.', mtInformation, [nabOK], 0);

Функция MessageDlg возвращает результат — число, проверив значение ко­торого можно определить, выбором какой командной кнопки был завершен диалог.

В общем виде обращение к функции MessageDlg выглядит так:

Выбор:= MessageDlg(Сообщение,Тип,Кнопки,КонтекстСправки)

где

Сообщение — это текст выводимого сообщения;

Тип— это тип сообщения. Сообщение может быть информационным, пре­дупреждающим или сообщающим об ошибке. Каждому типу сообщения со­ответствует определенный значок. Задается тип сообщения именованной константой. В таблице приведены именованные константы, определяющие тип сообще­ния, выводимого функцией MessageDlg.

Именованные константы, определяющие тип сообщения

Константа Тип сообщения
mtWarningВнимание
MtErrorОшибка
MtlnformationИнформация
MtConfirmationЗапрос подтверждения
MtCustomОбычное сообщение

Кнопки — список, определяющий число и вид кнопок, отображаемых в окне сообщения. Список может состоять из нескольких разделенных запятыми именованных констант. Весь список заключается в квадратные скобки. Константы и соответствующий им текст на кнопках приведены в таблице:

Список именованных констант

Константа Текст на кнопке
mbУesYes
mbNoNo
mbOK OK
mbCancelCancel
mbHelpHelp
mbAbortAbort
mbRetryRetry
mbIgnoreIgnore
mbAllAll

Например, для того чтобы в окне сообщения появились кнопкиОК и Cancel, список кнопки должен состоять из следующих двух констант:

[mbOK, mbCancel ]

Кроме констант, приведенных в таблице, можно использовать константы:

mbOkCancel, mbYesNoCancel и mbAbortRetryIgnore. Эти константы определяют наиболее часто используемые в диалоговых окнах комбинации командных кнопок.

Контекст Справки— параметр, определяющий номер экрана справочной сис­темы, который появляется при нажатии клавиши <F1> в тот момент, когда окно сообщения находится на экране. Если использование справочной сис­темы не предусмотрено, то при вызове функции MessageDlg в качестве пара­метра контекстСправки должен быть указан ноль.

Значение возвращаемое функцией MessageDlg, позволяет определить, какая из командных кнопок была нажата. В таблице приведен список констант, идентифицирующих нажатую кнопку.

Именованные константы, идентифицирующие нажатую кнопку

Константа Диалог завершен нажатием кнопки
mrAbortAbort
mrYesYes
mrOkOk
mrRetryRetry
mrNo No
mrCancel Cancel
mrIgnore Ignore
mrAll Аll

Наши рекомендации