Реферат: Программирование с использованием генератора случайных чисел

Реферат: Программирование с использованием генератора случайных чисел




👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Овладение
навыками
алгоритмизации
и программирования
задач с использованием
датчиков слу­чайных
чисел, способами
получения
случайных чисел
с различными
законами
распределения,
навыками оценки
качества
псевдослучайных
чисел и их
соответствия
заданному
закону распределения.
способы
получения
случайных
чисел с различными
законами
распределения;
-способы
использования
в программах
обращений к
функциям или
подпрограммам
для получения
псев­дослучайных
чисел с различными
законами
распреде­ления;
способами
использования
случайных
чисел для
мо­делирования.
Разработать
алгоритм решения
в соответствии
с за­данием.
Подготовить
тестовый вариант
программы и
исходных данных.

1. Выполнить
на ЭВМ программу
в соответствии
со следующим
заданием:

Сгенерировать
последовательность
из 50 случайных
чисел с нормальным
законом распределения
а=5,  =4)
и по­следовательность
из 50 случайных
чисел с экспоненциаль­ным
законом распределения
с параметром
 =5.
Все числа свести
в массив, расположив
их по возрастанию.
Вычислить
среднее значение,
дисперсию и
вывести результаты
на пе­чать в
виде гистограммы,
разбив последовательность
чисел на десять
интервалов
2.
Проверить
правильность
выполнения
программы с
по­мощью тестового
варианта.
Прежде,
чем приступить
к самому процессу
алгоритмизации
и программирования
заглянем в
теорию, по которой,
собственно,
и дано задание.

Н ормальным
называют
распределение
вероятностей
непрерывной
случайной
величины, которое
описывается
плотностью

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

2.1.2
Показательное
(экспоненциальное)
распределение.

П оказательным
(экспоненциальным)
называют
распределение
вероятностей
непрерывной
случайной
величины X, которое
описывается
плотностью
где

- постоянная
положительная
величина.


Мы
видим, что
показательное
распределение
определяется
одним параметром
 .
Эта особенность
показательного
распределения
указывает на
его преимущество
по сравнению
с распределениями,
зависящими
от большего
числа параметров.
Обычно параметры
неизвестны
и приходится
находить их
оценки (приближенные
значения);
разумеется,
проще оценить
один параметр,
чем два или три
и т. д. Примером
непрерывной
случайной
величины,
распределенной
по показательному
закону, может
служить время
между появлениями
двух последовательных
событий простейшего
потока.
Для
получения двух
последовательностей
из 50 случайных
чисел с показательным
и нормальным
законами
распределения
необходимо
организовать
цикл, который
будет выполнятся
50 раз. Внутри
цикла будем
пользоваться
функцией из
Турбо Паскаля
random(a) - эта функция
выдает произвольное
число из интервала
от 1 до a, a  65535.
Каждое полученное
число будет
вносится в
массив, причем
первые 50 элементов
этого массива
получены по
нормальному
закону, а другие
50 - по показательному.
Для
упорядочивания
массива случайных
величин создадим
двойной цикл.
Для расчета
мат. ожидания
и дисперсии
упорядоченного
массива также
создадим двойной
цикл, с учетом
того, что массив
уже надо разбить
на 10 частей
и расчет проводить
по каждому из
промежутков.
Для построения
гистограммы
воспользуемся
средствами
модуля Graph.tpu.
Блок-схемой
основной программы
будет приведена
в приложении.
Также в приложении
будут размещщены
блок-схемы
подпрограмм-процедур,
используемых
в данной программе.
Перед
процессом
программирования
составим таблицу
используемых
в программе
и подпрограммах
таблицу переменных
и констант.
Таблица
1. Описание
переменных
и констант.
Переменный
для хранения
параметров
вызова процедур.
Символьные
переменные
для управления
интерфейсной
частью .основной
программы и
процедур
соответственно.
Логические
параметры,
задающие выход
из процедур
и основной
программы.
Позволяют
делать программу
болле гибкой
в применении.
Переменные,
содержащие
данные о типе
графического
драйвера и
его режиме
работы. Установленны
в программе
на автоматическое
определение.
Массив
для хранения
входных данных
в программе.
Начальное
знаачение
[5,4,5].
Массив
для хранения
элементов
генерируемой
последовательности.
Массивы,
используемые
для более
компактности
ввода параматров
генерации
последовательности
в процедуре
DoWorkс параметром
work=1.
Массивы
с данными о
дисперсии и
мат.ожидании
по промежуткам
последовательности.
Мат.ожидание
и дисперсия
по всей последовательности.
Массив
для управления
выбора пункта
меню.
В
начале основной
программы
происходит
задание первоначальных
параметров
меню, входных
данных по условию
задания и
автоматическое
определения
типа и режима
работы графического
адаптера.
После
определения
происходит
первоначальная
(чернвая) прорисовка
интерфейсной
части программы.
Для этого
используется
три блока,
прорисовывающие
строку помощи
(drawhelp(0)),
диалогового
окна
(drawwin) и строки меню
(drawmenu(5)).
Перехватчик
сообщений с
клавиатуры
(ReadKey)
позволяет
выбрать тот
или иной пункт
меню - о возможном
выборе можно
узнать в строке
подсказки в
низу экрана.
В зависимости
от выбора оператором
пункта меню
происходит
запуск «основной
работающей
программы»
- процедуры
dowork.
Для вызова этой
процедуры
используется
один параметр
– work.
Его возможные
значения:
Задание
параметров
для построения
последовательностей.
Работы
основной программы
заверщается
при истонном
значении переменной
exitprog,
чего можно
достичь комбинацией
Alt-x (об
этом тоже информирует
строка помощи).
Эта
процедура
полностью
предназначена
для навигации
оператора с
работой в программе.


