Stránka 1 z 2
Pomůžete mi prosím s vývojovými diagramy?* Vyřešeno
Napsal: 28 bře 2013 02:45
od JuReeeC
Zdravíčko,
potřeboval bych radu ohledně vývojového diagramu, mám tyto 2 zadání příkladů:
1) Vstupní údaje tvoří posloupnost kladných čísel a za ní je zařazeno číslo záporné. Sestavte program pro zjištění počtu všech prvků posloupnosti a dále počtu těch prvků posloupnosti, které jsou menší než 10.
2) Vstupní údaje tvoří přirozené číslo N z intervalu <2,100> a dále posloupnost N dvojic reálných čísel, které představují souřadnice bodů v rovině. Sestavte program pro nalezení souřadnic všech bodů, které leží v největší vzdálenosti od počátku souřadné soustavy.
Re: Delphi
Napsal: 28 bře 2013 08:19
od faraon
1) Cyklus a dvě počítadla.
2) Cyklus, vzdálenost vypočítaná přes pythagorovu větu, počítadlo. Záleží na tobě jestli budeš ukládat ty dvojice do nějakého pole nebo spojového seznamu, v prvním případě si ohlídej maximální počet, také by to šlo rekurzivně. Druhým cyklem vypíšeš výsledky.
Jestli to dokážeš naprogramovat, není problém podle tvého programu nakreslit flowchart:
Re: Delphi
Napsal: 28 bře 2013 14:47
od JuReeeC
Udělal jsem tu jedničku, ale dělá mi problém dát do vývojáku další podmínku. Dobře je podle mě ten vývoják vpravo, ale nevím jak tam mám navázat s tou druhou podmínkou, že mám určit počet <10.
Re: Delphi
Napsal: 28 bře 2013 17:58
od faraon
Ne počet, ale hodnota prvku! Takže mezi tu podmínku cyklu a P:=P+1 vlož další podmínku, které přičte druhé počítadlo, třeba M, pokud x<10.
A nezapomeň na základní pravidlo, že každá část programu (včetně programu jako celku) musí fungovat jako samostaný blok, s jedním vstupem a jedním výstupem, takže se ti ty linie nikdy nesmí zkřížit, tak jako na tom levém papíře!
Bloky se do sebe musí vnořovat, takže obě větve té vnitřní podmínky se ti zase spojí ještě před tím P:=...
A před konec programu pak ještě dát nějaký výpis výsledků, ale na to je zatím čas.
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 19:31
od JuReeeC
Ale když ja mám přece urcit dva pocty. Jeden bude celkový počet prvků posloupnosti a druhý počet bude kolik čísel je menších než 10. Tak to moc nechápu co tam mam doplnit.
--- Doplnění předchozího příspěvku (28 Bře 2013 19:31) ---
Ale když ja mám přece urcit dva pocty. Jeden bude celkový počet prvků posloupnosti a druhý počet bude kolik čísel je menších než 10. Tak to moc nechápu co tam mam doplnit.
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 19:58
od faraon
Máš dva počty (počítadla), P je celkový Počet, M je počet Menších než deset. A doplnit tam máš podmínku IF X<10 THEN M:=M+1; místo toho otazníku. Nějaký další dotaz?
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 20:27
od JuReeeC
Takže to má byt takhle?
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 20:54
od faraon
To by šlo, akorát to trochu zkrášli, ať to k něčemu vypadá

A můžeme se pustit do druhé úlohy, ta bude trochu těžší.
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 21:10
od JuReeeC
Může byt? :-) ještě bych si to potreboval vysvětlit ať to pochopim uplne, na začátku si vytvořím dva pocty, do kterych se postupne budou pričítat ty cisla že? Po prvním rozhodováním, jestliže to je pravda tak udělám druhe rozhodování, jinak tisknu výsledek. Při druhem rozhodování, jestliže to pravda je, tak prictu, jinak neděláme nic.
A ještě u toho druhého rozhodování, když jdu teda po + větvi, tak to chápu tak, že počet čísel se přičte akorát k počtu čísel menších než 10, ale nepřičte se k celkovému počtu prvků posloupnosti, mám ten vývoják dobře udělaný?
--- Doplnění předchozího příspěvku (28 Bře 2013 21:55) ---
Když jsem to dal do Delphi, tak to dělá toto:
Zadej cisla:
11
-5
pocet cisel mensich nez 10: 1
0
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 22:34
od faraon
Něco jsi tam napsal špatně, vyšlo to obráceně. Neprohodil jsi podmínku nebo P a M u výpisu výsledků? Zkus to s větším počtem čísel, a buď samá pod deset nebo samá nad deset, ať se vidí co to přesně provádí.
Jinak by to bylo správně, akorát si ohlídej ty šipky na spojovacích čarách, směry dolů a vpravo jsou defaultní, po těch se jde automaticky, ale nahoru a vlevo musíš v místě styku vždy označit "jednosměrkou", aby při procházení diagramu nemohlo dojít k tomu že můžeš pokračovat dvěma směry.
Nelekni se, používám trošku jiný styl, a jde spíš o ten vzhled.

- p1.png (44.07 KiB) Zobrazeno 374 x
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 22:42
od JuReeeC
Píšeš to trošku jinak no, vylekal si mě

máš u té první podmínky 3 čáry

Ano máš pravdu, při vypisování výsledků jsem prohodil M a P, ted' už to dělá dobře :)
Re: Pomůžete mi prosím s vývojovými diagramy?*
Napsal: 28 bře 2013 22:59
od faraon
To není podmínka ale hlavička toho cyklu, šestiúhelník, aby se odlišil od obyčejné podmínky. Je tam vstup do cyklu, návrat z oběhu, a negovaný výstup pro ukončení, to je to kolečko, které stejně jako u větvení označuje neplatnost podmínky.
Podobně se to kolečko kreslí také třeba u značek hradel ve schématech, to by karlos mohl vyprávět.
A víš proč je podmínka zrovna kosočtverec? Ono totiž IF ve FORTRANu, prvním programovacím jazyce z roku 1956, skutečně mělo tři výstupy!
IF (x-15) 100,100,200
Vyhodnotil se výraz (mohla tam být i holá proměnná), při záporném výsledku se skočilo na první uvedený label (100), při nulovém na druhý (tady také 100) a při kladném na třetí (200), což odpovídá podmínce
IF x<=15 GOTO 100 ELSE GOTO 200
Takže kosočtverec má jeden vstupní roh a tři výstupní, které se v diagramech označovaly +, - a 0, z čehož pochází zase to tvoje + a - jako platná a neplatná.