 
        
        - •3.1. Язык программирования Паскаль
- •3.2. Структура программы в Паскале. Ввод и вывод данных.
- •Var ij:integer; X: real;
- •Var a,b: real;
- •3.3. Работа в системе Турбо Паскаль
- •3.4. Условный оператор
- •Var a, b: integer;
- •3.5. Организация циклов
- •Var a, b: integer;
- •Var a, b: integer;
- •Var a, b: integer;
- •Var a, p: real; I, n: integer;
- •Var p, I, n: integer;
- •Var X, у: real;
- •Var a, s: real; I, n: integer;
- •Var a: array [1 .. N ] of real;
- •1. Вычисление суммы элементов массива.
- •Var a: array [1 .. N ] of real; s : real; I: integer;
- •2. Нахождение наибольшего элемента массива.
- •Var a: array [1 .. N ] of integer; max, I: integer;
- •3. Упорядочение массива по возрастанию.
- •Var a : array [ 1.. N ] of real; I, j: integer; c: real;
- •4. Поиск элемента в массиве.
- •Var a : array [1 .. N ] of real; X : real; I : integer;
- •3.7. Алгоритмы обработки таблиц
- •1. Вычисление суммы элементов главной диагонали квадратной таблицы.
- •Var b: array [ 1..N, 1..N ] of real; I, j: integer;
- •Var b: array [ 1.. N, 1 .. N ] of real; I, j: integer; s: real;
- •2. Нахождение наибольших элементов каждой строки таблицы.
- •Var b: array [1 .. N, 1 .. N ] of integer; I, j: integer; a: array [1 .. N ] of integer;
- •3. Нахождение сумм элементов столбцов таблицы.
- •Var b: array [1 .. N, 1 .. N ] of integer; s, I, j: integer; a: array [1 .. N ] of integer;
- •4. Перестановка строк таблицы.
- •Var b: array [ 1 .. N, 1 .. M ] of real; c: real; I, j, k, l: integer;
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 
П 
	2 
	B
У 
	A 
	C
( 
	-1 
	1 
	x
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.
Вопросы и задания
- Как транслятор анализирует вложенные условные операторы? 
- Как работает неполный условный оператор? 
- Как проверить, является ли целое число нечетным? 
- Как выполняются логические операции и, или, не? Напишите программы на Паскале для решения следующих задач. 
- Даны три числа a, b и с. Выясните, верно ли а < b < с. Ответ получите в текстовой форме: верно или неверно. 
- Даны положительные числа а, Ь, с, х. Выясните, пройдет ли кирпич с ребрами а, Ь, с в квадратное отверстие со стороной х. 
- Выясните, принадлежат ли числа а и Ь промежутку (—1; 1). 
- Даны числа х и у. Вычислите число z, равное х + у, если х ≤ у, и 1— х + у в противном случае. 
- Присвойте г значение большего из чисел х и у в том случае, если х < 0, и меньшего, если х≥ 0. 
- Даны три действительных числа. Выберите те из них, которые принадлежат отрезку [1;3]. 
- Присвойте величине а значение наибольшего из трех заданных чисел. 
- Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так. 
- Проверьте, есть ли среди трех заданных чисел равные. 
- Даны два действительных числа. Меньшее из них замените полу суммой этих чисел, а большее — их произведением. 
- Вычислите наименьшее из трех заданных чисел. 
- Найдите решение уравнения ах + b = 0, если оно существует. 
- Если данное число х меньше нуля, то z присвойте значение большего из двух чисел х и у, иначе z присвойте значение полусуммы этих чисел. 
- Даны три действительных числа. Найдите наибольшее значение из их суммы и произведения. 
- Даны действительные числа а, Ь и с. Удвойте эти числа, если они являются упорядоченными по возрастанию. 
98