Для
вызова используется
один параметр
(help),
чего достаточно
для вывода
полной подсказки
далнейших
действий. Ниже
приводится
таблица со
значением
параметра и
строки, которая
высвечивается
внизу экрана.
F1-Парам.
F2-Посл-ти F3-Гистогр.
F10-Меню (Alt-x)-Выход
Esc-Закончить
изменение
параметров.
BckSp-Изменить
параметр.
F4-Постр. посл-ть'
Нажмите
Up или Down для просмотра
или Esc для выхода

В
блок-схеме к
этой процедуре
использованы
сокращения.
Так s1
означает, что
help=1; s2 –
help=2 и так
далее.
Все,
что делает эта
процедура –
составление
диалогового
окна. Прорисока
окна идет посредством
обычной псевдографики
(ASCII-кодировка).
При это экран
делится на три
части. В верхней
происходит
уведомление
пользователя
о выборе пункта
меню, а в двух
нижних происходит
задание параметров
построения
последовательностей
(в случае вызова
dowork(1))
или же просмотр
последовательностей
(в случае вызова
dowork(2)).
Если не происходит
вызова dowork, то
окно остается
пустым, за
исключением
верхнего фрейма,
где написано
“Последовательности”.
При
построении
схемы и в коде
программы не
используется
ни одной нестандартной
подпрограммы.
Схема тривиальна
и общедоступна.

