• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Údajové štruktúry a algoritmy

Started by Shwollo, 21.09.2010, 16:37:14

« predchdzajce - alie »

Shwollo

viete mi niekto vysvetliť, čo sakra znamená toto? Alebo skôr, čo znamenájú jednotlivé kroky / príkazy?

LOAD =1
STORE 2
STORE 3
READ 1
LOAD 1
JGTZ OK
JMP FIN
OK: LOAD 3
SUB 1
JZ FIN
LOAD 3
ADD =1
STORE 3
MUL 2
STORE 2
JMP OK
FIN: WRITE 2
HALT


alebo kde nájdem niečo o tom jazyku RAM. Bo google sa nejak nechytá  bu
nepíšte mi SS - radšej mi píšte mail. (tá obálka pod mojim avatarom :)))

dEVIANT

Šak v tom simulátore v čom to robíte je odkaz na dokumentáciu k príkazom. Tam to píše šetko pekne... :)
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Shwollo

nepíšte mi SS - radšej mi píšte mail. (tá obálka pod mojim avatarom :)))

dEVIANT

Ta vy to máte iné ako mz minulý rok...

LOAD =1 : Nacita do akumulatora (reg 0) jednotku.
STORE 2 : do druheho registra ulozi hodnotu z akumulatora
READ 1: do reg 1 ulozi vstup z vstupnej pasky
WRITE 2: z reg 2 ulozi na vystupnu pasku
LOAD 1: z registra 1 hodi hodnotu do akumulatora
JGTZ: jump when greater than zero...skoci ak je v akumulator > 0
SUB 1: odcita od akumulatora hodnotu z registra 1 a hodi to do akumulatora.. ADD pripocitava, MUL nasobi, DIV deli
JMP - instrukcia skoku
HALT - koniec

Hadam som sa nepomýlil...keď hej tak to pri kodení zistíš :D ...btw. sledujem, že je to pekne nakreslené v prednáške strana 5
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Nasher

Tento "RAM mini-guide" by sa mal pripichnúť na vrch fóra  - konečne to niekto vysvetlil jasne a stručne. Kto má dopekla rozumieť tým prekliatym Šimoňákovym tabuľkám?  bu >:(

revelc

Čo môžeš urobiť dnes odlož na pozajtra a ziskaš deň voľna.

"I'm a man of simple tastes. I enjoy dynamite...and gunpowder...and gasoline! "

ursus

sa nehnevaj ale  ;D ta tabulka je jasna aj keby si nechcel, ta sipka oznacuje priradenie, jedine co sa ti mozno moze pliest je load a store,
load nacita do akumulatora odniekial, store nacita z akumulatora niekam, aritmetiku mozes robit len v akumulatore, ostatne klasika asembler
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

Mike

podla mna minulorocne manualy boli prehladnejsie, aspon mne sa zda ;)

totaluser

ja by som sa rad opytal ohladom logaritmickej cenovej funkcie a log ceny instrukcii a operandov
konkretne ci to bude nejako vysvetlenet v 2. prednaske alebo si budem musiet vystacit s tymi 2 stranami z prednasky 1

pripadne nejake ine zdroje kde by bolo vysvetlene ako sa to pocita
dakujem

Safyia

Simonak? :D Vysvetlovat? :D Dve prednasky to iste? Co siiii.... Su tam v tej prednaske nejake priklady, a tusim nieco je popisane aj v archive v USA, tak sa pozri tam... Alebo si pockaj na cviko a opytaj sa konkretne uz cviciaceho.

Shwollo

Quote from: Safyia on  25.09.2010, 02:11:37
... Alebo si pockaj na cviko a opytaj sa konkretne uz cviciaceho.
Čiže Šimňáka :D
nepíšte mi SS - radšej mi píšte mail. (tá obálka pod mojim avatarom :)))

totaluser

Quote from: Safyia on  25.09.2010, 02:11:37
Simonak? :D Vysvetlovat? :D Dve prednasky to iste? Co siiii.... Su tam v tej prednaske nejake priklady, a tusim nieco je popisane aj v archive v USA, tak sa pozri tam... Alebo si pockaj na cviko a opytaj sa konkretne uz cviciaceho.

nemas prosimta odkaz na ten archiv
lebo cez search som nic nenasiel :ohmigod:
pytam sa kvoli ulohe z cvicenia 2
Vytvorte program na výpočet hodnoty 2^n tak, aby časová zložitosť pri uniformnom kritériu bola lepšia ako O(n). Číslo n (n=>0) a jeho binárny tvar sú vstupné údaje. Vstup: n,b0,b1,...,bk,2. Výstup: 2^n.

vdaka za kazdy vas input

Safyia

