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

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

Условное выражение- совокупность переменных и констант простых типов, объединеных знаками операций сравнения. Результат вычисления условного выражение - одно из двух логических значений типаBoolean:True(истина) илиFalse(ложь). В языке Паскаль определены шесть операций сравнения (все они относятся к четвертому (низшему) приоритету):

<

меньше

>

больше

<=

меньше или равно

>=

больше или равно

=

равно

<>

не равно

Типы операндов должны быть совместимыми по присваиванию. ^ Примеры условных выражений (условий):x<2     ch='Y'    a+b<>0    sin(x)>=0.5Важно: При сравнении вещественных чисел следует помнить, что в следствие неточности их представления в памяти компьютера (в виду неизбежности округления) стоит избегать попыток определения строгого равенства двух вещественных значений. Есть шанс, что равенство окажется ложным, даже если на самом деле это не так. Например, выражениеx = (2.23*x/2.23)формально является истинным, но из-за ошибок округления в вещественном типе может оказаться ложным.Логическое выражение- это совокупность переменных и констант логического типа, а также условных выражений, объединенных знаками логических операций. Операндами логических операций могут выступать другие логические выражения. Результат вычисления логического выражение, как и в случае условных выражений, - одно из двух логических значений типаBoolean:True(истина) илиFalse(ложь). В Паскале предусмотрены четыре логические операции:

Приоритет

Операция

Название

I-й

NOT

логическое отрицание

II-й

AND

логическое умножение

III-й

OR

логическое сложение

III-й

XOR

логическое исключающее сложение

Результаты логических операций в зависимости от значения операндов приведены ниже в виде "таблицы истинности":

L1

L2

not L1

L1 and L2

L1 or L2

L1 xor L2

False

False

True

False

False

False

False

True

True

False

True

True

True

False

False

False

True

True

True

True

False

True

True

False

^ Примеры логических выражений:(x>=0)and(x<=10)     (ch='y')or(ch='Y')    (x=5)or(y=1) (x+1>0)and(x+1<10) or (y>0)and(y<2)Обратите внимание на необходимость заключения в скобки условных выражений, выступающих операндами логических операций. Это необходимо сделать для того, чтобы сначала выполнялись операции сравнения (они имееют самый низший приоритет), а лишь затем логические операции.^

Символьные выражения

1. Оператор присваивания.Оператор присваивания придает переменной конкретное значение, например: x:=2; y:=5. Присваивание заполняет участок памяти, отведенный для переменной, новым значением, одновременно уничтожая старое. Поскольку задача любой программы - получить в определенном месте памяти нужное значение, редкая программа обходится без оператора присваивания. Присваивать можно значение другой переменной или результат вычисления арифметического выражения. a:=b; a:=b+c; x:=y+2-z. Общая схема оператора присваивания такова: имя := выражение^ 2. Оператор ввода данных.Мало программ обходятся без ввода данных и совсем нет таких, которые не выводят полученные результаты. Ввод данных с клавиатуры дисплея выполняется оператором READ (список переменных), где список переменных - последовательность имен переменных, разделенных запятыми. При выполнении оператора READ программа останавливается и ждет, пока информация не будет введена с клавиатуры. Вводимая информация разделяется пробелами или нажатием клавиши "Enter". Заканчивают ввод всегда клавишей Enter. Дополнительный оператор ввода - READLN (список переменных). После ввода данных происходит переход на следующую строку.3. Оператор вывода данных.Вывод данных на экран дисплея выполняется оператором WRITE (список печати) Элементами списка могут быть: переменные, числа, выражения, текст, заключенный ' ', элементы списка отделяются друг от друга запятой. Оператор WRITELN отличается от WRITE тем, что после вывода всех значений переводит курсор в начало следующей строки. Примеры.

  1. WRITE('Ответ=', Y)

  2. WRITE('Ответ=', 2*3.14/(1.34+56.3)) В операторе вывода можно задать формат вывода. WRITE(X:N:M) x- переменная вещественного типа n- выражения целого типа, характеризующие ширину поля вывода m-число будет выводиться с m знаками после запятой Примеры.

  3. ^ WRITE('A=', A:2, 'B=',B:3,'C=',C:1)

  4. WRITELN(A, B); WRITE(C)

  5. WRITELN(A<B:7)

  6. WRITE(Y:5:3, X:7:2)]

1. УСЛОВНЫЙ ОПЕРАТОР Условный оператор позволяет проверить некоторые условия и в зависимости от результата проверки выполнить то или иное действие. Условный оператор - это средство ветвления вычислительного процесса. Базовая структура алгоритма типа развилки, имеет два вида: полная и неполная. Вид Блок-схема Общий вид оператора: развилки Полная + - IF <P> THEN <S1> ELSE <S2>; P где IF (если) THEN (то) ELSE (иначе) – S1 S2 служебные слова языка Паскаль; Р – некоторое логическое условие; S1, S2 – любые операторы языка. а) Не полная + - IF <P> THEN <S1>; P S1 б) + P - IF < P > THEN <S1>; где P – некоторое логическое условие S1 (отрицание условия P или противоположное условию P); Развилка может иметь вложенную структуру, любой степени вложенности. Любой из операторов S1 или S2 может быть условным, причём не обязательно в нём будет присутствовать часть ELSE <S…>. Подобная неоднозначность решается следующим образом: любая встретившаяся часть 4 ELSE соответствует ближайшему к ней «сверху» части THEN условного оператора. При необходимости выполнить в условном операторе несколько операторов их заключают в операторные скобки BEGIN - END, в противном случае в условном операторе выполняется только первый после ключевого слова THEN или ELSE оператор. ^2. ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА В программе можно осуществить переход на помеченный оператор (не зависимо от какого либо условия), прервав последовательное выполнение программы. Для этого служит простой оператор безусловного перехода. Общий вид оператора: GOTO <метка>; Метка назначается пользователем и представляет собой целое число без знака, содержащее не более четырёх цифр или обычный идентификатор и отделяется от оператора двоеточием. Например: GOTO 120; GOTO 250; Используемые в программе метки должны быть описаны в разделе описания меток. Для приведённого примера раздел меток выглядит так:^LABEL 120, 250; Язык ПАСКАЛЬ является структурированным, поэтому особой необходимости в операторе безусловного перехода нет. Использовать его следует в редких случаях, например, для выхода к концу программы или процедуры в случае неправильного задания данных или выхода из цикла. Неправильное использование оператора GOTO усложняет программу за счёт многократных переходов вперёд или назад по программе, затрудняет её чтение, отладку и проверку на правильность.^. ОПЕРАТОР ВАРИАНТА Условный оператор позволяет при выполнении программы выбирать одно из двух возможных действий. Если же необходимо сделать много 6 взаимоисключающих проверок, то удобнее воспользоваться оператором выбора варианта. Общий вид оператора варианта: CASE <ключ выбора> OF <список меток>: <оператор(ы)>; … <список меток>: <оператор(ы)>; ELSE <оператор(ы)> END; Ключ выбора (селектор) представляет собой выражение скалярного типа (но не вещественного). Выполнение оператора варианта начинается с вычисления значения ключа выбора. Затем для использования выбирается оператор, одна из меток которого совпадает с полученным значением. После выполнения этого оператора (он может быть простым или составным) управление передаётся на оператор, следующий за оператором варианта. Если же значение ключа выбора не совпало ни с одной из меток, управление передаётся оператору, стоящему за словом Else. Часть Else может отсутствовать.^