2.3.4.
Процедура
dowork - «основная
работающая
программа».
Основная
программа нужна
для организации
диалога с
пользователем.
Но, собственно,
сам диалог и
все действия
производятся
именно в этой
процедуре.
Именно этой
части программы
стоит уделить
наибольшее
внимание.
Дальнейшее
пояснение будет
основываться
на таблице 2.
Ход повествования
прямым образом
зависит от
значения параметра
work.
В каждой части
вызывается
справка по
использованию
и горячим клавишам,
за исключением
третьей части
– вывода гистограммы.
Первая
часть – задание/просмотр
параметров
генерации
последовательностей.
Здесь
происходит,
как ясно из
заголовка
пункта, задание
новых или просмотр
текущих параметров
для генерации
последовательностей.
На блок-схеме
этой подпрограммы
это блоки 1-30.
Первым
делом происходит
разделение
верхнего фрейма
на два, в них
прорисовывается
пояснение –
в какой из частей
нижнего фрейма
для какого
закона распределения
задаются параметры.
Для
удобного задания
параметров
используется
символьная
переменная
action.
Именно через
нее происходит
перехват событий,
от чего и зависит
изменить параметры,
оставить их
неизменными,
задать последовательности
или же выйти
из подпрограммы.
Со
всеми возможными
действиями
данной и последующих
частей можно
познакомится
в пункте «Руководства
пользователя».
Стоит
обратить внимание
на то, как происходит
ввод новых
параметров.
Положение
курсора для
ввода задается
двумя массивами
(они, как впрочем
и остальные
переменные,
описаны в таблице
1): Xcor(3), Ycor(3). Измененные
параметры
записываются
в массив Dat(3).
Подобная схема
очень удоьна
для испльзования
и для изменения
как конфигурации.
Переход
между состоянием
просмотр/изменение
происходит
путем использования
кодов ASCII
для клавиш Esc,
Tab, Enter и F4
– генерация
последовательности.
Вторая
часть – просмотр
сгенерированной
последовательности.
На
блок-схеме
представлена
блоками 31-47.
Просмотр
последовательности
происходит
через обычный
цикл по одному
параметру. Вся
последовательность
выводится по
двум столбам,
в каждом из
которых по 50
элементов.
Управление
просмотром
организовано
через коды
клавиш скролинга
(прокрутки) по
общепринятому
стандарту –
Up/Down.
Элементы выводятся
с приближением
до шести символов
после зяпятой,
дабы не засорять
рабочее пространство.


На
блок-схеме
представлена
блоками 48-61.
В
блоках 49-58 происходит
вычисление
математического
ожидания и
дисперсии как
для каждого
из промежутков,
так и для всей
последовательности
целиком.
Блок
59 представляет
собой (смотри
код программы)
прорисовку
сетки для более
удобной визуализации,
вывод значений
математического
ожидания и
дисперсии,
легенды. Легенда
необходима
для определения
того, какой тип
столбцов что
демонстрирует.
Вся
визуальная
часть процедуры
dowork
с параметром
work=3
осуществлена
при помощи
модуля Graph.tpu.
Тип адаптера
и его режим
определяются
в основной
программе.
Необходимо,
чтобы этот
модуль находился
в одной папке
с файлом программы,
иначе вывод
бедт невозможен,
что приведет
к выходу из
программы.
Выходом
служит нажатие
на любую клавишу.

Можно сказать,
что весь интерфейс
программы, ее
простота
использовиния
во многом зависит
от грамотно
созданного
меню. Некое
подобие меню
как раз возложено
на создание
этой процедуры.
Алгоритм
процедуры
полностью
замешен на
символьных
данных, используемых
в качестве
кодов «горячих»
клавиш и клавиш
скролинга. Для
визуализации
выбора пункта
меню испльзуется
выделение
цветом того
или иного пункта
меню. Все цвета
меню можно
зажать путем
изменения
значений констант
light
и
dark
– соотвотственно
активного и
неактивного
пункта меню.
Подобный ход
можно использовать
в подборе цветов,
удобных для
пользователя.
Предусмотрен
первоначальный
вывод меню без
выбора какого-нибудь
из пунктов. Это
необходимо
для прорисовки
интерфейса
в начале работы
программы и
после просмотра
гистограммы.
При
выборе любого
из пунктов меню
происходит
вызов процедуры
drawhelp
со
значением 1-4 в
зависимости
от того какой
пункт был выбран.
Значение 1 предано
крайнему левому
пункту, 4 – правому.
Подробнее о
текстах справки
можно посмотреть
в таблице 3.
Как
и во многих
программах
можно избежать
входа в меню
– для выбора
любога пункта
назначена
«горячая»
клавиша. Информация
об этом выдается
при запуске
программы.
Этот
раздел предназначен
для пояснения
как общатся
с программой.
Данная
программа
предназначена
для построения
гистограммы
последовательности
чисел полученной
по двум законам
распределения
– нармальному
и экспоненциальному.
При выводе
используется
графический
режим. Перед
выводом последовательность
разбивается
на 10 интрвалов
и демонстрацией
результата
является мат.ожидание
и дисперсия
для каждого
из интервалов.
В
программе
предусмотрена
строка помощи
для пользователя,
в которой описаны
быстрый клавишы
вызова того
или иного пункта
возможных
действий. Все
возможные
подсказки можно
просмотреть
в таблице 3 в
разделе «Руководство
программиста».

