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

UŠaA

Started by Wolfdale, 24.09.2011, 05:08:29

« predchdzajce - alie »

M4D4

#75
Mohol by som niekoho veľmi pekne poprosiť aby mi vysvetlil každú inštrukciu, že čo v konkrétnom príklade robí? Princíp tohto chápem, len som z tých príkazov trocha jeleň :-/

Quote
Vytvorte program na výpočet faktoriálu čísla n (n=>0) v jazyku stroja RAM. Vstup: n, Výstup: n!.

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

a mohol by mi prosím ešte niekto dodatočne vysvetliť, že čo znamenajú príkazy JGTZ a JZ? Pre človeka odhodlaného veľká vďaka...

ultimate

LOAD =1  ... do akumulatora da jednotku
STORE 2 ... ulozi hodnotu z akumulatora do registra r2
STORE 3 ... ulozi hodnotu z akumulatora do registra r3
READ 1 ... nacita vstup, zadanu hodnotu z klavesnice ulozi do registra r1
LOAD 1 ... do akumulatora da hodnotu z registra r1
JGTZ OK ... ak je v akumulatore hodnota vacsia ako nula, skoci na navestie OK
JMP FIN ... skoci na navestie FIN
OK: LOAD 3 ... navestie OK, da do akumulatora hodnotu z registra r3
SUB 1 ... odpocita od hodnoty v akumulatore hodnotu v registri r1
JZ FIN ... ak je hodnota v akumulatore nulova, skoci na navestie FIN
LOAD 3
ADD =1 ... pripocita k hodnote v akumulatore cislo jedna
STORE 3
MUL 2 ... vynasobi hodnotu v akumulatore s hodnotou v registri r2
STORE 2
JMP OK
FIN: WRITE 2 ... vypise hodnotu z registra r2 na obrazovku
HALT ... skonci program

tie co som vynechal sa opakuju

M4D4

tak je to tak ako som si myslel : ) ďakujem mocne . . . ale mám otázku, prečo sa na začiatku zadáva do akumulátora 1? (LOAD =1)

ultimate

#78
nie som si isty, nechce sa mi nato pozerat teraz ale kedze je to vypocet faktorialu tak asi kvoli tomu aby si nenasobil nulou ... faktorial vypocitas napr.: 3! = 1*2*3 a keby si tam mal aj nulu, tak by bolo 0*1*2*3 a to by bol vysledok nula takze potrebujes zacat jednotkou

xxx3

nikto zatial neprisiel nato ako sa pocita ta zlozitost ?  ???

M4D4

ďakujem pekne ultimate, konečne tomu chápem a mám spravené už aj prvé zadanie (vďaka tebe :emot-dance:)

tiež by som ale potreboval help s tým druhým zadaním :/ čo sa tam vlastne má robiť? Nechápem ani zadaniu :/

veteran

Quote from: M4D4 on  02.10.2011, 06:18:58
ďakujem pekne ultimate, konečne tomu chápem a mám spravené už aj prvé zadanie (vďaka tebe :emot-dance:)

tiež by som ale potreboval help s tým druhým zadaním :/ čo sa tam vlastne má robiť? Nechápem ani zadaniu :/
Načítaš si číslo n zo vstupu. Na výstupe budeš mať 0+1+...+n. Teda napr. ak budeš mať na vstupe číslo 5, výsledok bude 0+1+2+3+4+5=15.

Ako som písal, program je ľahký (ak si už pochopil význam príkazov), horšia je zložitosť.

M4D4

Quote from: veteran on  02.10.2011, 14:25:07
Quote from: M4D4 on  02.10.2011, 06:18:58
ďakujem pekne ultimate, konečne tomu chápem a mám spravené už aj prvé zadanie (vďaka tebe :emot-dance:)

tiež by som ale potreboval help s tým druhým zadaním :/ čo sa tam vlastne má robiť? Nechápem ani zadaniu :/
Načítaš si číslo n zo vstupu. Na výstupe budeš mať 0+1+...+n. Teda napr. ak budeš mať na vstupe číslo 5, výsledok bude 0+1+2+3+4+5=15.

Ako som písal, program je ľahký (ak si už pochopil význam príkazov), horšia je zložitosť.

tomu začiatku som samozrejme pochopil, aj to mám hotové, ale ja neviem pohnúť s tou zložitosťou, ako každý :X

veteran

Quote from: M4D4 on  02.10.2011, 14:34:56
Quote from: veteran on  02.10.2011, 14:25:07
Quote from: M4D4 on  02.10.2011, 06:18:58
ďakujem pekne ultimate, konečne tomu chápem a mám spravené už aj prvé zadanie (vďaka tebe :emot-dance:)

tiež by som ale potreboval help s tým druhým zadaním :/ čo sa tam vlastne má robiť? Nechápem ani zadaniu :/
Načítaš si číslo n zo vstupu. Na výstupe budeš mať 0+1+...+n. Teda napr. ak budeš mať na vstupe číslo 5, výsledok bude 0+1+2+3+4+5=15.

Ako som písal, program je ľahký (ak si už pochopil význam príkazov), horšia je zložitosť.

tomu začiatku som samozrejme pochopil, aj to mám hotové, ale ja neviem pohnúť s tou zložitosťou, ako každý :X
Pri programe z 1. cvičenia s tým faktoriálom sa logaritmické cenové kritérium počíta podľa inštrukcie MUL 2. To je asi nejaká najhlavnejšia inštrukcia, ktorá zabezpečuje výsledok.

