Страницы

Уроки 3, 4 Условия в языке Паскаль. Оператор условия if

Условия в языке Паскаль. Логический тип данных


Условие – логическое выражение, о котором можно сказать истинно оно или ложно.

Различают два вида условий – простые и составные.

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

< - меньше
> - больше
<= - меньше или равно
>= - больше или равно
<> - не равно
= - равно

Например, простыми отношениями являются следующие:

x-y>10; m<=sqrt(c)+a+*b; n<>k

Составное условие – логическое выражение, содержащее несколько простых условий объединенных логическими операциями.
Это операции not, and, or.

Примечание: False - ложь, True - истина.


Значения операндов
Результат операции
X
Y
not X
X and Y
X or Y
False
False
True
False
False
False
True
True
False
True
True
False
False
False
True
True
True
False
True
True


Операция not (не) - логическое отрицание. Результат операции not есть False, если операнд истинен, и True, если операнд имеет значение ложь.

Результат операции and (и) истина, только если оба ее операнда истинны, и ложь во всех других случаях.

Результат операции or (или) есть истина, если какой-либо из ее операндов истинен, и ложен только тогда, когда оба операнда ложны.


Логический тип данных

Запись составных условий упрощает использование переменных логического типа.

Переменные логического типа описываются посредством идентификатора Boolean. Они могут принимать только два значения – False и True.

Описываются они в разделе описания переменных.
Var
F: Boolean;


Порядок выполнения операций

Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. При этом отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще принят следующий приоритет операций:
• not
• and, *, /, div, mod
• or, +, -
• операции отношения.

Порядок выполнения операций может изменяться скобками.
Например,

   4        3     2       1
A or B and not (A or B)

Сначала выполняется заключенная в скобки операция or, а затем операции not, and, or. Если подставить вместо переменных А и В значения True и False, то, используя уже рассмотренный порядок действий, получим значение всего выражения равное True.

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

Например, после выполнения оператора write (-1>2) на экран будет выведено False.



Задания

Задание 1. Верно ли, что все числа a, b,c положительны? 

      Тесты       Посмотреть решение    


Экспериментальный раздел работы

Измените программу для определения истинности:
1) ни одно из чисел a, b, c не является положительным;
2) только одно из чисел a, b, c положительно.




Задание 2. Вычислите значения выражений при a=20, b=1, c=true, d=false:
а) (a>10) and (b>20) and (a<30) and (b<20);
b) not (b<10) or not (a<20);
c) c or d and (b=1);


      Посмотреть решение           




Задание 3. Вычислите значения выражений при a=True, b=False:
а) a or b and not a;
б) (a or b) and not a.


     Посмотреть решение           


Разветвляющиеся алгоритмы. Оператор условия If

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

Общий вид оператора ветвления:


Полная форма:

if условие then оператор1 else оператор2;

Краткая форма:

if условие then оператор1;

if (если) , then (то, тогда), else (иначе) - служебные слова.

Если условие, стоящее за служебным словом if, истинно, то выполняется оператор1. Если условие ложно, то при использовании полной формы оператора, выполняется, оператор2.

После служебных слов then и else может стоять только один оператор!!!




Задания

Задание 4. Определить принадлежит ли заданное число х отрезку [-5;5].
Ввод: х
Вывод: текст "заданное число (с 3 знаками после запятой) не принадлежит отрезку" или "заданное число (с 3 знаками после запятой) принадлежит отрезку" 


         Тесты          Посмотреть решение       



Задание 5. Вывести на экран большее из двух данных чисел.
Ввод: x, y - два числа
Вывод: большее из данных чисел с двумя знаками после запятой

         Тесты          Посмотреть решение       


Экспериментальный раздел работы

1) Измените программу  для нахождения меньшего из двух чисел.

2) Измените программу  для нахождения большего из трех чисел.

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

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



Задание 6. Составить программу, которая меняет отрицательное число на противоположное.
Ввод: x - число
Вывод: х с четырьмя знаками после запятой


         Тесты          Посмотреть решение       

Важно: При необходимости выполнить более одного действия в «ветвях» оператора if, используют операторные скобки Begin End, которые образуют вместе c операторами, записанными между ними, составной оператор.




Задание 7. Найти большее и меньшее из двух чисел.
Ввод: x, y - числа
Вывод: max=..., min=... c двумя знаками после запятой


         Тесты          Посмотреть решение       


Вложенное ветвление



Задание 8. Дано целое число, не равное 0. Составить программу, деления положительного числа, которое кратно 4 на 4 и вычисления модуля отрицательного числа.

         Тесты          Посмотреть решение       




Задание 9. Составьте программу, определяющую, является ли число А делителем числа В.

         Тесты          Посмотреть решение       



Задание 10. Составьте программу, заменяющую меньшее из двух данных чисел суммой, а большее - произведением этих чисел.

         Тесты          Посмотреть решение       


Задания

1. Даны положительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоугольника. Ответ получить в текстовой форме: можно или нельзя.

2. Даны положительные числа a, b, c, х. Выяснить, пройдет ли кирпич с ребрами a, b, c в квадратное отверстие со стороной х. Просовывать кирпич в отверстие можно только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

3. Даны три числа a, b, c. Удвоить каждое из данных чисел, если a>=b>=c и заменить числа их модулями в противном случае.

4. Даны числа х, у. Если х и у отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны, то оба значения увеличить в 10 раз.

5. Если сумма трех попарно различных чисел x, y, z меньше единицы, то меньшее из х, у заменить полусуммой y и z, иначе большее из х и z заменить на 5у.

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

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

8. Длины сторон треугольника равны a, b, c. Определить, является ли этот треугольник: а) равносторонним, равнобедренным, разносторонним; б) остроугольным, тупоугольным или прямоугольным.

9. Даны величины трех углов четырехугольника ABCD: угол А равен a, угол В равен b, угол С равен c. Является ли этот четырехугольник параллелограммом, трапецией или не является ни параллелограммом, ни трапецией?

10. Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).


Задания для самостоятельной работы

1. Дано трехзначное число. Определить, верно ли, что все его цифры одинаковые.

2. Составить программу определения наибольшего и наименьшего из трех заданных чисел.

3. Даны три числа. Определить, существует ли треугольник со сторонами равными введенным числам. (Треугольник существует, если сумма меньших сторон больше наибольшей стороны и все числа положительны)

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

5. Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т. е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.



Тест