Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-09-30 | 786 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Основные темы параграфа:
■ что такое случайные числа;
■ датчик случайных чисел на Паскале;
■ алгоритм поиска числа в массиве;
■ программа поиска числа в массиве.
Решим следующую задачу. Массив заполняется случайным набором целых чисел. Нужно определить, сколько раз данное целое число входит в этот массив.
Что такое случайные числа
Сначала несколько слов о случайных числах. Все себе представляют игральный кубик, имеющий шесть граней. При каждом бросании кубика выпадение какого-то числа есть случайное событие. С равной вероятностью может выпасть любое число от 1 до 6. Результат бросания кубика — это случайное число. А теперь представьте себе кубик с 10 гранями. Правда, кубиком его можно назвать только условно. Это десятигранник, на гранях которого нанесены числа от 1 до 10. Результат бросания такого «кубика» — случайное число в диапазоне от 1 до 10. Еще один пример. При розыгрыше лотереи из вращающегося барабана достают пронумерованные шары. Выпавший номер шара — случайное число.
Датчик случайных чисел на Паскале
В языках программирования, как правило, имеется аналог подобного «кубика» или лототрона, позволяющий получать случайные числа. Он называется датчиком случайных чисел. Это стандартная функция. В Паскале она записывается так: random (X). Здесь X — целое число. При выполнении функции ее результатом становится целое число в диапазоне от 0 до X. Например, если X = 50, то в результате можем получить любое целое число от 0 до 50.
Приведем программу, которая демонстрирует работу датчика случайных чисел на Паскале:
Program Example;
var I: integer;
Begin
for I:=l to 10 do
write(random(50):4)
End.
|
По этой программе на экран выводится десять случайных чисел из диапазона от 0 до 50. Вот результат тестового выполнения этой программы:
0 3 17 20 27 7 31 16 37 42
А теперь вернемся к условию задачи. Получающиеся с помощью датчика случайные числа «раскладываются» по элементам массива. Назовем массив Rand, а число элементов в нем пусть будет равно 20. Число, которое нужно искать в массиве, будет вводиться в переменную X.
Алгоритм поиска числа в массиве
На рисунке 2.11 приведена блок-схема алгоритма поиска в массиве Rand величины X с подсчетом числа ее вхождений в массив в переменной NumberX.
Обратите внимание на блок, отображающий цикл с параметром. Он имеет форму вытянутого шестиугольника. В блоке записывается параметр цикла (переменная I), начальное и конечное значения параметра через запятую (:=1, 20).
Переменная NumberX играет роль счетчика. Вначале ей присваивается ноль. Затем в цикле происходит перебор всех элементов массива, и при каждом выполнении условия равенства к счетчику добавляется единица. Так всегда организуются счетчики в программах! В результате выполнения программы на экран будет выведен один из двух вариантов ответа: либо сообщение, что в массиве нет данного числа, либо сообщение о том, сколько раз это число присутствует в массиве, если оно там обнаружено.
Программа поиска числа в массиве
Напишем программу на Паскале, содержащую как заполнение массива случайными числами, так и алгоритм, описанный в блок- схеме на рис. 2.11.
Program Example2;
var Rand: array [1..20] of integer;
I, X, NumberX: integer,
Begin
{Установка датчика случайных чисел}
Randomize;
{Заполнение массива случайными числами и вывод их на экран}
writeln('Массив случайных чисел: ')
for I:=l to 20 do
Begin
Rand[I]:=random(50); Write(Rand[I]:4)
end;
writeln;
{Ввод X}
write('Введите X: '); Readln(X);
{Подсчет числа вхождений X в массив}
NumberX:=0;
for I:=l to 20 do
if Rand(I)=X then NumberX:=NumberX+l;
{Анализ и выв од результата}
if NumberX=0
then writeln('В массиве нет числа ',Х)
else writeln('Число ',Х, ' в массиве присутствует ',NumberX, ' раз')
|
End.
В этой программе присутствует еще один новый для нас оператор: Randomize. Это стандартная процедура Паскаля, которая производит установку начального состояния датчика случайных чисел. Дело в том, что без этого оператора функция random при многократном повторении выполнения программы всегда будет выдавать одну и ту же последовательность чисел. Процедура Randomize случайным образом устанавливает начальное состояние датчика. Поэтому при каждом выполнении программы будут получаться разные наборы случайных чисел.
Посмотрите на результаты выполнения этой программы. Первое выполнение:
Массив случайных чисел:
5 44 0 41 29 12 1 39 32 25 17 31 44 5 5 16 29 10 13 34
Введите X: 5
Число 5 в массиве присутствует 3 раз
Жирным шрифтом обозначено вводимое с клавиатуры значение. Все остальные символы выводятся на экран по программе. Второе выполнение программы:
Массив случайных чисел:
41 33 26 26 33 11 19 38 29 4 31 20 6 32 39 21 28 40 7 19
Введите X: 2
В массиве нет числа 2
Коротко о главном
Случайные числа — результаты случайного выбора из конечного множества значений (игровой кубик, жребий, лотерея).
Функция random (X) — датчик случайных чисел в диапазоне от 0 до X на Паскале.
Для подсчета количества величин используется переменная-счетчик.
Вопросы и задания
1. Какие значения может принимать целая переменная Y, если в программе записано: Y:=10+random(5)?
2. Введите в компьютер программу Example2. Выполните программу, получите результаты.
3. Используя функцию random (X), получите числа в диапазонах: от 1 до 10, от —10 до +10, от 50 до 100.
4. Составьте программу заполнения массива из 100 чисел случайными значениями из диапазона от -20 до 20. Подсчитайте в этом массиве количество положительных и количество отрицательных значений.
5. Заполните случайными числами в диапазоне от 1 до 5 два массива: А[1:20] и Б[1:20]. Найдите и выведите на экран только те элементы этих массивов, значения которых совпадают. Например, если А[2] = В[2] = 4, то на экран надо вывести:
Номер: 2 значение: 4
Если таких совпадений нет, то выведите на экран сообщение об этом.
6. Придумайте свои способы получения случайных чисел.
ЕК ЦОР: часть 2, глава 6, § 43. ЦОР № 10-11.
§20
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!