V tomto príklade mi to u mňa vychádza na inštrukciu ADD 3. Keďže do registra 3 pripočítavam hodnotu počítadla a pýtam sa, či už počítadlo dosiahlo hodnotu n.

Takže T(i)=l(c(0))+l(3)+l(c(3)). Ale čo s tým ďalej? ???

Stardox

Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?

ultimate

Quote from: veteran on  02.10.2011, 14:49:57
Takže T(i)=l(c(0))+l(3)+l(c(3)). Ale čo s tým ďalej? ???

tiez som sa len sem dostal :D

xxx3

kupim vypocitanu log. zlozitost pre ADD3 aj s vysvetlenim

Wolfdale


Ešte sme to nedokončili celkom, ale takmer sme už začali.

esperian

Quote from: Stardox on  02.10.2011, 17:15:27
Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?

mna ma korecko a en sam vravel aby sme si pozreli ten program z prveho cvika a ze ho mozme upravit ze je to  zalezitost par minut, zmenit jednu instrukciu ...

Stardox

Quote from: esperian on  02.10.2011, 19:32:36
Quote from: Stardox on  02.10.2011, 17:15:27
Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?

mna ma korecko a en sam vravel aby sme si pozreli ten program z prveho cvika a ze ho mozme upravit ze je to  zalezitost par minut, zmenit jednu instrukciu ...

Okej, diky pekne za info, tiez mam s Koreckom, ale asi som to prepocul.  :)

Tren

Quote from: esperian on  02.10.2011, 19:32:36
Quote from: Stardox on  02.10.2011, 17:15:27
Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?

mna ma korecko a en sam vravel aby sme si pozreli ten program z prveho cvika a ze ho mozme upravit ze je to  zalezitost par minut, zmenit jednu instrukciu ...
tiez mam snim a tiez som pocul ze tak povedal  ;)

M4D4

mohol by to prosím niekto presne vysvetliť, že čo a ako sa má vôbec v tom druhom zadaní robiť resp. čo sa tam má vôbec kódiť? Lebo aj tomu zadaniu vôbec nechápem :-/

Prípadne kúpim druhé komplet zadanie aj s vysvetlením :D

Wolfdale

kodit sa ma to, ze zadas cislo n a ono ti vypocita sucet cisiel od n po 1

napr.: zadas 3, tak ti ma vypocitat 3+2+1....ak 10, tak 10+9+8+7+6+5+4+3+2+1

co sa ma pocitat = to nevie nikto  :D

Ešte sme to nedokončili celkom, ale takmer sme už začali.

M4D4

Quote from: Tux on  02.10.2011, 20:45:09
kodit sa ma to, ze zadas cislo n a ono ti vypocita sucet cisiel od n po 1

napr.: zadas 3, tak ti ma vypocitat 3+2+1....ak 10, tak 10+9+8+7+6+5+4+3+2+1

co sa ma pocitat = to nevie nikto  :D

toto som pochopil, to už aj mám . . . ale chápem správne, že tie zložitosti a uniformy sa nemajú kódiť, ale počítať?  :o

ultimate

ano, tie zlozitosti sa maju pocitat, no netusim ako :D

bEnd3r

#95
vie niekto co je v tej zlozitosti c(0) ??? aspon nejaku aj ked odveci informaciu k tomu? :D
// c(i) je obsah pamäte na adrese i .. vdaka vokorokokosorokovovi (ak to citate pan dekan tak prepacte)
http://www.beinrohr.sk/sxool/4roc/misc_junk/Programovacie%20techniky.pdf
strana 6

M4D4

inak keď mám so Slodičákom v utorok ráno, tak mu to musím poslať dnes do polnoci alebo môžem aj zajtra do polnoci?

RiTChi

Ma niekto tušenie, ako to vyrátať? Mne sa zdá, že bude stačiť urobiť to, čo je aj na moodli, keďže p. Korečko sám povedal, že staci upravit MUL na ADD vo faktoriale, a este sa aj pytal, na MUL a ADD, ze ktora instrukcia ma vyssiu cenu (ceny tych instrukcii su rovnake).

veteran

#98
Quote from: RiTChi on  03.10.2011, 00:56:52
Ma niekto tušenie, ako to vyrátať? Mne sa zdá, že bude stačiť urobiť to, čo je aj na moodli, keďže p. Korečko sám povedal, že staci upravit MUL na ADD vo faktoriale, a este sa aj pytal, na MUL a ADD, ze ktora instrukcia ma vyssiu cenu (ceny tych instrukcii su rovnake).
Ceny inštrukcií sú síce rovnaké, ale kde je v tom programe z 2. cvičenia použitá funkcia faktoriál? Nikde. Tam nerobíme 1×2×3×4×...×n, ale 1+2+3+4+...+n. Mne to teda vychádza asi na toto:

T(i)=l(c(0))+l(3)+l(c(3)=l(i)+l(3)+l(i+1)~log2(i)+log2(i+1)=log2(i2+i)

Ale či to je správne, to neviem...

\\\EDIT: Tá moja úvaha je blbosť. Ale faktoriál sa tam isto vyskytovať nebude.

ultimate

stale nikto nevie ako to vypocitat ?