При запуске
форимируется
окно с разделением
на три области:
меню, диалоговую
часть и строку
помощи. При
выборе любого
из пункта меню
происходит
вызов определенной
части программы,
а также смена
интерфейса.
При
выборе пункта
«Параметры»
пользователю
будет предложено
окно, в котором
можно будет
задать параметры
для генерации
последовательности.
В правой колонке
для нормального
закон, в левой
– для экспоненциальной.
Чтобы изменить
параметр необходимо
нажать BckSp
(Забой), после
чего становится
возможным
изменение
параметра.
Переключение
между параметрами
осуществляется
через клавишу
Tab
или Enter.
Также переход
происходит
автоматически
после изменения
параметра. В
этом же пункте
меню происходит
генерация
последовательности
– клавиша F4.
Выход из этого
режима осуществляется
через клавишу
Escape.
Пункт
«Последовательности»
позволяет
осуществить
просмотр уже
сущестующей
последовательности.
Чтобы просмотреть
всю последовательность
целиком воспользуйтесь
клавишами
скролинга
(прокрутки)
Up/Down.
Выход из режима
– Escape.
Просмотр
гистограммы
производится
при выборе
одноименного
пункта. Гистограмма
имеет легенду.
Выходом из
просмотра
является нажатие
на любую клавишу.
Для
выхода можно
воспользоватся
комбинацией
клавиш Alt-x
или же через
меню.
Таблица
4. Комбинации
«горячих»
клавиш программы.
Просмотр
вверх/вниз
последовательности

Научились
применять
математический
аппарат при
программировании
на Turbo
Pascal.
Написали программу
используя все
знания полученые
по курсу «Информатика».
Вникли в понятие
интерфейса
и сделали попытку
в разработке
собственного
дизайна программы.
Фаронов.:
«Турбо паскаль
7.0. Начальный
курс. Учебное
пособие.»-
М.:»Ноллидж»,
1997г.
Алексеев
В.Е. и др.: «Вычислительная
техника и
программирование.
Практикум по
программированиюЖ
Практическое
пособие.» - М.:
Высшая школа,
1991г.

