Операторы ветвления и выбора

Условный оператор: пример вычисления значения функции

Вычислить значение функции

Операторы ветвления и выбора - student2.ru

при значениях: Операторы ветвления и выбора - student2.ru

В приведенном ниже примере использовано вложение одного условного оператора в другой. Обратите внимание: во вложенном условном операторе if каждое простое условие взято в скобки. Это делается потому, что приоритет операций сравнения ниже приоритета логических операций, и в отсутствие скобок компилятор строил бы конструкцию вида ln(a) and x, что привело бы к ошибке.

program ex02_02;

const a=0.2; b=5; z=1;

var x,y: real;

begin

write('введите x:'); readln(x);

IF (x<ln(a)) THEN y:=a*sqr(sin(x))+b*x

ELSE

IF (x>ln(a)) and (x<=b) THEN y:=a*x

ELSE y:=sqrt(2.5*a*a*a+sqr(b-z*x));

end.

Результат работы программы:

введите x:2

y = 0.4000

Оператор выбора: пример определения числа дней в месяце

Вывести на экран число дней в месяце.

Для наглядности принято, что год не високосный. Для случая, когда введен неверный номер месяца, использован вариант по умолчанию:

program ex02_03;

var M, D: integer;

begin

writeln('Введите номер месяца:');

read ( M );

case M of

2: begin D := 28; end;

4,6,9,11: begin D := 30; end;

1,3,5,7,8,10,12: D := 31;

else D := -1;

end;

if D > 0 then

writeln('В этом месяце ', D, ' дней.')

else

writeln('Неверный номер месяца');

end.

Результат работы программы:

Введите номер месяца:14

Неверный номер месяца

Введите номер месяца:2

В этом месяце 28 дней.

Вычисление дня недели по дате

Вычислить номер дня недели по введенной дате. Входные данные: day – число месяца, month и year – месяц и год. Вычисление производится по формуле:

Операторы ветвления и выбора - student2.ru

где:m и y – месяц и год по древнеримскому календарю (год в Древнем Риме начинался с марта),с – номер столетия, переменная Y – номер года в столетии. Квадратные скобки означают, что надо взять целую часть выражения.

Чтобы вычислить год и месяц по древнеримскому календарю, необходимо выполнить действия:

1) если месяц month равен 1 или 2, то год year уменьшить на единицу;

2) иначе выполнить: m = month - 2; если m меньше нуля, то прибавить 12.

Результат – номер дня недели (0 – воскресенье).

В программе используются условный оператор и оператор выбора, а также операции целочисленного деления div и получения остатка от целочисленного деления mod.

program DayOfWeek;

{вычисляет день недели по введенной дате}

var

{ вводимые данные }

day, month, year: integer;

dow: integer; {результат: номер дня недели}

d,m,c,y:integer;

begin

write('введите через пробел день, месяц и год: ');

readln(day, month, year);

if (month=1) or (month=2) then year:=year-1;

m:=month-2;

if m<=0 then m:=m+12;

c:=year div 100;

y:=year mod 100;

d:=(day + (13*m-1) div 5 +y+ (y div 4) +

(c div 4) - 2*c + 777) mod 7;

case d of

0: writeln('воскресенье');

1: writeln('понедельник');

2: writeln('вторник');

3: writeln('среда');

4: writeln('четверг');

5: writeln('пятница');

6: writeln('суббота');

end;

readln;

end.

Пример работы программы:

введите через пробел день, месяц и год: 10 12 2016

суббота

Операторы цикла

Наши рекомендации