Псевдослучайные числа, одномерный массив и его обработка в Visual Basic

Понятие и применение псевдослучайных чисел. Написания программного кода генератора на языке Visual Basic. Создание структурированного бокса для хранения множества элементов данных одинакового типа. Формирование последовательности из целых нечетных чисел.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 28.03.2014
Размер файла 16,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Псевдослучайные числа, одномерный массив и его обработка в Visual Basic

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

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

Псевдослучайные числа необходимы, например, для игровых, тестирующих и так далее, программ. Генератор псевдослучайных чисел строят, например, так: берется определенное число, затем над ним выполняется конечное число определенных математических действий, в результате получается первое псевдослучайное число. Над этим числом проводится та же последовательность действий, в результате получается второе псевдослучайное число и так далее. Человек же, не зная этой закономерности последовательности действий, воспринимает появляющиеся числа как случайные. Например, в компьютерной карточной игре на экране появляется карта случайного старшинства и к тому же случайной масти.

В Visual Basic программа-генератор псевдослучайных чисел реализуется функцией Rnd. Эта функция генерирует десятичные дробные числа в диапазоне больше либо равно нулю, но меньше единицы. Познакомимся с этим оператором поближе. Запустите Visual Basic. На форме Form1 разместите электронную кнопку Command1. Для написания программного кода кликните по вновь созданной кнопке два раза. В появившейся процедуре Command1_Click впишите утверждение:

Print Rnd

Несколько раз кликните по электронной кнопке, проследите за случайными числами, появляющимися на форме приложения. Закройте приложение и вновь запустите его. Заметьте, что числа в точности повторяются, причем в той же последовательности. Это говорит о том, что здесь работает определенная закономерность, а следовательно выбрасываемые числа правильнее называть псевдослучайными.

Для того чтобы избежать досадной повторяемости последовательности псевдослучайных чисел используется специальная инструкция Randomize (Перемешивание), которая в качестве первого случайного числа берет текущее время. Слегка усложним программный код:

Randomize

Print Rnd

Проверьте, как теперь работает программа, запустив ее несколько раз. Вы обнаружите, что после повторного запуска программы последовательности случайных чисел будут различными. Теперь непредсказуемость случайного числа еще больше усилится.

Как быть, если в программе требуются целые случайные числа? Для начала умножим выпавшее случайное десятичное число, имеющее только дробную часть, как минимум на десять:

Randomize

Print Rnd * 10

Заметьте, что случайные числа теперь обзавелись целой частью, которая колеблется в пределах от 0 до 9.

Математическая функция Fix позволяет отбрасывать от числа его дробную часть:

Randomize

Print Fix (Rnd * 10)

Проверьте, как теперь работает программный код, запустив программу на выполнение несколько раз. И так, мы получили случайные целые числа в диапазоне от 0 до 9. Попробуйте умножить Rnd на 100, затем на 1000. Получим диапазоны от 0 до 99, от 0 до 999.

Для того чтобы не кликать по электронной кнопке каждый раз, когда мы хотим получить случайное число, используем знакомую уже Вам циклическую конструкцию:

Randomize

Cls ` очистка экрана

For i=0 To 29 ` начало цикла

Print Fix (Rnd * 10) ' тело цикла выводит на экран случайные числа

Next i ` конец цикла

Теперь при одиночном клике по электронной кнопке на экране появится 30 случайных чисел. Ясно, что вторая строка в программе необязательна.

Как правило в программе требуется чтобы выпавшая последовательность запоминалась для дальнейшего использования. Для этого последовательность необходимо поместить в одномерный массив с помощью оператора Dim.

Массив - это структурированный бокс для хранения множества элементов данных одинакового типа. Массивы могут быть одномерными и многомерными. С двумерными массивами мы познакомимся в следующем уроке. Любой элемент массива задается именем массива и индексом, заключенным в круглые скобки, например: a (1), b (4), c (n), d (m).

Откройте новый проект. На форме Form1 установите две электронные кнопки - Command1 и Command2. В окне для ввода программного кода для формы Form1 в общем разделе (general) запишите строку объявляющую одномерный массив a:

Dim a (10) ` резервирование памяти для одномерного ` массива на десять элементов

Обратите внимание, что эти десять элементов будут индексироваться (нумероваться) от 0 до 9. В процедуру Command1_Click впишите первый цикл:

Randomize

For i = 0 To 9

a (i) = Fix (Rnd * 1000) ` запись случайных чисел в массив

Next i

В процедуру Command2_Click впишите второй цикл:

For i = 0 To 9

