Пример1.

Составить программу, которая вычисляет частное двух целых чисел. В связи с тем, что делить на нуль нельзя, организуем контроль ввода данных.

program primer1;

var

А,В : integer;

Rezult: real;

begin

Write('Введите значение делимого А');

Read(A);

Write('Введите значение делителя В');

Read(В);

if В=0 {Контроль ввода}

then Writeln('На нуль делить нельзя') {Условие выполнено}

else {Условие не выполнено}

begin {Начало составного оператора}

Rezult := А / В;

Writeln('Частное чисел ',А,' и ',В,' = ',Rezult);

end; {Конец составного оператора}

end.

Пример2. Вычислить корни квадратного уравнения ax2 + bx + c = 0.

program primer2;

var a,b,c,d : integer;

ds,x1,x2: real;

begin

Write('Введите a, b, c');

Read(a,b,c);

D:=sqr(b)-4*a*c; {Вычисляем значение дискриминанта}

if d>=0 then

begin {Начало составного оператора}

ds:=sqrt(d); {квадратный корень из дискриминанта}

x1:=(-b+ds)/2*a;

x2:=(-b-ds)/2*a;

Writeln('x1= ',x1,' x2= ',x2);

end {Конец составного оператора}

else writeln(‘Решения нет’)

end.

(Блок-схемы сама. Можно привести пример для 2 лабы).

Оператор выбора case

Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произволь­ного числа имеющихся вариантов.

Формат:

case <выражение-селектор> of

<список1>: <оператор1>;

<список2>: <оператор2>;

<списокN>: <операторN>;

[else <оператор0>;]

end;

Оператор case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна текущему значению селектора, выполняется оператор, стоящий за словом else. Если слово else отсутствует, активизируется оператор, находящийся за словом end, т.е. первый оператор за границей case.

Выражение-селектор - это простая переменная целого, символьного, перечисляемого или логического типов, в зависимости от значения которой принимается решение;

Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Тип констант должен совпадать c типом селектора;

В указанном формате предполагается использование одного оператора для каждой альтернативы, но при необходимости можно можно задать несколько операторов, группировав их в составной оператор.

Ветвь Else не обязательна, и в отличие от оператора if, перед ней можно ставить точку с запятой.

Пример1. Определить в каком диапазоне находится введенное целое число.

program primer1;

var i:integer;

begin

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

readln(i);

case i of

0..10 : writeln('Число в диапазоне 0-10');

11..20: writeln('Число в диапазоне 11-20');

21..30 : writeln('Число в диапазоне 21-30');

else writeln('Число вне пределов контроля');

end;

end.

Пример2. Для целого числа N от 1 до 8 напечатать фразу "Мы нашли N грибов", согласовав окончание слова "гриб".

program primer2;

var n: 1..8;

begin

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

readln(n);

case n of

1: writeln('Мы нашли ',n, ' гриб');

2,3,4: writeln('Мы нашли ',n, ' гриба');

5..8 : writeln('Мы нашли ',n, ' грибов');

else writeln('Число вне пределов контроля');

end;

end.