Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
36
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Определить возможность существования треугольника по сторонам

Задача:

Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.

Дано: a, b, c – стороны предполагаемого треугольника.

Требуется сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

Алгоритм решения задачи:

Приведено решение задачи на языке программирования Паскаль двумя способами. В одном случае, все условия проверяются в одном операторе if; во втором случае каждое условие проверяется отдельно, а программа содержит вложенные операторы if-else.

Программа на языке Паскаль:

var a, b, c: integer;

begin write (' Длины сторон: ');

readln (a,b,c);

if (a < b+c) and (b < a+c) and (c < a+b) then

writeln ('Треугольник существует.')

else

writeln ('Треугольник не существует.');

readln

end.

var a, b, c: integer;

begin

write ('Длины сторон: ');

readln (a,b,c);

if a < b+c then

if b < a+c then

if c < a+b then

writeln ('Треугольник существует.')

else

writeln ('Треугольник не существует.')

else

writeln ('Треугольник не существует.')

else

writeln ('Треугольник не существует.');

readln

end.

Определение четверти на координатной плоскости

Задача:

Всем известна прямоугольная (декартова) система координат, в которой две перпендикулярные оси делят плоскость на четверти. В первую четверть попадают точки, у которых обе координаты (x и y) больше нуля. Во вторую: x < 0, y > 0; третью: x < 0, y < 0; четвертую: x > 0, y < 0.

Допустим, требуется написать программу, определяющую по координатам точки, в какой четверти она находится.

Алгоритм решения задачи:

Для решения этой задачи уместно использовать условные операторы if-else вложенные друг в друга.

Программа на языке Паскаль:

var

x,y: real;

begin

write ('x = '); read (x);

write ('y = '); readln (y);

write ('Номер четверти координатной плоскости: ');

if (x > 0) and (y > 0) then

writeln ('I')

else

if (x < 0) and (y > 0) then

writeln ('II')

else

if (x < 0) and (y < 0) then

writeln ('III')

else

if (x > 0) and (y < 0) then

writeln ('IV')

else

writeln ('-. Точка лежит на оси.');

readln

end.

Примечания:

Почему именно вложенные? Ведь программа выглядела куда проще, если убрать все ветки else и оставить только if. Дело в том, что тогда при работе программа будет проверять все ветки if, даже если будет уже известно, что точка принадлежит I или II четверти. Такой алгоритм работы программы будет не совсем эффективным и грамотным.

Также желательно в программе предусмотреть случай, когда x или y (или оба значения) равны нулю. В таком случае точка будет лежать на соответствующей координатной оси (или находиться в начале координат).

Оператор case в задаче выбора

Задача:

Бывает, что вместо оператора if удобнее использовать оператор case. Обычно это случается, если переменная по условию задачи может принимать ограниченный диапазон значений или только конкретные значения. Текущее значение переменной (селектора) сравнивается со значениями-случаями, перечисленными в теле оператора case. Если значение селектора совпадает с каким-либо значением в операторе case, то выполняется ветка, относящаяся к данному случаю.

В задаче ниже в конструкции case сравнивается значение переменной ch с различными диапазонами значений. В случае совпадения, выводится соответствующая надпись.

Программа на языке Паскаль:

var

ch: char;

begin

write ('Введите символ: ');

readln (ch);

case ch of

'0'..'9': write ('Это число');

'a'..'z','A'..'Z': write ('Это английская буква');

'а'..'я','А'..'Я': write ('Это русская буква')

end;

readln

end.

Примечания:

Запись типа ‘a’..’z’ включает диапазон значений от символа ‘a’ до символа ‘z’ включительно.