Приложения
(блок-схемы и
код программы).
0:
write(' F1-Парам. F2-Посл-ти
F3-Гистогр. F10-Меню
(Alt-x)-Выход ');
1:
write(' Задать/изменить
параметры
');
2:
write(' Просмотреть
последовательности
');
3:
write(' Просмотреть
гистограмму
');
4:
write(' Выход
');
5:
write(' Esc-Закончить
изменение
параметров.
BckSp-Изменить
параметр. F4-Постр.
посл-ть');
6:
write(' Нажмите Up или
Down для просмотра
или Esc для выхода
');

textcolor(white);textbackground(blue);

write('¦=====================================T========================================¦');

writeln(' Нормальный
закон: ¦
Экспоненциальный
закон:');

write('¦=====================================+========================================¦');

gotoxy(2,6);write(' Мат. ожидание:');

gotoxy(2,8);write('
Дисперсия:');gotoxy(xcor[2],ycor[2]);write(dat[2]:2:1);

gotoxy(41,6);write('Коэффициент:');gotoxy(xcor[3],ycor[3]);write(dat[3]:2:1);

gotoxy(xcor[1],ycor[1]);write(dat[1]:2:1);i:=1;

gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1);

gotoxy(xcor[1],ycor[1]);write(dat[1]:2:1);

gotoxy(xcor[i],ycor[i]);write(' ');

gotoxy(xcor[i],ycor[i]);read(dat[i]);

gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1);

gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1);

gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1);


posle[i]:=exp(-sqr(x-dat[1])/(2*sqrt(dat[2])))/sqrt(2*pi*dat[2]);

if x<0 then posle[i+50]:=0 else
posle[i+50]:=dat[3]*exp(-dat[3]*x);

if i+j-1<10 then write(' ',i+j-1,': ',posle[i+j]:2:6,'
¦ ',i+j+49,': ',posle[i+50+j]:2:6)

else write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦
',i+j+49,': ',posle[i+50+j]:2:6)

if i+j-1<10 then write(' ',i+j-1,': ',posle[i+j]:2:6,'
¦ ',i+j+49,': ',posle[i+50+j]:2:6)

else write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦
',i+j+49,': ',posle[i+50+j]:2:6)

disp[i]:=sqr(posle[(i-1)*10+j]-mat[i]);

disp0:=sqr(posle[(i-1)*10+j]-mat0);

if disp[i]>dispmax then dispmax:=disp[i];

if mat[i]>matmax then matmax:=mat[i];
for
i:=0 to 20 do line(i*25+15,320,i*25+15,20);
for
i:=1 to 11 do line(15,i*30-10,515,i*30-10);

Bar3D(13,27+30*(i-1),13+round(mat[i]*10000),35+30*(i-1), 2, TopOn);

Bar3D(13,35+30*(i-1),13+round(disp[i]*1000000),43+30*(i-1), 2,
TopOn);

outtextxy(23,432,'- Mat. ozhidanie');
const
light=green;{15,14,13,12,11,10,9}

textbackground(col[1]);write(' Параметры
');

textbackground(col[2]);write(' Последовательности
');

textbackground(col[3]);write(' Гистограмма
');

textbackground(col[4]);write(' Выход
');textbackground(dark);write(' ');
if
button<>5 then action:=readkey else exitmenu:=true;

drawhelp(0);textbackground(dark);gotoxy(1,1);
write('
Параметры
Последовательности
Гистограмма
Выход ');
for i:=1
to 10 do begin mat[i]:=0; disp[i]:=0 end;

Название: Программирование с использованием генератора случайных чисел
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 13:19:26 11 августа 2005 Похожие работы
Просмотров: 181
Комментариев: 17
Оценило: 4 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии.
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Программирование с использованием генератора случайных чисел
Реферат: Денежный рынок Украины 3
Реферат: Современные Тахеометры. Скачать бесплатно и без регистрации
Курсовая работа: Представительство и доверенность
Отчет по практике по теме Общая характеристика КБ "Приватбанк"
Реферат Противоэпилептические Средства
Скачать Реферат На Тему Определение Дебита Скважины
Реферат: Computer Viruses Essay Research Paper Computer VirusesExplain
Контрольная Работа На Тему Владимир Мономах
Курсовая Работа На Тему Правоохранительная Деятельность В Таможенных Органах
Реферат: Особо охраняемые природные территории
Скачать Реферат Вид
Дипломная работа по теме Анализ оборотных средств
Реферат По Культурологии Культура И Этнос
Эссе Какой Стиль
Реферат: Половое воспитание, личная гигиена и ранняя диагностика в профилактике болезней передающихся по
Парк культуры и отдыха «Сокольники»
Контрольная работа: Красители и биодобавки в пищевых системах. Скачать бесплатно и без регистрации
Историческое Сочинение Егэ Образование Древнерусского Государства
Реферат по теме Автоматизация проектирования цифровых СБИС на базе матриц Вайнбергера и транзисторных матриц
Дни Воинской Славы В России Реферат
Доклад: Трудовая этика современных российских реиммигрантов
Доклад: Далай-лама
Реферат: Календарь аквариумиста

Report Page