KNOWLEDGE HYPERMARKET


Одна задача обработки массива

Гипермаркет знаний>>Информатика>>Информатика 9 класс>>Информатика: Одна задача обработки массива



§ 43. Одна задача обработки массива


Основные темы параграфа:

♦ что такое случайные числа;
♦ датчик случайных чисел на Паскале;
алгоритм поиска числа в массиве;
♦ программа поиска числа в массиве.

Решим следующую задачу. Массив заполняется случайным набором целых чисел. Нужно определить, сколько раз данное целое число входит в этот массив.


Что такое случайные числа

Сначала несколько слов о случайных числах. Все себе представляют игральный кубик, имеющий шесть граней. При каждом бросании кубика выпадение какого-то числа есть случайное событие. С равной вероятностью может выпасть любое число от 1 до 6. Результат бросания кубика — это случайное число. А теперь представьте себе кубик с 10-ю гранями. Правда, кубиком его можно назвать только условно. Это — десятигранник, на каждой грани которого нанесены числа от 1 до 10. Результат бросания такого «кубика» — случайное число в диапазоне от 1 до 10. При розыгрыше лотереи из вращающегося барабана достают пронумерованные шары. Выпавший номер шара — случайное число.


Датчик случайных чисел на Паскале

В языках программирования, как правило, имеется аналог подобного «кубика» или лототрона, позволяющий получать случайные числа. Он называется датчиком случайных чисел. Это стандартная функция. В Паскале она записывается так: random (X). Здесь X — целое число. При выполнении функции ее результатом становится целое число в диапазоне от 0 до X. Например, если X = 50, то в результате можем получить любое целое число от 0 до 50.

Приведем программу, которая демонстрирует работу датчика случайных чисел на Паскале:

Программа

Программа

По этой программе на экран выводится десять случайных чисел из диапазона от 0 до 50. Вот результат тестового выполнения этой программы:

0 3 17 20 27 7 31 16 37 42

А теперь вернемся к условию задачи. Получающиеся с помощью датчика случайные числа «раскладываются» по элементам массива. Назовем массив Rand, а число элементов в нем пусть будет равно 20. Искомое число будет вводиться в переменную X.


Алгоритм поиска числа в массиве

На рис. 6.11 приведена блок-схема алгоритма поиска в массиве Rand величины X с подсчетом числа его вхождений в массив в переменной NumberХ.

Блок-схема алгоритма

Обратите внимание на блок, отображающий цикл с параметром. Он имеет форму вытянутого шестиугольника. В блоке записывается параметр цикла (переменная I), начальное и конечное значения параметра через запятую (:=1, 20).

Переменная NumberХ играет роль счетчика. Вначале ей присваивается ноль. Затем в цикле происходит перебор всех элементов массива, и при каждом выполнении условия равенства к счетчику добавляется единица. Так всегда организуются счетчики в программах! В результате выполнения программы на экран будет выведен один из двух вариантов ответа: либо сообщение, что в массиве нет искомого числа, либо сообщение о том, сколько раз это число присутствует в массиве, если оно там обнаружено.


Программа поиска числа в массиве

Напишем программу на Паскале, содержащую как заполнение массива случайными числами, так и алгоритм, описанный в блок-схеме на рис. 6.11.


Программа

В этой программе присутствует еще один новый для нас оператор: Randomize. Это стандартная процедура Паскаля, которая производит установку начального состояния датчика случайных чисел. Дело в том, что без этого оператора функция random при многократном повторении выполнения программы всегда будет выдавать одну и ту же последовательность чисел. Процедура Randomize случайным образом устанавливает начальное состояние датчика. Поэтому при повторном выполнении программы будут получаться разные наборы случайных чисел.

Посмотрите на результаты выполнения этой программы. Первое выполнение:

Результаты выполнения программы

Жирным шрифтом обозначено вводимое с клавиатуры значение. Все остальные символы выводятся на экран по программе. Второе выполнение программы:

Результаты выполнения программы


Коротко о главном

Случайные числа — результаты случайного выбора из конечного множества значений (игровой кубик, жребий, лотерея).

Функция random (X) — датчик случайных чисел в диапазоне от 0 до X на Паскале.

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


Вопросы и задания

1. Придумайте свои способы получения случайных чисел.
2. Какие значения может принимать целая переменная Y, если в программе записано: Y:=10+random(5)?
3. Как, используя функцию random(Х), можно получать числа в диапазонах: от 1 до 10, от -10 до +10, от 50 до 100?
4. Введите в компьютер программу Ехample2. Выполните программу, получите результаты.
5. Составьте программу заполнения массива из 100 чисел случайными значениями из диапазона от -20 до 20. Подсчитайте в этом массиве количество положительных и количество отрицательных значений.
6. Заполните случайными числами в диапазоне от 1 до 5 два массива: A[1:20] и В[1:20]. Найдите и выведите на экран только те элементы этих массивов, значения которых совпадают. Например, если А[2] = В[2] = 4, то на экран надо вывести:
Номер: 2 значение: 4
Если таких совпадений нет, то вывести на экран сообщение об этом.


Чему вы должны научиться, изучив главу 6

• Строить несложные вычислительные алгоритмы с использованием блок-схем и Алгоритмического языка.
• Выполнять трассировку алгоритмов.
• Составлять программу на Паскале по данному алгоритму.
• Работать с системой программирования на Паскале: набирать текст программы; сохранять программу на диске и вызывать ее с диска; компилировать и исполнять программу; исправлять ошибки в программе.



И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс
Отослано читателями из интернет-сайтов


Основы информатики, подборка рефератов к урокам информатики, скачать рефераты, уроки информатики 9 класс онлайн, домашняя работа


Содержание урока
1236084776 kr.jpg конспект урока                       
1236084776 kr.jpg опорный каркас  
1236084776 kr.jpg презентация урока
1236084776 kr.jpg акселеративные методы 
1236084776 kr.jpg интерактивные технологии 

Практика
1236084776 kr.jpg задачи и упражнения 
1236084776 kr.jpg самопроверка
1236084776 kr.jpg практикумы, тренинги, кейсы, квесты
1236084776 kr.jpg домашние задания
1236084776 kr.jpg дискуссионные вопросы
1236084776 kr.jpg риторические вопросы от учеников

Иллюстрации
1236084776 kr.jpg аудио-, видеоклипы и мультимедиа 
1236084776 kr.jpg фотографии, картинки 
1236084776 kr.jpg графики, таблицы, схемы
1236084776 kr.jpg юмор, анекдоты, приколы, комиксы
1236084776 kr.jpg притчи, поговорки, кроссворды, цитаты

Дополнения
1236084776 kr.jpg рефераты
1236084776 kr.jpg статьи 
1236084776 kr.jpg фишки для любознательных 
1236084776 kr.jpg шпаргалки 
1236084776 kr.jpg учебники основные и дополнительные
1236084776 kr.jpg словарь терминов                          
1236084776 kr.jpg прочие 

Совершенствование учебников и уроков
1236084776 kr.jpg исправление ошибок в учебнике
1236084776 kr.jpg обновление фрагмента в учебнике 
1236084776 kr.jpg элементы новаторства на уроке 
1236084776 kr.jpg замена устаревших знаний новыми 

Только для учителей
1236084776 kr.jpg идеальные уроки 
1236084776 kr.jpg календарный план на год  
1236084776 kr.jpg методические рекомендации  
1236084776 kr.jpg программы
1236084776 kr.jpg обсуждения


Интегрированные уроки


Если у вас есть исправления или предложения к данному уроку, напишите нам.

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