Лаб №4 (Информатика)
.pdf11
t:=(x>95) and (x mod 3 = 1);
Обратите внимание, что в записи оператора присваивания использованы круглые скобки, т.к. операции отношения > и = имеют меньший приоритет, чем операция and.
Задание №4. Составить программу на языке Турбо-Паскаль,
печатающую значение true, если указанное высказывание является истинным, и false в противном случае:
1)Сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр.
2)Сумма цифр данного трехзначного числа N является четным
числом.
3)Точка с координатами (x, y) принадлежит части плоскости, лежащей между прямыми x=m, x=n (m<n).
4)Квадрат заданного трехзначного числа равен кубу суммы цифр этого числа.
5)Целое число N является четным двухзначным числом.
6)Треугольник со сторонами a, b, c является равносторонним.
7)Среди чисел a, b, c есть хотя бы одна пара взаимно противоположных чисел.
8)Числа a и b выражают длины катетов одного прямоугольного треугольника, а c и d – другого. Эти треугольники являются подобными.
9)Даны три стороны одного и три стороны другого треугольника. Эти треугольники равновеликие, т.е. имеют равные площади.
10)Данная тройка натуральных чисел a, b, c является тройкой Пифагора, т.е. c2 a2 b2 .
11)Все цифры данного четырехзначного числа N различны.
12)Данные числа x, y являются координатами точки, лежащей в первой координатной четверти.
13)x1 , y1 и x2 , y2 – координаты левой верхней и правой нижней
вершин прямоугольника. Точка A(x, y) принадлежит прямоугольнику.
12
14)Число c является средним арифметическим чисел a и b.
15)Натуральное число N является точным квадратом.
16)Цифры данного четырехзначного числа N образуют строго возрастающую последовательность.
17)Данные числа c и d являются соответственно квадратом и кубом
числа a.
18)Цифра M входит в десятичную запись четырехзначного числа N.
Пример решения задачи №4.
Рассмотрим следующее высказывание: «Треугольник со сторонами a, b, c является равнобедренным».
Из курса геометрии известно, что равнобедренным называется треугольник, у которого две стороны равны. Т.е., у треугольника должны быть равны либо стороны a и b, либо стороны b и с, либо стороны a и с. На языке Турбо-Паскаль это требование будет записано, используя логическую операцию or (т.к. для нас важно равенство хотя бы двух сторон, а не всех сторон сразу), следующим образом:
rs:=(a = b) or (b = c) or (a = c);
Таким образом, переменной rs будет присвоено значение true, если данное требование выполняется, и значение false в противном случае.
Также необходимо учесть, что любая сторона треугольника меньше суммы двух других сторон, но больше модуля их разности. Это требование важно для того, чтобы проверить, могут ли вообще введенные пользователем значения являться сторонами треугольника. Запишем это условие на языке Турбо-Паскаль, воспользовавшись логической операцией and (т.к. каждая сторона должна удовлетворять этому требованию):
tr:=(a>abs(b-c)) and (a<b+c) and (b>abs(a-c)) and
(b<a+c) and (c>abs(a-b)) and (c<a+b);
Таким образом, переменной tr будет присвоено значение true, если
данное условие выполняется, и значение false в противном случае.
13
Для записи всего высказывания на языке Турбо-Паскаль объединим два условия, рассмотренных выше, с помощью операции and, т.к. условия должны выполняться одновременно:
vys:=rs and tr;
Таким образом, переменной tr будет присвоено значение true, если высказывание истинно, и значение false в противном случае.
На рис. 1 представлен пример выполнения данного задания в системе Турбо-Паскаль.
Рис. 1. Текст программы для примера выполнения задания №4
Рассмотрим особенности данной программы.
Все переменные, соответствующие сторонам треугольника (a, b, c), и
переменные, в которых будет храниться результаты вычисления логических выражений (rs, tr, vys), объявлены в разделе описания переменных var.
Исполняемые операторы программы располагаются между служебными словами begin и end.
C помощью процедур write выводится подсказка пользователю о том, что необходимо ввести значения сторон треугольника a, b, c
соответственно.
C помощью процедуры readln пользователю предлагается ввести значения переменных a, b, c соответственно. После ввода значения каждой из переменных необходимо нажать клавишу «Enter».
14
Далее выполняется вычисление логического выражения,
предназначенного для проверки того, что у данного треугольника хотя бы две стороны равны, и присваивание его значения переменной rs.
Затем выполняется вычисление логического выражения,
предназначенного для проверки того, что введенные пользователем числа могут являться сторонами треугольника, и присваивание его значения переменной tr.
Далее выполняется вычисление логического выражения,
предназначенного для проверки истинности всего высказывания в целом,
т.е. для проверки того, что данный треугольник равнобедренный, и
присваивание его значения переменной vys.
Для вывода значения высказывания используется стандартная процедура writeln.
С помощью стандартной процедуры readln пользователю предлагается завершить выполнение программы, нажав клавишу «Enter».
Рассмотрим особенности выполнения программы для различных значений, вводимых пользователем.
Пусть пользователь ввел значения сторон a=5, b=6, c=7. На экран было выведено значение FALSE, т.к. такой треугольник с такими сторонами хоть и может существовать, но он не является равнобедренным, поскольку значения всех сторон различны (рис. 2).
Рис. 2. Пользователь ввел значения a=5, b=6, c=7
Пусть пользователь ввел значения сторон a=5, b=5, c=8. На экран было выведено значение TRUE, т.к. такой треугольник действительно является равнобедренным, поскольку две его стороны равны (рис. 3).
15
Рис. 3. Пользователь ввел значения a=5, b=5, c=8
Пусть пользователь ввел значения сторон a=3, b=3, c=50. На экран было выведено значение FALSE, т.к. хоть два первых числа и равны, но введенные числа не являются сторонами треугольника, т.к. не удовлетворяют условию, учтенному в переменной tr (рис. 4).
Рис. 4. Пользователь ввел значения a=3, b=3, c=50
Вопросы для самоконтроля
1)Что называется высказыванием?
2)Какая логическая операция изменяет значение логической величины на противоположное?
3)В каком случае результатом конъюнкции является «истина»?
4)В каком случае результатом дизъюнкции является «истина»?
5)Какими служебными словами обозначаются логические значения в языке Турбо-Паскаль?
6)Что является идентификатором логического типа данных в языке Турбо-Паскаль?
7)Сколько байт занимают в памяти величины логического типа данных в языке Турбо-Паскаль?
8)Для чего предназначены операции отношения в языке Турбо-
Паскаль?
9)В каких случаях логическая операция xor, используемая в языке Турбо-Паскаль, дает в результате значение «истина»?
10)Расположите логические операции, используемые в языке Турбо-
Паскаль, в порядке убывания приоритета:
а) and;
б) xor;
в) or;
16
г) not.
11)Что является результатом вычисления логического выражения в языке Турбо-Паскаль?
12)Что в логическом операторе присваивания, записанном на языке Турбо-Паскаль, расположено слева от знака присваивания, а что – справа?
13)Каким ключевым словом обозначают символьный тип данных в языке Турбо-Паскаль?
14)Сколько байт отводится под один символ?
15)Какие простые типы данных языка Турбо-Паскаль относятся к порядковым?
16)Что представляют собой все возможные значения порядкового типа языка Турбо-Паскаль?
17)Чему равно значение выражения ord(false), записанного на языке Турбо-Паскаль?
18)Чему равно значение выражения pred(true), записанного на языке Турбо-Паскаль?
19)Чему равно значение выражения odd(4), записанного на языке Турбо-Паскаль?
Список литературы
1) Семакин И.Г., Шестаков А.П. Лекции по программированию:
Учебное пособие. Изд. 2-е, доп. – Пермь: Изд-во Перм. ун-та, 1998. – 279 с. 2) Программирование на языке высокого уровня Паскаль. Лекция 1:
Основные понятия языка. [Электронный ресурс] – Режим доступа: http://www.intuit.ru/studies/courses/628/484/lecture/6259. (Дата обращения: 28.06.2013).
