Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб9.Модельная ЭВМ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
56.9 Кб
Скачать

Лаб9. Модельная ЭВМ Основы информатики

Содержание

Что делать 1

Учебная машина УМ-3 2

Пример 1. Оператор присваивания 4

Пример 2. Условный оператор 4

Пример 3. Реализация цикла 6

Пример 4. Работа с массивами 7

И набор команд http://cmcmsu.no-ip.info/1course/um3.command.set.htm

Что делать

  1. Повторить пример 1. Реализовать его в эмуляторе УМ-3. Написать программу для обмена значениями двух переменных.

  2. Изучить пример 2. Реализовать его в эмуляторе УМ-3. Написать программу печати большего из двух чисел.

  3. Изучить пример 3. Реализовать его в эмуляторе УМ-3. Написать программу вычисления суммы вводимых чисел. Количество чисел считать известным.

  4. Изучить пример 4. Реализовать его в эмуляторе УМ-3 (пусть массив состоит из 10 чисел). Написать программу вычисления наибольшего числа в массиве.

  5. Решать задачи из сборника упражнений.

Сборник упражнений по учебным машинам (УМ-3)

  1. Ввести вещественное x и вывести значение = { + 1, при x < 1; 1, при = 1; 1/(x+1), при > 1 }.

  2. Ввести координаты двумерных векторов x и y. Вывести 1, если || y, иначе 0.

Модификация команд (формирование операндов)

  1. Ввести координаты 50-мерного вещественного вектора X и вектора Y, вычислить их сумму = ( ) и вывести координаты Z на экран.

  2. Ввести последовательность из 100 целых чисел и вывести её в обратном порядке.

  3. Ввести 50 целых и вывести их сумму.

  4. Ввести последовательность из 100 целых чисел и вывести 1, если последовательность неубывающая, иначе — 0.

  5. Ввести последовательность из 100 целых чисел {a100} и число x. Вывести 1, если x присутствует в последовательности {a100}.

  6. Ввести последовательность из 100 целых чисел и вывести значение максимума.

  7. Ввести целое (2 ≤ n ≤ 100). Ввести n вещественных чисел и вывести значение максимального из них.

  8. Ввести целое (2 ≤ n ≤ 100). Ввести вещественные координаты двух n-мерных векторов x и y. Вывести их скалярное произведение (xy).

Модификация команд (формирование кода операции)

  1. Имеется шаблон фрагмента кода, при выполнении которого с 52 ячейки происходит суммирование вещественных значений ячеек с 100 по 499.

  2. 50 xxx xxx xxx xxx

  3. 51 СЛЦ xxx xxx xxx

  4. 52 СЛВ 100 100 101

  5. 53 СЛЦ 52 52 58 ; модификация второго операнда

  6. 54 ВЧЦ 59 59 58 ; декремент счётчика цикла

  7. 55 УСЛ 56 56 52 ; цикл

  8. 56 ВЫВ 100 1 ; вывод результата

  9. 57 СТОП

  10. 58 <1> ; константа 1

  11. 59 <399> ; константа 399

  12. 60 УВЧ 99 99 98

  13. 61 СЛВ xxx xxx xxx

Подобрать и вставить в пустые места, обозначенные символами «x», такие значения, чтобы при переходе на 50 ячейку УМ-3 вычислила и вывела бы произведение вещественных значений ячеек с 100 по 499.

Учебная машина ум-3

Память УМ-3 будет состоять из 512 ячеек, имеющих адреса от 0 до 511. Каждая ячейка состоит из 32 двоичных разрядов. По современным понятиям это очень маленькая память (всего 2 Kb). Записанное в ячейке машинное слово может рассматриваться как одно целое или вещественное число или как одна команда. Машинное слово, трактуемое как команда, будет разбиваться на четыре поля, и представляться в следующей форме:

КОП

A1

A2

A3

5 разрядов

9 разрядов

9 разрядов

9 разрядов

Номера ячеек, кодов операций и адресов операндов будем для удобства записывать в десятичном виде, хотя первые программисты использовали для этого восьмеричную или шестнадцатеричную системы счисления. Первое поле с именем КОП (Код ОПерации) содержит число от 0 до 31. Это число задаёт номер (код) операции машинной команды, а поля с именами A1, A2 и A3 задают адреса операндов (это целые числа от 0 до 511). Таким образом, в каждой команде могут задаваться адреса двух аргументов (это A2 и A3)и адрес результата операции A1.

Таблица 1. Команды учебной машины УМ-3

КОП

Смысл операции и её мнемоническое обозначение

00

ПЕР – пересылка: <A1>:=<A3>

11

СЛЦ – сложение целых чисел

12

ВЧЦ – вычитание целых чисел

13

УМЦ – умножение целых чисел

14

ДЕЦ – деление целых чисел (то же, что и div в Паскале)

24

МОД – остаток от деления (то же, что и mod в Паскале)

01

СЛВ – сложение вещественных чисел

02

ВЧВ – вычитание вещественных чисел

03

УМВ – умножение вещественных чисел

04

ДЕВ – деление вещественных чисел

10

ЦЕЛ – вещественное в целое: <A1>:=Round(<A3>)

30

ВЕЩ – целое в вещественное: <A1>:=Real(<A3>)

09

БЕЗ – безусловный переход: goto A2, т.е. RA:=A2

19

УСЛ – условный переход: Case w of 0: goto A1; 1: goto A2; 2: goto A3 end

20

ПР – переход по S = 0: if w=0 then goto A2

21

ПНР – переход по S <> 0: if w<>0 then goto A2

22

ПБ – переход по S > 0: if w=2 then goto A2

23

ПМ – переход по S < 0: if w=1 then goto A2

24

ПБР – переход по S >= 0: if w in [0,2] then goto A2

25

ПМР – переход по S <= 0: if w<2 then goto A2

31

СТОП – остановка выполнения программы

05

ВВВ – ввод массива вещественных чисел: ввод A2 чисел в память, начиная с адреса A1 for i:=1 to А2 do Readln(<А1+i-1>)

06

ВВЦ – ввод A2 целых чисел в память, начиная с адреса A1 for i:=1 to А2 do Readln(<А1+i-1>)

15

ВЫВ – вывод A2 вещественных чисел, начиная с адреса A1 for i:=1 to А2 do Writeln(<А1+i-1>)

16

ВЫЦ – вывод массива целых чисел, аналогично ВВВ

Важное замечание. В используемом вами эмуляторе система команд может отличаться от заявленной в тексте. Используйте «Help» для получения справки о кодах команд.