prevod - vyvojovy diagram

Programovacie jazyky, rady, poradňa...
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

prevod - vyvojovy diagram

Príspevok od používateľa tina.olbreitova »

ahojte, mohol by mi niekto poradit???

mam vyvojovy diagram, chcem ho skontrolovat, ci je spravny a pripadne poradit, ako tam mam dať, aby mi to vypisovalo od najvyššej hodnoty. dikes
Prílohy
prevod.docx
(60.88 KiB) 57 stiahnutí
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nech je to pokus o čokoľvek, je to zle lebo výstup bude vždy 0. To je dané podmienkou kedy má skončiť cyklus. Ten sa bude vykonávať až kým sa nebude x rovnať nule, a potom toto x vypíšeš. Skús sem dať aspoň zadanie, lebo nejak som v tom nenašiel logiku o čo si sa pokúšala
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

Mam napísať algoritmus na prevod z 10 do 2 sústavy, pričom bude vypisovať od najvyššej hodnoty...

to si ma moc teda nepotešil...

//autoeditácia príspevku ( 17 Dec 2009, 20:04 )
opravujem na konci dám vypísať nie x ale zvyšok.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

Ten zvysok ale bude len jedno cislo nie? :) Menovite x=1 -> zvysok=1 mod 2 = 1. Takze na konci ti vypise akurat tak jednotku :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

vypíše jednotku alebo nulu, podľa toho aké bude x. Tie zvyšky si musíš zapisovať, najlepšie do nejakého reťazca nech ich tam máš všetky a nie stále prepisovať tú istú premennú
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

Jak jednotku alebo nulu? Ved posledne x bude vzdy jeden a teda zvysok bude vzdy jeden nie? :) Cim zacina kazdy binarny kod? :P
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

tak to ste ma teda moc nepotešili
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

BX napísal:Jak jednotku alebo nulu? Ved posledne x bude vzdy jeden a teda zvysok bude vzdy jeden nie? :) Cim zacina kazdy binarny kod? :P
pozrel som to len zbežne a zavrel, nechcelo sa mi to znova načítavať lebo je to trápne docx. Myslel som že najprv robí div a potom mod, teda opačné poradie tých príkazov. Teraz pozerám že má najprv mod a potom div, tak hej, v takom prípade to bude iba jednotka
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

posielam opravený diagram, snáď to vyzerá už lepšie....
Prílohy
prevod.doc
(92 KiB) 34 stiahnutí
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

No zbezne som pozrel. Este popracuj na tom zobrazeni toho binarneho kodu, pretoze zase vypisujes len jeden znak a to zvysok(i); Musis vypisat vsetko, teda bud zvysok (bez indexu, ale neviem ci sa to moze), alebo zase v cykle od j=0 do j=i; respektive skor od j=i do j=0, vypis zvysok(j) aby sa vypisal od zadu :)
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

no ja som to i myslela ako pole, do ktoreho sa mi to bude zapisovať, či to je zle sformulované???
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

No do pola ukladas dobre, lenze ukladas to do zvysok(1), zvysok(2), zvysok(3) atd... A nakoniec vypises len nejake zvysok(i) - teda napriklad zvysok(6) a to je vsetko :) Musis vypisat vsetky "íčka"
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

aha, šak logika nie? a to čo si mi napísal ten cyklus mám dať vnorený do toho repeat until?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

no... mozes to vypisovat bud priamo v repeat until, ale tym dostanes zly bunarny kod, pretoze sa budu zapisovat opacne... normalne dalsi repeat until s vypisovanim
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

si ma domotal už úplne...
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

Po poriadku:
V jednom cykle zistis zvysok (x mod 2), vydelis x (x div 2) a i zvysis o jedna (i=i+1). V prvom prechode cysklom ma i hodnotu 0 tak zvysok ulozis do zvysok(0), v druhom prechode ma i hodnotu 1 tak ulozis zvysok do zvysok(1) atd...
V dalsom cykle musis ale vybrat vsetky tieto zvysky. Od 0 az po neviem kolko... Tak urobis novy cuklus, kde budes j zvysovat o jedna a vypisovat zvysok(j) az do hodnoty i (pretoze i sa v predchadzajucom cykle zvysovalo do vtedy, kym x nebolo nula. Teda tolko zvyskov si vlastne nacitala)
A tak ti staci normalne dalsi cyklus:
repeat
vypis(zvysok(j)
j=j+1
until(j=i)

Lenze... binarny kod sa vypisuje od zadu vsak? To vieme... tak ale potom nemozme vypisat zvysok od nula po i, ale od i po nula. Aby posledny zvysok bol prvy (tak dosiahneme to, ze ho napiseme "od zadu")
Tak len treba opravit podmienku a hotovo.

repeat
vypis(zvysok(i)
i=i-1
until(i=0)
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

aha už chápem, takže pod ten cyklus čo tam má a končím x:=0 nedám vypísať zvyšok ale dám druhý cyklus...aha...ďakujeeeeem....

//autoeditácia príspevku ( 30 Dec 2009, 14:52 )
takto dáko????
Prílohy
prevod.doc
(103 KiB) 22 stiahnutí
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Takto ako to mas, by si vypisovala jednu hodnotu, ktora neexistuje...
Napr. x=3 i=0
zvysok(0) = x mod 2 -> zvysok(0) = 1
x = x div 2 -> x = 1
i = i+1 -> i = 1
x <> 0
zvysok(1) = x mod 2 -> zvysok(1) = 1
x = x div 2 -> x = 0
i = i+1 -> i = 2
x == 0
vypis(zvysok(2)) ...a tu nemas nic ulozene ;)

takze treba dat

Kód: Vybrať všetko

vypis(zvysok(i-1))
tina.olbreitova
Amateur
Amateur
Príspevky: 31
Registrovaný: 07 dec 2009, 19:41

Príspevok od používateľa tina.olbreitova »

a tak ako to je to nemôže byť?

vypis zvysok(i)
a potom i:=i-1 ???

miesto tohoto dám vypis(zvysok(i-1))???
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Tak ako to je to nemoze byt (vsak si precitaj ten moj predchadzajuci prispevok, som tam priklad uviedol, ze v com je problem). A treba upravit tento riadok:

Kód: Vybrať všetko

vypis(zvysok(i))

tymto:

Kód: Vybrať všetko

vypis(zvysok(i-1))
Potom by uz vsetko malo byt dobre ;)

Ak by bol problem, tak mozem podrobnejsie vysvetlit ;)
Napísať odpoveď