Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Кузнецова.doc
Скачиваний:
9
Добавлен:
18.11.2019
Размер:
369.15 Кб
Скачать

Var a, b: integer;

begin

writeln ('введите два целых числа');

readln (a, b);

if a mod 2 = 0 then writeln ('a — четное')

else writeln ('a — нечетное');

if b mod 2 = 0 then writeln ('b — четное')

else writeln ('b — нечетное')

end.

Логические выражения. Алгоритм решения квадратного уравнения содержит проверку условия d < 0. Два значения, d и 0, связаны отношением < — меньше. Если условие выпол­няется, то говорят, что соответствующее выражение истинно, если не выполняется — выражение ложно. Речь идет о логи­ческом выражении. Для построения сложных условий в Пас­кале имеются логические операции and (и), or (или) и not (не). Обозначив истинное значение через 1 и ложное через 0, построим таблицы истинности для этих операций.

X

Y

XandY

1

1

1

1

0

0

0

1

0

0

0

0

X

Y

XorY

1

1

1

1

0

1

0

1

1

0

0

0

Рассмотрим примеры построения сложных логических вы­ражений.

1. Пусть требуется определить, принадлежит ли точка с ко­ординатой х отрезку [а; b]. Если записать это условие двой­ным неравенством, то читать его надо так: х меньше либо равен b и больше либо равен a (a≤ хb). Отношение «меньше либо равно» в Паскале записывается двумя знаками. Аналогично записывается и «больше либо равно». Однако в Паскале нельзя записывать двойное неравенство. Используя логическую операцию and (и), запишем:

<= a) and<= b)

96

b

a

x

y

z

Рис. 32

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

2. Имеется прямоугольное отверстие со сторонами а и b и кирпич с ребрами z, у, г. Требуется составить условие про­хождения кирпича в отверстие (рис. 32).

Кирпич пройдет в прямоугольное отверстие, если выпол­нится сложное условие:

(ах) and (b ≥y) or

(ау) and (b ≥x) or

(ах) and (b ≥z) or

(a ≥z) and (b ≥x) or

(a ≥y) and (b ≥z) or

(a ≥z) and (b ≥y)

Для трех граней шесть условий получается потому, что можно каждую грань повернуть на 90° и проверить для каж­дой грани два случая.

3. Определить принадлежность точки фигуре. Пусть фигура задана ограничивающими ее прямыми (рис. 33). Для каждой прямой определим полуплоскость, в которой находится фигу­ра — треугольник ABC. Полуплоскость задается неравенством.

Полуплоскость, находящаяся выше оси х определяется неравенством у> 0.

П

y

олуплоскость, находящаяся справа от прямой, соединяющей точки (—1,0) и (0,2), задается неравенством y — 2x—2<0.

П

2

B

олуплоскость, находящаяся слева от прямой, соединяющей точки (1,0) и (0,2), за­дается неравенством у + 2х — 2 < 0.

У

A

C

словие принадлежности точки (х, у) фигуре:

(

-1

1

x

Y>0)and(Y-2*X-2<0)and(Y + 2*X-2<0) Рис. 33

97

4. Приведем пример программы определения существования треугольника со сторонами a, b и с. Условие существования треугольника известно из геометрии: сумма двух любых сто­рон должна быть больше третьей. Следовательно, для всех сто­рон условие «сумма двух больше третьей» должно выполняться.

Program E4; var a, b, с: real;

begin

Writeln ('введите длины трех сторон треугольника ');

Readln (a, b, с);

Write ('треугольник со сторонами ', а, Ь, с);

if (а + b > с) and (b + с > a) and (а + с> b) then write ('существует')

else write ('не существует');

Readln

end.

Вопросы и задания

  1. Как транслятор анализирует вложенные условные операторы?

  2. Как работает неполный условный оператор?

  3. Как проверить, является ли целое число нечетным?

  4. Как выполняются логические операции и, или, не? Напишите программы на Паскале для решения следующих задач.

  1. Даны три числа a, b и с. Выясните, верно ли а < b < с. Ответ получите в текстовой форме: верно или неверно.

  2. Даны положительные числа а, Ь, с, х. Выясните, пройдет ли кирпич с ребрами а, Ь, с в квадратное отверстие со стороной х.

  3. Выясните, принадлежат ли числа а и Ь промежутку (—1; 1).

  4. Даны числа х и у. Вычислите число z, равное х + у, если х у, и 1— х + у в противном случае.

  5. Присвойте г значение большего из чисел х и у в том случае, если х < 0, и меньшего, если х 0.

  1. Даны три действительных числа. Выберите те из них, которые принадлежат отрезку [1;3].

  2. Присвойте величине а значение наибольшего из трех заданных чисел.

  3. Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так.

  1. Проверьте, есть ли среди трех заданных чисел равные.

  1. Даны два действительных числа. Меньшее из них замените полу­ суммой этих чисел, а большее — их произведением.

  1. Вычислите наименьшее из трех заданных чисел.

  2. Найдите решение уравнения ах + b = 0, если оно существует.

  3. Если данное число х меньше нуля, то z присвойте значение большего из двух чисел х и у, иначе z присвойте значение полусуммы этих чисел.

  1. Даны три действительных числа. Найдите наибольшее значение из их суммы и произведения.

  2. Даны действительные числа а, Ь и с. Удвойте эти числа, если они являются упорядоченными по возрастанию.

98