Вывод точек со случайными координатами


Главная / ЭКВМ / Программы для ЭКВМ / Демонстрации

точки со случайными координатами на экране МК-152

Программа демонстрирует работу с графическим экраном и генератором случайных чисел ЭКВМ "Электроника МК".

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

Попробуем визуально оценить характеристики генератора ЭКВМ. Для этого напишем программу, которая вычисляет и устанавливает точку на графическом экране по координатам Y=64·ξi; X=128·ξi+1, где ξ - очередное случайное число, получаемое по команде "К СЧ". Например, для мультипликативных генераторов, входящих в большинство компиляторов языков высокого уровня, такие точки будут расположены на параллельных линиях.




Программа "Звездное небо" - вывод точек со случайными координатами

  x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x 6 4 П А 1 2 8 П В 0 РР П 90
1x 10 1 0 0 0 П 0 К СЧ ИП А × К СЧ
2x ИП В × РР П 90 11 F L0 16 К ГРФ РР ИП 90
3x 29 K NOT F x≠0 28 С/П          

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

Программа достаточно проста. В 00-06 происходит запись констант в регистры RA и RB. В 07-10 очистка графического экрана. В 11-15 запись количества точек в регистр R0. В 16-26 расположен цикл в котором вычисляются координаты и вызывается функция вывода точки через регистр R9011. В 27-34 полученная картинка выводится на экран ЭВМ и ожидается нажатие любой клавиши. После нажатия программа останавливается оператором С/П, для повторного запуска следует нажать "В/О", "С/П".

точки со случайными координатами на экране МК-152 при следующем запуске

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

Для вывода одной и той же последовательности псевдослучайных чисел перед каждым запуском программы в регистр R9046 нужно записать выбранное число. Это позволит при каждом запуске программы получать одну и ту же картину распределения.




Быстродействие ЭВМ

С помощью этой программы можно оценить не только качество генератора случайных чисел, но и быстродействие ЭВМ.

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

В [1] приведен аналогичный пример для графического калькулятора TI-89/92/92 Plus.



Почти каждый учащийся программированию на языке BASIC наверняка готовил программу "звездное небо" - построение множества точек со случайными координатами в окне графики с декартовыми координатами. Эта программа является хорошим средством освоить построение точек и оценить, насколько случайными являются числа генератора случайных чисел, который используется для задания координат точек. Один из простых вариантов этой программы показан на рис.... Кроме случайных точек, программа строит прямоугольник из 4 отрезков прямых линий.

:prnd()
:Prgm
:setMode("Graph","FUNCTION")
:ClrDraw
:PxlLine 0,0,0,238
:PxlLine 0,238,100,238
:PxlLine 100,238,100,0
:PxlLine 100,0,0,0
:For i, 1, 1000
:PxlOn int(100*rand()),int(239*rand())
:EndFor
:EndPrgm

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



Можно заметить, что программа для калькулятора TI-89/92 написана на диалекте языка BASIC, который является интерпретируемым. Однако программа в системе команд МК тоже выполняется на микроконтроллере этой ЭКВМ в режиме эмуляции. Оба этих языка применяются для написания программ пользователя, каждый для своей вычислительной платформы, так что условия можно считать равными.

Отрисовка четырех линий по краям поля незначительно увеличит время работы ЭКВМ и может не приниматься во внимание. Хотя можно ввести аналогичный блок в программу при помощи обращения к регистру функции рисования линии R9012. Можно воспользоваться и функцией вывода рамки R9014.

Отсюда можно сделать вывод, что при выполнении пользовательских графических программ ЭКВМ "Электроника МК" в несколько раз эффективнее по быстродействию, чем современный зарубежный графический калькулятор TI-89/92.




Литература

  1. Дьяконов В.П. Современные зарубежные микрокалькуляторы - М.:СОЛОН-Р, 2002. - 400 с. - С. 375.


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)