HELP - Vývojový diagram

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

krakrkre
nováček
Příspěvky: 1
Registrován: září 11
Pohlaví: Muž
Stav:
Offline

HELP - Vývojový diagram

Příspěvekod krakrkre » 25 zář 2011 09:41

Chtěl bych Vás všechny poprosit o radu jak nakreslit tento vývojový diagram:

Zadaná posloupnost čísel je rozdělena nulami na úseky tvořené nenulovými čísly. Ukončena je dvěma nulami následujícími bezprostředně po sobě. Určete hodnotu největšího čísla v nejdelším úseku. Předpokládejte, že úseky nenulových čísel mají různé délky.

Jsem v tom teprve začátečník, který se moc nevyzná ani v pojmech, takže bych prosil o takzvané řešení "polopatě" :smile:

Je to úkol ze školy, z programování jsem propadl a tenhle úkol mi může pomoct k jedničce, která mi před dalším propadnutím může dost pomoct, takže jsem předem vděčný všem, kteří mi dokáží poradit :idea:

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: HELP - Vývojový diagram

Příspěvekod CZechBoY » 25 zář 2011 14:10

když si propadl tak nechoď na tu školu když tě to nezajmá!
tady nikdo domácí úkoly fakt dělat nebude a už vůbec ne za tebe
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: HELP - Vývojový diagram

Příspěvekod faraon » 25 zář 2011 14:40

Z programování nejde propadnout, to ses na to musel úplně vy[PÍP]at!

Nejdřív si představ, jak by zpracovávaná data mohla vypadat. Každý úsek je ukončený nulou, konec zpracovávaných dat (a tím i konec čtení a čas pro výpis výsledků) je označený dvěma nulami. To znamená že je tam nula jako konec úseku a další nula jako signál "žádná data":

9 8 7 6 0
1 2 3 4 5 0
1 1 1 0
0

Dál bude vhodné vymyslet vhodná jména proměnných, aby ses v nich snadno vyznal:

cislo - právě načtené číslo, podle něj se bude řídit další činnost programu.
delka - délka aktuálně zpracovávaného úseku, tu je potřeba před každým úsekem nastavit na nulu!
minule - minulé načtené číslo, fungující jako flag ukazující jestli se zrovna zpracovává úsek nebo bylo předchozí číslo nula, takže další nula ukončí načítání. Tohle naopak na začátku programu nesmí obsahovat nulu!*
nejvetsi - největší nalezené číslo v každém úseku, opět je ho na začátku každého úseku potřeba nastavit na nulu.
maxdelka - délka nejdelšího úseku, nastaví se na nulu na začátku programu.
maxcislo - největší číslo v nejdelším úseku, opět nula na začátku programu.

Při tvorbě programu začneme tím nejdůležitějším, což je smyčka načítající čísla, která musí poznat správný okamžik kdy se má ukončit. Zároveň si inicializujeme proměnné do stavu vhodného pro běh programu:

01.jpg
01.jpg (6.42 KiB) Zobrazeno 335 x


Když hlavní smyčka funguje tak jak má, můžeme pokračovat dál.
Co bude ta "další činnost"? To se rozhodne podle toho jestli zadané číslo byla nula nebo ne, jsou dvě možnosti:
1) Nenulové číslo se porovná s největším doposud nalezeným v právě zpracovávaném úseku, pokud je větší, tak se uloží do proměnné nejvetsi. Také je potřeba přičíst jedničku k délce úseku, abysme věděli kolik čísel celkem obsahoval.
2) Nula ukončuje úsek, takže se podíváme jestli jeho délka byla větší než délka nejdelšího zatím nalezeného. Pokud ano, uložíme jeho délku do maxdelka a nejvyšší právě nalezené číslo do maxcislo. Potom se vynuluje délka úseku a největší číslo v úseku a hledá se dál:

02.jpg
02.jpg (4.81 KiB) Zobrazeno 335 x


Tak se nad tím zamysli a zkus to nakreslit sám. A jestli chceš s programováním trochu přežít, začni tady: http://karel.oldium.net/


* Nulu nesmí obsahovat kvůli tomu, že kdyby první načtené číslo byla také nula, tak by se program ihned ukončil. V zadání je výslovně řečeno že data ukončují dvě nuly po sobě a je třeba počítat i s chybami ve vstupních datech.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů