Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal.doc
Скачиваний:
14
Добавлен:
06.09.2019
Размер:
3.69 Mб
Скачать

Ветвления и циклы в паскале. Оператор варианта Оператор ветвления (условный).

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

IF условие THEN серия команд; {неполный оператор}

IF условие THEN серия команд 1 ELSE серия команд 2; {полный оператор}

Данный оператор выполняется следующим образом. Сначала вычисляется выражение, стоящее после служебного слова if. Результат вычисления должен иметь булевский тип. Если значение выражения есть true, то выполняется оператор, указанный после служебного слова then. Если результат вычисления выражения есть false, выполняется оператор, следующий за служебным словом else. Если при этом часть условного оператора, начиная со слова else, отсутствует (неполный оператор), то выполняется следующая строка программы.

Пример1. Сравнить длины отрезков a и b. Эта программа выведет сообщение только в случае равенства отрезков.

program lenth;

var a,b: real; y:string;

begin

write('Введите значения a,b');

readln(a,b);

if (a=b) then y:='Длины отрезков равны';

writeln (y);

end.

Эта программа выведет сообщения на оба случая:

program lenth2;

var a,b: real; y:string;

begin

write('Введите значения a,b');

readln(a,b);

if (a=b) then y:='Длины отрезков равны'

else y:=’Длины отрезков неравны’;

writeln (y);

end.

Обратите внимание – точка с запятой ставится после написания ВСЕГО оператора IF…THEN…, будь он полный или неполный.

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

Это пример программы с использованием конструкции ELSE IF.

program triangle;

var a,b,c: real; y:string;

begin

write('Введите значения a,b,c');

readln(a,b,c);

if (a=b) and (b=c) then y:='Треугольник равносторонний'

else if (a=b) or (b=c) or (c=a) then y:='Треугольник равнобедренный'

else y:='Треугольник разносторонний';

writeln (y);

end.

Эту же программу можно написать, не используя else if. Она будет выглядеть проще – напишите ее самостоятельно.

Условный оператор управляет только одним действием (оператором), поэтому, если требуется произвести более 1 действия, то несколько действий необходимо заключать в операторные скобки BEGIN…END:

IF условие THEN

BEGIN

действие1;

действие2;

действиеN

END;

Аналогично для полного оператора:

IF условие THEN BEGIN действие1; действие2 END

ELSE BEGIN действие1; действие2 END;

ЗАДАНИЕ:

  1. Написать программу, запрашивающую с клавиатуры ввод двух чисел и выводящую меньшее из них.

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

  3. Написать программу вычисления корней квадратного уравнения.

  4. Расположить три числа a, b, c в порядке возрастания их значений.

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

  6. Даны отрезки А, В, С. Написать программу, определяющую возможность построения треугольника по этим отрезкам.

  7. Длины сторон треугольника равны a, b, c. Определите, является ли этот треугольник остроугольным, прямоугольным или тупоугольным. Подсказка: Используем следствие из теоремы косинусов: если в треугольнике со сторонами a,b,c t=a*a+c*c - a*a и t>0, то угол a - острый, если t=0, то угол а - прямой, если t<0, то угол а - тупой

  8. Даны три действительных числа А, В, С. Определите, сколько среди них отрицательных.

  9. Вычислить значение Y: