Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tp_8_6.rtf
Скачиваний:
5
Добавлен:
13.07.2019
Размер:
134.63 Кб
Скачать

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

При решении задач на компьютере человек часто использует случайные числа. Это особенно важно при программировании игр. Для того, чтобы генерировать случайные числа, в паскале предусмотрена функция random. У нее один целочисленный аргумент. Функция возвращает неотрицательное целое случайное число, меньшее аргумента, пример использования

x:=random(y);

Если вы собираетесь использовать функцию random в своей программе, то до ее первого использования необходимо выполнить процедуру randomize без параметров, которая устанавливает генератор в начальное состояние. Если не использовать randomize, то вызовы random будут все время выдавать одну и ту же последовательность чисел.

Пример 3. Заполнить массив случайными числами от 0 до 9 и вывести на экран его элементы через пробел.

Решение.

var a:array[1..20] of integer;

begin

randomize;

for i:=1 to 20 do a[i]:=random(10);

for i:=1 to 20 do write(a[i],’ ‘);

end.

Задачи

  1. Прочитать с клавиатуры элементы массива. Вывести на экран те элементы, индексы которых нечетны.

  2. Записать в ячейки массива последовательность вида 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3…

  3. Заполнить массив случайными числами от 0 до 100 и вывести все элементы, которые лежат от 30 до 50.

  4. Заполнить массив случайными числами от 10 до 90 и вывести все элементы, которые лежат от 30 до 50.

  5. Ряд чисел образуется следующим образом. Сначала записывают числа 1 и 2. Каждое следующее число получается как сумма двух предыдущих. Вывести на экран первые 10 чисел ряда в порядке убывания.

Константы.

В примере 4 число 20 встречается во многих местах программы. Если его вдруг придется изменить, то легко запутаться. По этой причине имеет смысл дать числу 20 некоторое имя, а затем использовать это имя в программе. Для этих целей в паскале предусмотрен еще один тип объектов – константы. Константы имеют имя и значение и в этом смысле очень напоминают переменные. Два важнейших отличия констант:

  • значения констант нельзя изменять в программе

  • константы можно использовать вместо чисел в квадратных скобках при описании массива, а переменные – нельзя.

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

const n=10; k=5;

Рассмотрим использование константы на примере.

Пример 5. Массив из 20 элементов заполнить случайными числами от 0 до 99. Все элементы массива, меньшие 10, заменить нулями.

Решение.

const n=20;k=100;

var

a:array[1..n] of integer;

i,s:integer;

begin

randomize;

for i:=1 to n do a[i]:=random(k);

s:=0;

for i:=1 to n do if a[i]<10 then a[i]:=0;

writeln;

for i:=1 to n do write(a[i],’ ‘);

end.

Далее в задачах о массивах количество ячеек следует описывать как константу .

Задачи.

  1. Заполнить массив случайными числами от 0 до 100. Вывести элементы массива на экран. Все элементы массива, лежащие между 20 и 30 и между 50 и 60, уменьшить на 2.

Максимальный элемент массива

Сразу рассмотрим пример.

Пример 6. Заполнить массив случайными числами и вывести на экран наибольший элемент массива и его индекс.

Решение.

Нам необходимо хранить только индекс максимального элемента массива, для этого будем использовать переменную imax.

const n=20;

var

a:array[1..n] of integer;

i,imax:integer;

begin

randomize;

for i:=1 to n do a[i]:=random(100);

imax:=i;

for i:=2 to n do if a[i]>a[imax] then imax:=i;

writeln(‘максимальный элемент ’,a[imax]);

writeln(‘индекс максимального элемента’,imax);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]