Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 17:08   #1
Pavlyqk0
Пользователь
 
Аватар для Pavlyqk0
 
Регистрация: 11.06.2012
Сообщений: 10
Сообщение Сложная задача по информатике

У вас есть машина с 3-мя регистрами R1 R2 R3
и оперативной памятью на 5 ячеек A B C D E
Она умеет:
1.Перемешать данные из ячейки памяти в ячейку
MOV R1 R2 R1 --> R2
MOV A R1 A --> R1
MOV B C B --> C

2. Складывать значения в регистрах R1 и R2, с помещением результата в R1
ADD R1 R2 R1 + R2 --> R1

3. Вычитать из R1 значения R2, с помещением результата в R1
SUB R1 R2 R1 - R2 --> R1

4. Делить значение регистра R1 на значение регистра R2, с помещением результата в R1
DIV R1 R2 R1/R2 --> R1

5. Умножать значение R1 на R2, с помещением результата в R1
MUL R1 R2 R1*R2 --> R1

6. Выводить данные ячейки на печать
OUT R1 Print R1
OUT B Print R2

В памяти A B C D E записаны некоторые числа для вычислений

Необходимо написать программу вычисления и вывести результаты на печать
1. A+B
2. (A+B)*E
3. (A*B)/C+E*A

Помогите пожалуйста, уж больно сложно и непонятно тут все, а мне ет надо оч срочно сделать((
Начинающий программист :D
Добавь в скайп " pavlyqk0 "
Pavlyqk0 вне форума Ответить с цитированием
Старый 11.06.2012, 17:49   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

В условии задачи я усматриваю некоторые противоречия:
1. Регистр R3 не используется в вычислениях. Зачем он нужен?
2. Если все вычисления производятся только с регистрами R1 и R2, то какой смысл указывать эти регистры в мнемонике команды.

В общем, приведите полный список команд.
s-andriano вне форума Ответить с цитированием
Старый 11.06.2012, 17:51   #3
Pavlyqk0
Пользователь
 
Аватар для Pavlyqk0
 
Регистрация: 11.06.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
В условии задачи я усматриваю некоторые противоречия:
1. Регистр R3 не используется в вычислениях. Зачем он нужен?
2. Если все вычисления производятся только с регистрами R1 и R2, то какой смысл указывать эти регистры в мнемонике команды.

В общем, приведите полный список команд.
Честно сказать сам не понимаю зачем нужен регистр R3, написал все что было, дополнить к сожалению нечего, помогите плз
Начинающий программист :D
Добавь в скайп " pavlyqk0 "
Pavlyqk0 вне форума Ответить с цитированием
Старый 11.06.2012, 18:08   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Чем мы можем Вам помочь?
Прежде, чем что-то делать, следует прояснить задание. Спросите у того, кто Вам его задал. Другого способа получения недостающей информации я не знаю.
Задания, правда, очень просты (не понимаю, зачем Вы называете их сложными), поэтому их можно решить и с помощью неполной системы команд. Но не хотелось бы делать "кривое" решение.

И еще, Вы уверены, что
Цитата:
OUT B Print R2
записано верно?
s-andriano вне форума Ответить с цитированием
Старый 11.06.2012, 18:12   #5
Pavlyqk0
Пользователь
 
Аватар для Pavlyqk0
 
Регистрация: 11.06.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Чем мы можем Вам помочь?
Прежде, чем что-то делать, следует прояснить задание. Спросите у того, кто Вам его задал. Другого способа получения недостающей информации я не знаю.
Задания, правда, очень просты (не понимаю, зачем Вы называете их сложными), поэтому их можно решить и с помощью неполной системы команд. Но не хотелось бы делать "кривое" решение.

И еще, Вы уверены, что

записано верно?
Спросить к сожалению не могу.
Для меня сложная задача, ведь у меня на компьютере даже нету программы, с помощью которой можно все ето сделать.
Помогите пожалуйста сделать хотя бы "кривое" решение.
Ошибок нету, все вам написал так, как у меня на бланке, OUT B Print R2
все без ошибок
Начинающий программист :D
Добавь в скайп " pavlyqk0 "
Pavlyqk0 вне форума Ответить с цитированием
Старый 11.06.2012, 18:24   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

OUT B Print R2 - скорее всего, опечатка
Цитата:
ведь у меня на компьютере даже нету программы
По-моему, это вы должны сделать просто на бумажке.
Это алгоритмизация.
Для затравки, первая:
Код:
MOV A R1
MOV B R2
ADD R1 R2
OUT R1
Вторая:
Код:
MOV A R1
MOV B R2
ADD R1 R2
MOV E R2
MUL R1 R2
OUT R1
Хм, вот и пригодился третий регистр:
Код:
MOV A R1
MOV B R2
MUL R1 R2
MOV C R2
DIV R1 R2
MOV R1 R3
MOV A R1
MOV E R2
MUL R1 R2
MOV R3 R2
ADD R1 R2
OUT R1
Затравки не получилось
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 11.06.2012 в 18:29.
BDA на форуме Ответить с цитированием
Старый 11.06.2012, 18:30   #7
Bob256
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 13
По умолчанию

1.
Код:
MOV A R1
MOV B R2
ADD R1 R2
OUT R1
2.
Код:
MOV A R1
MOV B R2
ADD R1 R2
MOV E R2
MUL R1 R2
OUT R1
3.
так
Код:
MOV A R1
MOV B R2
MUL R1 R2
MOV C R2
DIV R1 R2
MOV R1 R3
MOV E R1
MOV A R2
MUL R1 R2
MOV R3 R2
ADD R1 R2
OUT R1
или так
Код:
MOV B R1
MOV C R2
DIV R1 R2
MOV E R2
ADD R1 R2
MOV A R2
MUL R1 R2
OUT R1
Bob256 вне форума Ответить с цитированием
Старый 11.06.2012, 18:31   #8
Bob256
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 13
По умолчанию

не успел
Bob256 вне форума Ответить с цитированием
Старый 11.06.2012, 19:09   #9
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Хм, вот и пригодился третий регистр
Вообще-то там есть свободная ячейка памяти D. Хранить промежуточные результаты в памяти - нормальное явление. В отличие от регистра, не допускающего с собой никаких действий.
Цитата:
Затравки не получилось
А вот это - зря.
s-andriano вне форума Ответить с цитированием
Старый 11.06.2012, 19:16   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Bob256 Посмотреть сообщение
или так
Код:
MOV B R1
MOV C R2
DIV R1 R2
MOV E R2
ADD R1 R2
MOV A R2
MUL R1 R2
OUT R1
Увы, арифметические операции далеко не всегда обладают свойством ассоциативности, т.е. (A*B)/C может не равняться (B/C)*A.
Например, в целочисленной арифметике это именно так.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложная задача Paster Fob Паскаль, Turbo Pascal, PascalABC.NET 9 16.05.2012 16:48
задача по информатике Марина01126 Microsoft Office Excel 5 07.06.2011 21:49
задача по информатике. Luda161 Microsoft Office Excel 1 15.03.2011 17:23
задача по информатике незнайка_на_земле Помощь студентам 21 07.03.2011 23:03
Задача по информатике serega77 Помощь студентам 1 02.12.2010 21:30