ta dole mas archiv musis hladat :D Mno kukam, a neviem este moc ako na to, pokukam mozno do toho dneska, a vecer daco vyprodukujem :D
btw to skade mas tu ulohu, na moodli je len : Vytvorte program na výpočet hodnoty 2n. Číslo n (n=>0) je vstupný údaj. Vstup: n, Výstup: 2n
a dalsie cviko tam nie je...

totaluser

jop
je to z cvika 2

ked si otvoris cviko 1
potom mas v url blbalbla/cv01/blabla
prepis cv01 na cv02
a si in
pozeral som zatial po 3, dalej neviem ci tam uz su
a dik za snahu
kedze tam mame binarnu podobu cisla tak ma napadlo ako jednoduche nasobenie SHIFT LEFT registra, ale dajako na to nemam instrukcie

vdaka

Safyia

si prespekulovany, to ma nenapadlo :D
Hmm... ok tak sa zamyslim :D Naco mi tam je binarny tvar do vstupu? Tam bude dade riesenie :D A tie vstupy mozeme zadavat lubovolne? Mozu sa medzi nimi vykonat aj ine instrukcie?

excellent

2n

LOAD =1
STORE 2
READ 1
LOAD 1
JGTZ OK
JMP FIN
SUB =1
STORE 1
LOAD =2
STORE 2
OK: LOAD 2
MUL =2
STORE 2
LOAD 1
SUB =1
JGTZ NEXT
JMP FIN
NEXT: STORE 1
JMP OK
FIN: WRITE 2
HALT


Má to niekto jednoduchšie? Robil niekto aj to s tým maximom?
F5 can be so refreshing :thumbs-up:

totaluser

jop ten bin vstup je voditko
mna napadlo ze napr ak mas 2^n tak urobis (n-1) SHL

teda napr 2^4
cislo 2 v bin tvare
0000 0010
(n-1) krat urobim SHL
0001 0000
a mam 16 co je korektny vysledok
lenze ja mam binarny vstup Nka a nie konstantu 2, cize tato uvaha nie je cesta
Safyia alebo niekto iny mate dajake napady?

vdaka

Safyia

tak to je len nahoda, ze ked n=4 tak to plati, pre take n=9 to neplati...

Agamemnon

ak je základ 2, tak správny počet SHL dá správny výsledok pre akékoľvek n
All code is crap.

42

totaluser

Quote from: Safyia on  25.09.2010, 22:16:24
tak to je len nahoda, ze ked n=4 tak to plati, pre take n=9 to neplati...
som daco nepochopil?

mam binarne dvojku a n=9
0000 0010
(n-1)(teda 8) krat urobim SHL a dostavam

10 0000 0000
co je 512 co skutocne je 2^9



0000 0000 0010 (cislo 2)
0000 0000 0100 (1. SHL)
0000 0000 1000 (2. SHL)
0000 0001 0000 (3. SHL)
0000 0010 0000 (4. SHL)
0000 0100 0000 (5. SHL)
0000 1000 0000 (6. SHL)
0001 0000 0000 (7. SHL)
0010 0000 0000 (8. SHL)

a mam 512

kazdopadne to musi byt nejako inac riesene, lebo mam cislo N ako binarny vstup
dajake dalsie napady?

Safyia

#20
Quote from: Agamemnon on  25.09.2010, 22:34:59
ak je základ 2, tak správny počet SHL dá správny výsledok pre akékoľvek n
aha :D :D nist blbost citam, ja sa tu snazim n-ko v bin posuvat :D taze si ma nevsimajte!! Slaba chvilka :D
Podla mna to bude dako tak, ze istu operaciu urobime stale, a istu len ked je bin = 1 :D a vysledok z prvej operacie dako zatoto do druhej :D No tazko sa to vysvetluje, ale ked sa najem uz to vymyslim ;D

edit:/ abo sa na to vykaslem bo uz vela spekjulujem :D

tommy-sv

Quote from: Safyia on  25.09.2010, 22:40:44
No tazko sa to vysvetluje, ale ked sa najem uz to vymyslim ;D

Ja nikdy neviem rozmyslat po jedle a na moje nestastie jem kazde 3 hodiny :D

A toto spekulujete v tom RAM? Lebo tam som nevidel SHL instrukciu. Sorry ak som mimo, len som prebehol vlakno.
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

totaluser

hej, je to v RAM
hej, nieje tam SHL
nie, nie si mimo
to bola len moja uvaha ako to riestit, ale kedze su ine vstupy tak takto to nepojde :hug:

pooler

ako sa robí porovnanie dvoch čísel ?

sulo

Uložíš prvé do akumulátora a odčítaš od neho druhé. Ak je výsledok väčší ako nula, prvé číslo je väčšie. Potom môžeš použiť JGTZ, ktoré skočí na dané návestie, ak je hodnota akumulátora > 0.