Print a (i) ` вывод массива на экран

Next i

Итак, первая электронная кнопка формирует последовательность случайных чисел и сразу же размещает каждое число на свое место в массиве. Эти места в одномерном массиве обозначаются: a(0); a(1); a(2); … a(9), всего их в данном случае десять. Вторая электронная кнопка берет числа из массива и показывает их на экране. Внимательно протестируйте программу.

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

For i = 0 To 9

Print a (i)

s = s + a (i) ` суммирование всех элементов массива

Next i

Print s ` вывод суммы на экран

Инструкция s = s + a (i) выполняется десять раз, она последовательно добавляет в переменную s все элементы массива, а следовательно находит их сумму. псевдослучайный нечетный генератор basic

Последняя строка расположилась вне цикла и поэтому команда вывода на экран суммы выполняется только один раз. Проверьте, правильно ли работает программа. Последнюю строку для лучшей выразительности работы программы можно записать так: Print "Сумма = "; s

Решим еще одну задачу по обработке одномерного массива. Пусть требуется из массива случайных чисел выбрать числа меньшие чем пятьдесят и показать их на экране.

Откройте новый проект. Не забудьте зарезервировать массив. Программный код может быть, например, таким:

Cls

Randomize

For i = 0 To 9

a (i) = Fix (Rnd * 100)

If a (i) < 50 Then Print a (i) ` выбор чисел меньших пятидесяти

Next i

Проверьте, правильно ли происходит выборка чисел по заданному условию в работе программы.

А теперь рассмотрим одномерные массивы построенные на основе закономерностей и займемся их обработкой. Пусть требуется вывести на экран ряд натуральных чисел от 1 до 25 и вычислить их сумму. Откройте новый проект. На форме установите электронную кнопку. Зарезервируйте массив на 25 чисел в общем разделе (general):

Dim a (1 To 25)

В процедуру Command1_Click впишите программный код:

For i = 1 To 25

a (i) = i

Print a (i)

s = s + a (i)

Next i

Print "Сумма = "; s

Проверьте, правильно ли работает программа.

Следующая задача по обработке массива будет звучать так: сформировать последовательность из целых нечетных чисел от (-15) до 5, вычислить сумму элементов этой последовательности и подсчитать число ее отрицательных элементов. Можно изменить и доработать предыдущую программу:

Dim a (-15 To 5)

For i = -15 To 5 Step 2 ` перебор целых чисел с шагом два

a (i) = i

Print a (i)

If a (i) < 0 Then n = n + 1 ` подсчет отрицательных элементов массива

s = s + a (i)

Next i

Print "Сумма = "; s

Print "Число отрицательных элементов = "; n

Строка подсчета числа отрицательных элементов одномерного массива читается: если элемент с номером i оказался отрицательным, то переменная n увеличивается на единицу. Остальные строки не являются для Вас принципиально новыми. Протестируйте программу.

Решим задачу по отысканию максимального элемента в одномерном массиве. Программа может быть такой:

Dim a(1 To 20), b

Cls

Randomize

b = 0

For i = 1 To 20

a (i) = Fix (Rnd * 1000)

Print a (i)

Next i

For i = 1 To 20

If a (i) > b Then b = a (i)

Next i

Print "Максимальный элемент ="; b

В программе используется промежуточная переменная b. В самом начале b = 0. Затем идет сравнение очередного элемента с содержимым переменной b. Если оказывается что очередной элемент массива больше переменной b, то значение этой переменной заменяется на значение этого элемента. В противном случае ничего не происходит. Проверьте работоспособность программы.

Задания для самостоятельной работы

1. Сформируйте одномерный массив, состоящий двенадцати случайных трехзначных чисел в диапазоне от 100 от до 999.

2. Сформируйте одномерный массив, состоящий двадцати случайных двухзначных чисел в диапазоне от 10 от до 99. Определите сколько раз выпадет число «35».

3. Сформируйте одномерный массив, состоящий ста случайных чисел в диапазоне от 0 от до 99. Вычислите сумму тех чисел, которые окажутся больше восьмидесяти.

4. Сформировать последовательность из целых четных чисел от (-42) до 24, вычислить сумму отрицательных элементов этой последовательности и подсчитать число ее положительных элементов.

5. Постройте приложение, в котором при клике по электронной кнопке должен выбрасываться туз произвольной масти.

6. Напишите программу, отыскивающую минимальный элемент в одномерном массиве случайных целых чисел.

Размещено на Allbest.ru

...

