Воскресенье, 24.11.2024, 12:45
Вы вошли как Гость | Группа "Не зарегистрированный"Приветствую Вас Гость | RSS
Главная | Каталог статей | Мой профиль | Регистрация | Выход | Вход
QO.DO.AM
 >>>мир предметника 050202

Форма входа

Основное меню

Меню 050202

Учительская OnLine

Категории раздела
8 класс-теория [49]
Теоретический материал по Информатики и ИКТ
9 класс [40]
10 класс [34]
11 класс [37]
Лабораторный практикум [23]
Из математической логики
Алексеев Е.Г., Богатырев С.Д. [97]
Алексеев Е.Г., Богатырев С.Д. Информатика. Мультимедийный электронный учебник, содержит: теорию по Информатике и ИКТ, закрепляющие тесты, иллюстративные материалы для урока Информатики и ИКТ
ИНФОРМАТИКА И ИКТ "Учебное пособие" [17]
Содержательный материал по Информатике и ИКТ. Преподается краткое и отборочное содержание для подготовки и проведения уроков Информатики и ИКТ 8-9 классы, 10-11 классы
Технические средства информатизации [31]
Данное учебное пособие предназначено для изучения дисциплины «Технические средства информатизации» в средних специальных учебных заведениях на специальности 2203- «Программное обеспечение вычислительной техники и автоматизированных систем».
Материалы к урокам ИНФОРМАТИКИ И ИКТ для учащихся с 8-11 классы [57]
Переработанный материал по Информатике и ИКТ, блок схемы, выделение основных понятий информатики красочно и кратко, автор разработок Давыдова Елена Владимировна

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
// Your SEO optimized title page contents

Счетчики

Главная » Архив Информатики и ИКТ » Теория » 9 класс [ Добавить статью ]

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

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


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

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

Сначала несколько слов о случайных числах. Все себе представляют игральный кубик, имеющий шесть граней. При каждом бросании кубика выпадение какого-то числа есть случайное событие. С равной вероятностью может выпасть любое число от 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.

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

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

Рис. 3.14. Подсчет вхождений числа в массив


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

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

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

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

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('В массиве нет числа r,X)
     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

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

1. Придумайте свои способы получения случайных чисел.

2. Какие значения может принимать целая переменная Y, если в программе записано: Y:=10+random(5)?

3. Как, используя функцию random(X), можно получать числа в диапазонах: от 1 до 10, от -10 до +10, от 50 до 100?

4. Введите в компьютер программу Example2. Выполните программу, получите результаты.

5. Составьте программу заполнения массива из 100 чисел случайными значениями из диапазона от -20 до 20. Подсчитайте в этом массиве количество положительных и количество отрицательных значений.

6. Заполните случайными числами в диапазоне от 1 до 5 два массива: А[1:20] и B[1:20]. Найдите и выведите на экран только те элементы этих массивов, значения которых совпадают. Например, если А[2] = В[2] = 4, то на экран надо вывести:

Номер: 2 значение: 4

Если таких совпадений нет, то вывести на экран сообщение об этом.


Категория: 9 класс | Добавил: metalworker (20.02.2013)
Просмотров: 3730
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


qo.do.am © 2024