Получение случайных чисел

Для упорядочивания массива случайных величин создадим двойной цикл. Для расчета мат. ожидания и дисперсии упорядоченного массива также создадим двойной цикл, с учетом того, что массив уже надо разбить на 10 частей и расчет проводить по каждому из промежутков. Для построения гистограммы воспользуемся средствами модуля Graph.tpu.

Блок-схемой основной программы будет приведена в приложении. Также в приложении будут размещены блок-схемы подпрограмм-процедур, используемых в данной программе.

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

Таблица 1. Описание переменных и констант.

Имя переменной

Назначение

Тип в Turbo Pascal

i.j

Переменные циклов.

Byte

help, work, button

Переменный для хранения параметров вызова процедур.

Byte

actionprog, action

Символьные переменные для управления интерфейсной частью. основной программы и процедур соответственно.

Char

exitpar, exitmenu, exitprog

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

Boolean

grmode, grdriver

Переменные, содержащие данные о типе графического драйвера и его режиме работы. Установлены в программе на автоматическое определение.

Integer

Dat (3)

Массив для хранения входных данных в программе. Начальное значение [5,4,5].

array[1.3]of real

Posle (100)

Массив для хранения элементов генерируемой последовательности.

array[1.100] of real

Xcor (3), Ycor (3)

Массивы, используемые для более компактности ввода параметров генерации последовательности в процедуре DoWorkс параметром work=1.

array[1.3]of byte

Mat (10), Disp (10)

Массивы с данными о дисперсии и мат. ожидании по промежуткам последовательности.

array[1.10]of real

mat0,disp0

Мат.ожидание и дисперсия по всей последовательности.

Real

X

Временная переменная (буфер).

Real

Col (4)

Массив для управления выбора пункта меню.

array[1.4]of byte

Light.Dark

Константы для задания цветов меню.

[1.16]

2.3. Пояснения к программе.

2.3.1. Основная программа.

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

После определения происходит первоначальная (чернвая) прорисовка интерфейсной части программы. Для этого используется три блока, прорисовывающие строку помощи (drawhelp (0)), диалогового окна (drawwin) и строки меню (drawmenu (5)).

Перехватчик сообщений с клавиатуры (ReadKey) позволяет выбрать тот или иной пункт меню — о возможном выборе можно узнать в строке подсказки в низу экрана. В зависимости от выбора оператором пункта меню происходит запуск «основной работающей программы» — процедуры dowork. Для вызова этой процедуры используется один параметр — work. Его возможные значения:

Таблица 2.

Значение параметра work

Действие

1

Задание параметров для построения последовательностей.

2

Просмотр последовательностей.

3

Просмотр гистограммы.

Работы основной программы завершается при истинном значении переменной exitprog, чего можно достичь комбинацией Alt-x (об этом тоже информирует строка помощи).

2.3.2. Процедура drawhelp.

Эта процедура полностью предназначена для навигации оператора с работой в программе.

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

Таблица 2.

Значение параметра help

Вид строки помощи

0

F1-Парам. F2-Посл-ти F3-Гистогр. F10-Меню (Alt-x)-Выход

1

Задать/изменить параметры

2

Просмотреть последовательности

3

Просмотреть гистограмму

4

Выход

5

Esc-Закончить изменение параметров. BckSp-Изменить параметр. F4-Постр. посл-ть'

6

Нажмите Up или Down для просмотра или Esc для выхода

В блок-схеме к этой процедуре использованы сокращения. Так s1 означает, что help=1; s2 — help=2 и так далее.

2.3.3 Процедура drawwin.

Все, что делает эта процедура — составление диалогового окна. Прорисовка окна идет посредством обычной псевдографики (ASCII-кодировка). При это экран делится на три части. В верхней происходит уведомление пользователя о выборе пункта меню, а в двух нижних происходит задание параметров построения последовательностей (в случае вызова dowork (1)) или же просмотр последовательностей (в случае вызова dowork (2)). Если не происходит вызова dowork, то окно остается пустым, за исключением верхнего фрейма, где написано «Последовательности».