Author Topic: UŠaA  (Read 101901 times)

M4D4

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #75 on: 02.10.2011, 03:10:18 »
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...
« Last Edit: 02.10.2011, 03:12:16 by M4D4 »

ultimate

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: UŠaA
« Reply #76 on: 02.10.2011, 03:20:41 »
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

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #77 on: 02.10.2011, 03:49:44 »
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

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: UŠaA
« Reply #78 on: 02.10.2011, 03:55:04 »
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
« Last Edit: 02.10.2011, 03:58:03 by ultimate »

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: UŠaA
« Reply #79 on: 02.10.2011, 04:38:48 »
nikto zatial neprisiel nato ako sa pocita ta zlozitost ?  ???

M4D4

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #80 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 :/

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: UŠaA
« Reply #81 on: 02.10.2011, 14:25:07 »
ď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

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #82 on: 02.10.2011, 14:34:56 »
ď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

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: UŠaA
« Reply #83 on: 02.10.2011, 14:49:57 »
ď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

  • Newbie
  • *
  • Posts: 42
    • View Profile
Re: UŠaA
« Reply #84 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?

ultimate

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: UŠaA
« Reply #85 on: 02.10.2011, 17:26:56 »
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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: UŠaA
« Reply #86 on: 02.10.2011, 19:20:29 »
kupim vypocitanu log. zlozitost pre ADD3 aj s vysvetlenim

Wolfdale

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 489
  • /root
    • View Profile
Re: UŠaA
« Reply #87 on: 02.10.2011, 19:22:49 »
 :D :D :D

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

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: UŠaA
« Reply #88 on: 02.10.2011, 19:32:36 »
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

  • Newbie
  • *
  • Posts: 42
    • View Profile
Re: UŠaA
« Reply #89 on: 02.10.2011, 20:11:18 »
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

  • Moderator
  • Hero Member
  • *****
  • Posts: 1060
  • Fortes fortuna adiuvat
    • View Profile
Re: UŠaA
« Reply #90 on: 02.10.2011, 20:28:00 »
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

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #91 on: 02.10.2011, 20:40:20 »
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

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 489
  • /root
    • View Profile
Re: UŠaA
« Reply #92 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

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

M4D4

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #93 on: 02.10.2011, 20:48:00 »
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

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: UŠaA
« Reply #94 on: 02.10.2011, 20:50:37 »
ano, tie zlozitosti sa maju pocitat, no netusim ako :D

bEnd3r

  • Full Member
  • ***
  • Posts: 143
    • View Profile
Re: UŠaA
« Reply #95 on: 02.10.2011, 21:05:11 »
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)
Code: [Select]
http://www.beinrohr.sk/sxool/4roc/misc_junk/Programovacie%20techniky.pdfstrana 6
« Last Edit: 02.10.2011, 22:18:26 by bEnd3r »

M4D4

  • Sr. Member
  • ****
  • Posts: 256
    • View Profile
Re: UŠaA
« Reply #96 on: 02.10.2011, 23:51:45 »
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

  • Full Member
  • ***
  • Posts: 218
    • View Profile
Re: UŠaA
« Reply #97 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).

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: UŠaA
« Reply #98 on: 03.10.2011, 13:58:31 »
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.
« Last Edit: 03.10.2011, 15:03:08 by veteran »

ultimate

  • Sr. Member
  • ****
  • Posts: 337
    • View Profile
Re: UŠaA
« Reply #99 on: 03.10.2011, 22:20:55 »
stale nikto nevie ako to vypocitat ?