[maszyna ram]Algorytm sumujacy liczby parzyste

0

Witam

Zadanie brzmi: narysuj schemat algorytmu ktory liczy iloczyn liczb parzystych. liczba 0 konczy czytanie.

Narysowalem takie cos:
user image

jednak nauczyciel przyczepil sie do tego ze

  1. ma byc iloczyn=1 zamiast iloczyn=0
  2. ten ostatni bloczek decyzyjny jest niepotrzebny

wiec algorytm w wersji "wlasciwej" wyglada tak:
user image

poprawcie mnie jesli sie myle, ale ten algorytm proponowany przez nauczyciela ma blad, mianowicie w przypadku wczytania na poczatku liczby 0 program wyswietli 1 :|
moze w moim algorytmie jest cos nie tak narysowane?
sorry ze z takim banalem sie zwracam ale od tego czy mam racje bedzie baaardzo duzo zalezalo...

i drugi problem - program dla maszyny ram, program na podstawie pierwszego algorytmu

r1 - przechowuje iloczyn
r2 - przechowuje kolejne zmienne

LOAD =0
STORE 1

wczytywanie:
READ 2
LOAD 2
JZERO koniec
DIV =2
MUL =2
SUB 2
JGTZ wczytywanie
LOAD 1
JZERO ilzero
MULT 2
JUMP wczytywanie

ilzero:
LOAD 2
STORE 1
JUMP wczytywanie

koniec:
WRITE 1
HALT

co w tym programie jest zle [???] czy to
DIV =2
MUL =2
SUB 2
jest poprawne sprawdzenie parzystosci liczby?

Z gory dzieki za pomoc

0
dziqus napisał(a)

JGTZ wczytywanie
LOAD 1
JZERO ilzero
MULT 2 // tu powinieneś chyba dac coś a'la store 1
//bo z tego zo zauważyłem to iloczyn masz w rejestrze 1
//i chyb azapominasz go zapisywać
JUMP wczytywanie

ilzero:
LOAD 2
STORE 1
JUMP wczytywanie

koniec:
WRITE 1
HALT

co w tym programie jest zle [???]

czy to
DIV =2
MUL =2
SUB 2
jest poprawne sprawdzenie parzystosci liczby?
Nie ma lepszego ;)

// ps: widzę, że kolega najwyraźniej z pierwszego roku informatyki :]

0
id02009 napisał(a)
dziqus napisał(a)

JGTZ wczytywanie
LOAD 1
JZERO ilzero
MULT 2 // tu powinieneś chyba dac coś a'la store 1
//bo z tego zo zauważyłem to iloczyn masz w rejestrze 1
//i chyb azapominasz go zapisywać
ciezko bylo zauwazyc? zauwazylem to jak przepisywalem do posta ale chcialem sprawdzic czy to jest latwo wykryc ;) pani mgr sie przyczepila do "sub 2" ale nie wiem dlaczego [???] w sobote ide z reklamacja i musze wiedziec na czym stoje :]

id02009 napisał(a)

// ps: widzę, że kolega najwyraźniej z pierwszego roku informatyki :]
tak ;) powinno byc w zasadzie wykladowca a nie nauczyciel :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1