|
Программирование >> Структурное программирование
Используйте переменные для отслеживания позиций животного (позиции с номерами 1-70). Каждое животное стартует с позиции 1 ( стартовые ворота ). Если животное скользит налево и должно оказаться перед клеткой 1, движение начинается заново с клетки 1. Используйте проценты в приведенной таблице, вырабатывая случайные целые числа i в диапазоне от 1 до 10 включительно. Для черепахи при i от О до 5 - быстрое ползанье, при i от 6 до 7 - скольжение, при i от 8 до 10 - медленное ползанье. Аналогичный прием используйте для движения зайца. Начните движение печатью ГОНГ !!!!! И ОНИ ПОШЛИ !!!!! Затем на каждом такте (т.е. при каждом повторении цикла) печатайте 70-позиционную строку, показывающую букву Ч в позиции черепахи и букву 3 в позиции зайца. Может случиться, что оба животных окажутся на одной и той же клетке. В этом случае черепаха кусает зайца и ваша программа должна печатать ОХ!II, начиная с этой позиции. Все печатаемые позиции, отличающиеся от Ч, 3 или ОХ!П, должны быть пробелами. После печати каждой строки проверяйте, достигло или миновало животное клетку 70. Если да, то печатайте, кто победитель, и заканчивайте моделирование. Если победила черепаха, печатайте ПОБЕДИЛА ЧЕРЕПАХА!!! УРА!!! Если победил заяц, печатайте: Победил заяц. Эх. Если оба животных победили одновременно, вы можете отдать предпочтение черепахе или напечатать: Равный счет. Если ни одно животное не победило, повторяйте цикл моделирования для следующего отрезка времени. Если вы готовы запустить программу на выполнение, пригласите группу болельщиков. Вы будете изумлены реакцией вашей аудитории! Специальный раздел: построение вашего собственного компьютера В следующих нескольких задачах мы покинем мир программирования на языке высокого уровня. Мы разденем донага компьютер и посмотрим его внутреннюю структуру. Мы познакомимся с ма- шинным языком программирования и напишем несколько программ на машинном языке. Чтобы закрепить этот особенно значимый опыт, мы построим затем компьютер (основываясь на технике программного моделирования), на котором вы сможете выполнять программы на машинном языке! 5.18. (Программирование на машинном языке) Создадим компьютер, который назовем Простотрон. В соответствии со своим именем это простая машина, но, как мы вскоре увидим, достаточно мош;ная. Простотрон выполняет программы, написанные на единственном понимаемом им языке - языке машины Простотрон, или, для краткости, ЯМП. Простотрон содержит аккумулятор - специальный регистр, в котором находится информация перед тем, как она будет использована Простотроном в вычислениях или специальным образом исследована. Вся информация в Простотроне обрабатывается в терминах слов. Слово - это знаковое четырехзначное десятичное число, например, +3364, -1293, +0007, -0001 и т.д. Простотрон имеет память на 100 слов и эти слова доступны по номерам их ячеек 00, 01, 99. Перед запуском программы на ЯМП мы должны загрузить ее или разместить в памяти. Первая команда (или оператор) каждой программы на ЯМП всегда помеш;ается в ячейку 00. Моделирующая программа начинает выполнение с этой ячейки. Каждая команда, написанная на ЯМП, занимает в памяти Просто-трона одно слово (и, следовательно, команды имеют знаковые четырехзначные десятичные номера). Мы будем считать, что знак команды ЯМП всегда плюс, но знак слова данных может быть плюсом или минусом. Каждая ячейка в памяти Простотрона может содержать либо команду, либо значение данных, используемых программой, либо соответствовать неиспользуемой (и, следовательно, неопределенной) области памяти. Первые две цифры каждой команды ЯМП служат кодом операции, который указывает, какая операция выполняется. Коды операций ЯМП приведены на рис. 5.37. Последние две цифры в команде ЯМП являются операндом и представляют собой адрес ячейки памяти, содержащей слово, к которому относится операция. Теперь рассмотрим несколько простых программ на ЯМП. Первая программа на ЯМП (Пример 1) считывает два числа с клавиатуры, складывает их и печатает их сумму. Команда +1007 считывает первое число с клавиатуры и помещает его в ячейку 07 (которая имеет нулевое начальное значение). Затем команда +1008 считывает следующее число в ячейку 08. Команда загрузки +2007 помещает первое число в аккумулятор, а команда сложения +3008 прибавляет второе число к числу в аккумуляторе. Все арифметические команды. ЯМП оставляют результаты в аккумуляторе. Команда сохранения +2109 помещает результат обратно в память в ячейку 09, из которой команда печати +1109 берет число и печатает его (как знаковое четырехзначное десятичное число). Команда останова +4300 завершает выполнение.
Рис. 5.37. Коды операций на языке машины Простотрон (ЯМП)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |