else writeln('Число "N" не входит в указанный диапазон') end;
Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы "неудачник".
PROGRAM FUTURE;
var N: word;
Begin
writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');
Randomize; N:=Random(20)+1; { N - случайное число от 1 до 20 }
writeln; write('Вас ожидает _');
Case N of
1: writeln('счастье'); 6: writeln('здоровье');
2: writeln('пятерка'); 7: writeln('деньги');
3: writeln('дорога'); 8: writeln('любовь');
4: writeln('двойка'); 9: writeln('встреча');
Writeln('болезнь'); 10: writeln('дети')
else writeln('неудача') end;
writeln('Нажми Enter'); readln;
END.
Здесь функция Random(x) генерирует случайное число, с равномерной плотностью распределения на заданном интервале. Для инициализации распределения в начале программы необходимо вызвать процедуру Randomize.
Практическое задание N 1. 4
1. Назначить дежурного в классе из списка 10 учеников с вероятностью 1/15, в остальных случаях дежурит учитель.
2. Выбрать место отдыха в отпуске из списка 10 мест, предлагаемых туристическим агентством с вероятностью 1/30, в остальных случаях вы отдыхаете дома.
|
|
3. Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе), например: 1.. 2: плохо, 3.. 5: удовлетворительно, и т. д., иначе - неправильный ввод данных.
4. Вывести на экран сообщение в зависимости от введенного значения температуры воздуха (от -50 до +50 0 С), например: -50.. -20: очень холодно,
-19.. -10: холодно, и т. д., иначе - неправильный ввод данных.
Условный оператор
Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия. Оператор имеет вид:
IF "условие" Then "оператор1" Else "оператор2";
где "условие" - выражение логического типа;
"оператор1" выполняется, если условие верно (True),
"оператор2" выполняется, если условие не верно (False).
Например, вычисление квадратного корня из числа "a" проводится при условии a>=0, операторами: IF a >= 0 Then b:= Sqrt(a) Else begin WriteLn ('a<0'); Readln; Halt end;
Оператор Halt прекращает выполнение программы.
Схема выполнения условного оператора имеет вид:
IF В условном операторе может отсутствовать
(True) блок Else оператор2; т. е. условный оператор
может иметь вид:
(False) IF "условие" Then "оператор1";
например: IF a<0 Then a:= abs(a);
Else Then
Оператор2 оператор1
Пример программы: Автобус движется по заданному маршруту с объявлением названий остановок. Зная остановку, на которой надо выходить, вы принимаете определенное решение: Выхожу, либо - Еду дальше, которое выводится на экран.
|
|
PROGRAM octanovka;
CONST A1= 'Бульвар Славы'; A2= 'Горсовет'; { A1, A2, A3, A4 - названия }
A3= 'Спортивная'; A4= 'УАИ'; { остановок }
Y= 'Выхожу'; N= 'Еду дальше';
var A, A0: String; { A0 - текущая остановка }
BEGIN
writeln('Ввести нужную остановку из списка:');
writeln(A1:15, A2:15, A3:15, A4:15);
Writeln; readln(A); Writeln; { A - нужная остановка }
IF (A<>A1) and (A<>A2) and (A<>A3) and (A<>A4)
then begin Writeln('Нет такой остановки'); readln; Halt end;
A0:= A1; { объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A2; { объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A3; { объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A4; { объявление остановки }
writeln(Y, A:15); readln;
END.
Первый условный оператор осуществляет контроль входных данных. Напомним, что в случае нескольких условий, соединенных логическим "И" результирующее условие имеет значение True, если каждое условие верно, иначе - False.
В случае нескольких условий, соединенных логическим "ИЛИ" результирующее условие имеет значение True, если хотя бы одно условие верно, иначе - False.
Поскольку операции сравнения имеют низший приоритет, то при проверке нескольких условий эти условия заключаются в скобки.