• Предмет: Информатика
  • Автор: max98frommks
  • Вопрос задан 11 месяцев назад

60 балов
Напишите программу на c++, которая моделирует работу процессора. Процессор имеет 4 регист-ра, они обозначаются R0, R1, R2 и R3. Все команды состоят из трех десятичных цифр: код операции, номер первого регистра и номер второго регистра (или число от 0 до 9). Коды команд и примеры их использования приведены в таблице:
Код операции Описание Пример Псевдокод
1 запись константы 128 R2:=8
2 копирование значения 203 R3:=R0
3 сложение 331 R1:=R1+R3
4 вычитание 431 R1:=R1-R3
Обратите внимание, что результат записывается во второй регистр. Команды вводятся последовательно как символьные строки. После ввода каждой строки программа показывает значения всех регистров.


maxpavlutenkof: то есть ты хочешь сказать , что надо делать перегрузку операторов , я кнш все понимаю , но это не место и это не плата , за такие сложности . Максимум , я могу посоветовать тебе почитать о перегрузке операторов на с++

Ответы

Ответ дал: Artem02582
2

Ответ:#include <bits/stdc++.h>

using namespace std;

int main() {

const int x = 3, y = 4;

int N[x], M[y] = { 0, 0, 0, 0 };

int r = 0;

do {

 r = 0;

 for (int q = 0; q < x; q++) {

  N[q] = getchar() - 48;

  if (N[q] == -38) q--;

  if (N[q] == 0) r++;

 }

 switch (N[0]) {

 case 1: M[N[1]] = N[2]; break;

 case 2: M[N[2]] = M[N[1]]; break;

 case 3: M[N[2]] = M[N[2]] + M[N[1]]; break;

 case 4: M[N[2]] = M[N[2]] - M[N[1]]; break;

 }

 for (int e = 0; e < y; e++) {

  cout << "R" << e << " = " << M[e] << "\n";

 }

} while (r != x);

return 0;

}

Объяснение:


max98frommks: Это неправильно, получается
Вас заинтересует