Подобные документы

  • Формирование матрицы и выполнение заданий: вычисление сумы четных элементов; максимума из нечетных элементов в строке; произведение элементов в нечетных столбцах; количество четных элементов выше главной диагонали. Создание программы в Visual Basic.

    контрольная работа [12,0 K], добавлен 07.10.2012

  • Программный проект Баз данных средствами Visual Basic 6.0. Проектирование структуры таблицы базы данных Visual Basic 6.0. Заполнение созданных таблиц БД исходными данными. Создание пользовательского меню. Вид формы и свойства элементов управления.

    курсовая работа [3,0 M], добавлен 19.06.2010

  • Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.

    контрольная работа [12,3 K], добавлен 07.10.2012

  • Рождение и развитие Basic. Краткое описание Visual Basic for Applications. Новые возможности Visual Basic 5.0. Пример взаимодействия Excel и Visual Basic. Программирование табличных функций. Встраивание, применение функций. Формы, средства управления OLE.

    реферат [20,7 K], добавлен 11.03.2010

  • Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.

    контрольная работа [36,4 K], добавлен 23.07.2014

  • Многообразие мини-игр и возможности языка Visual basic 6.0 для их реализации. Понятие мини-игр и их классификация. Элементы управления мини-игры "Реверси". Разработка прикладной программы. Создание игрового интерфейса. Написание программного кода.

    курсовая работа [1,5 M], добавлен 03.06.2014

  • Рабочая среда Visual Basic (VB) и ее основные компоненты. Ввод и вывод данных в VB. Объявление переменных и констант в программе. Создание и работа с процедурами и функциями, их виды. Организация ветвления в VB. Использование циклов в программировании.

    практическая работа [502,5 K], добавлен 26.10.2013

  • Основы работы с языком программирования Visual Basic 6.0, разработка и обработка созданных баз данных. Создание экранной формы и запросов по таблице VIP. Алгоритм совместного запроса по таблицам VIP и PROD. Методика разработки пользовательского меню.

    курсовая работа [2,7 M], добавлен 04.06.2009

  • Принципы визуального программирования. Создание программы, генерирующей звук через определенные промежутки времени. Visual Basic как средство разработки прототипов программы, для разработки приложений баз данных и компонентного способа создания программ.

    лабораторная работа [1,1 M], добавлен 10.12.2014

  • Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic.

    контрольная работа [989,9 K], добавлен 29.03.2011

  • Сумма двух разреженных полиномов, заданных ненулевыми коэффициентами и их номерами. Разработка программ на языке программирования Visual Basic for Applications. Вывод справочной информации. Операционная система Windows. Хранение двоичных данных.

    научная работа [390,2 K], добавлен 09.03.2009

  • Структура и назначение программного кода программы по созданию 3D-графики средствами языка программирования Visual Basic. Элементы управления "Окно формы" и "Таймер", выполняемые ими функции и основные свойства, значение в работе программного кода.

    лабораторная работа [362,4 K], добавлен 06.07.2009

  • Решение экономических задач с помощью Microsoft Excel и инструментария Visual Basic For Application. Способы запуска редактора Visual Basic, правила его синтаксиса. Создание автоматических макросов по сортировке и выборке. Создание управляющих кнопок.

    курсовая работа [852,0 K], добавлен 24.09.2010

  • Описание Visual Basic Scripting Edition как скриптового языка программирования, интерпретируемого компонентом Windows Script Host. Правила работы языка и применение VBS-сценариев для обработки данных, управления системой, работы с учетными записями.

    доклад [31,3 K], добавлен 11.05.2012

  • Составление блок-схемы алгоритма решения задачи, погрешности вычисления суммы членов числового ряда. Разработка программ на языке на Visual Basic, работа с массивами. Особенности работы со строковыми данными. Варианты реализации формы приложения.

    контрольная работа [220,4 K], добавлен 18.06.2010

  • Написание тестирующей программы для проверки знаний учащихся с помощью языка программирования Visual Basic for Applications (VBA), встроенного в пакет Microsoft Office. Общие сведения о программе, условия ее выполнения, настройка, проверка, выполнение.

    контрольная работа [25,2 K], добавлен 07.06.2010

  • Этапы подготовки и решения задач на компьютере. Способы предоставления алгоритмов. Простые типы данных и их обработка. Основы работы с графикой и графическими операторами в Visual Basic. Организация линейной программы. Процедуры и функции в языке Паскаль.

    дипломная работа [1,9 M], добавлен 25.10.2015

  • Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.

    реферат [29,9 K], добавлен 28.06.2011

  • Вывод графических файлов на компонент Picture. Действия Visual Basic по умолчанию. Создание графического интерфейса пользователя. Циклический показ фотографий. Формирование списка изображений и их циклический вывод на экран с определенным интервалом.

    курсовая работа [3,2 M], добавлен 05.01.2013

  • Сравнительная характеристика средств обучения программированию в среде Visual Basic. Задачи проектируемых автоматизированных программных систем. Комплекс технических средств. Математическое и программное обеспечение. Язык программирования Visual Basic.

    дипломная работа [64,1 K], добавлен 17.05.2007

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.