Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция программирование для студентов.doc
Скачиваний:
8
Добавлен:
04.11.2018
Размер:
267 Кб
Скачать
☆

Генератор случайных чисел

Для работы со случайными числами подключается генератор с помощью процедуры RANDOMIZE (указывается после первого BEGIN)

Для дальнейшего использования применятся функция RANDOM. Формат записи:

:= RANDOM

Действительные числа из диапазона от 0 до 1

:= RANDOM (N)

Целые числа из диапазона от 0 до N-1

:= RANDOM (N+M+1)+M

Целые числа из диапазона от N до M

Пример:

A := random (11)-5

Переменная a принимает случайное целое значение из диапазона от -5 до 5

B := random (20)

Переменная b принимает случайное целое значение из диапазона от 0 до 19

Задача 1. Вычислить произведение двух вещественных чисел, которые формируются с помощью генератора случайных чисел. Вывести результат с точностью 3 знака после запятой.

Program Primer1;

Uses crt;

Var a, b, p:real;

Begin

Randomize;

a:=random;

b:=random;

p:=a*b;

Writeln('p=',p:6:3);

Readln;

End.

Условные операторы

Блок схема разветвляющегося алгоритма

Разветвляющийся алгоритм применяется, когда в зависимости от условия необходимо выполнить либо одно, либо другое действие. Эти действия могут быть составным оператором. При словесном способе описания разветвления, последовательность такова:

1.Если выполняется условие, то выполняется оператор1

2. Если условие не выполняется, то выполняется оператор2.

В TP имеются два условных оператора: if и case

Условный оператор if

Формат записи: 1 вариант: if <условие> then <оператор1> else <оператор2>

{ если <условие> то <оператор1> иначе <оператор2>}

2 вариант: if <условие> then <оператор1>

{ если <условие> то <оператор1>}

Принцип действия: сначала проверяется или вычисляется условие. В результате получается значение булевского типа. Если значение условия True (Истина), то выполняется <оператор1> (стоящий после then); если значение условия False (Ложь) – выполняется <оператор2> (стоящий после else).

Задача.

Задано число х. Вычислить S.

В качестве <оператора1> и <оператора2 > могут использоваться и составные операторы. Тогда необходимо их объединять с помощью операторных скобок (begin и end).

Формат записи: if <условие> then

begin

<оператор1>

<оператор2>

….

<операторN>

end

else

begin

<оператор1>

<оператор2>

….

<операторM>

end;

Операторы if могут быть вложенными (составными).

Например: if <условие> then

if <условие> then <оператор1> else <оператор2>

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

Оператор case позволяет сделать выбор из произвольного числа имеющихся вариантов. Оператор состоит из выражения-селектора (selection – выбор альтернативы), относительно которого выбирается вариант, и списка параметров, каждому из которых константа или список констант.

Формат записи: case <выражение-селектор>of

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

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

…………………………

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

else <оператор>;

end.

Принцип действия: сначала вычисляется значение <выражения-селектора>, затем выполняется тот оператор, константа которого равна значению <выражения-селектора>. Если ни одна константа не равна значению <выражения-селектора>, то выполняется оператор, стоящий за else.

Если слово else отсутствует, то выполняется оператор, стоящий после слова end, т.е. находящийся за пределами оператора case.

<Выражение-селектор> должен относиться к одному из целочисленных типов, булевскому, символьному или пользовательскому. Список констант состоит из произвольного количества значений или диапазона. Границы диапазона записываются следующим образом: a..b, где a – начальное значение диапазона, b – конечное значение.

Тип констант обязательно должен совпадать с типом <выражения>. <операторы>, идущие после констант могут быть составными операторами.

Формат записи: case <выражение-селектор>of

<константа1>:

begin

<оператор1>;

<оператор2>;

……………..

<операторM>;

end;

…………………………

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

else <оператор>;

end.

Program solution;

var a:integer; x,s:real;

begin

writeln(‘Введите x’);

readln (x);

writeln(‘Введите a’);

readln (a);

case a of

1: s:=x+1;

5: s:=x+2;

7: s:=x+3;

11: s:=x+10;

else s:=x;

end;

writeln(‘s =’,s);

end.

Задача. Вычислить