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

Anonym123
nováček
Příspěvky: 20
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Vývojový diagram

Příspěvekod Anonym123 » 24 kvě 2016 16:31

Dobrý den,
poprosil bych o pomoc s vývojovým diagramem programu, který vám zadám níže.
S vývojovým diagramem nemám moc zkušenosti a nevím jak jej zapsat, takže bych byl vděčný za napsání vývojáku přesně jak má být, předem moc děkuji.

PROGRAM : http://www.jpeg.cz/obrazek/eHkI

Reklama
Uživatelský avatar
Microsheep
Level 4.5
Level 4.5
Příspěvky: 1656
Registrován: leden 10
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Microsheep » 24 kvě 2016 16:48

Obrázky se vkládají jako příloha a další věc, na dělání domácích úkolů jsou tu lidé háklivý :D

Anonym123
nováček
Příspěvky: 20
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Anonym123 » 24 kvě 2016 16:54

Já vím, ale tak co mám dělat. :-(

Uživatelský avatar
Eldan
Level 3.5
Level 3.5
Příspěvky: 691
Registrován: leden 16
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Vývojový diagram

Příspěvekod Eldan » 24 kvě 2016 17:25

1) Hned na začátku říct, že to je domácí úkol.
2) Psát dotazy sem až potom, co otázky zkusíš probrat s učitelem, ten je často kvalifikovanější, protože ví co přesně chce a co vás učí.
3) Očekávat že když už tu odpověď dostaneš, bude podstatně opožděná, takže sem určitě nepiš na poslední chvíli.
4) Ikdyž ti tu někdo bude ochotný pomoct, nečekej že udělá všechnu práci za tebe. Spíš tě postrčí správným směrem, přecejen je to tvůj úkol, né náš.

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

Re: Vývojový diagram

Příspěvekod faraon » 24 kvě 2016 20:22

Anonym123 píše:Já vím, ale tak co mám dělat. :-(

Především máš ukázat vlastní snahu, a aspoň kus vývojáku který jsi nakreslil, ať se máme od čeho odpíchnout. Základní značky znáš, ne?

Ono je totiž víc způsobů jak se to dá kreslit, jsou systémy IBM, UNIVAC, a pár dalších méně rozšířených, a každý z nich má řadu dialektů, protože si je různí lidé přizpůsobují svým zvyklostem i jazykům a technologiím které používají. Takže by bylo dobré vědět který z nich tvoje škola používá...

Mimochodem, tenhle způsob odsazování pochází odkud? Ne že by byl špatný, ale do historického borlandího IDE širokého pouze 80 znaků se fakt moc nehodí ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Anonym123
nováček
Příspěvky: 20
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Anonym123 » 25 kvě 2016 06:46

Na otázku, který systém používáme ti nedokážu odpovědět, díval jsem se i na internet, ale nějak jsem je nenašel, jen mi to hledá jiné věci. Jde o VD, který se normálně zapisuje ze shora dolů, kde se píše zápis, čtení, podmínky apod..
Nechápu vlastně to, jak se zapíše matice, podmínka, která tam je, protože já třeba umím zapsat klasickou podmínku, ale tuhle podmínku mi hlava nějak nebere.. Nevím je si se randomize tam má zapsat či ne a kde.

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

Re: Vývojový diagram

Příspěvekod faraon » 25 kvě 2016 23:06

To je úplné větvení, žádný problém: http://images.slideplayer.cz/12/3817369 ... lide_2.jpg

Deklaraci matice si můžeš zapsat třeba pomocí komentáře hned pod hlavičku hlavního programu, ta je tam jenom pro upřesnění: http://www.rff.com/fcs_comment_white.png

Randomize a random jsou procedury obsažené v překladači, takže je můžeš zapsat jako volání podprogramu, bez a s parametrem.

Stejně tak provedeš i volání výpisu matice, včetně předání příslušné matice. Samozřejmě si musíš tu proceduru vyřešit v samostatném vývojovém diagramu, což je věc kterou bys mohl začít. Hlavička, poznámka s deklarací proměnných, dva vnořené cykly, výpis dat a odřádkování. To je první, jednodušší část toho úkolu.

Takže zkus tu proceduru vypsanimatice() nakreslit, stylem který vás ve škole učili, a budeme to doplňovat. A vlož ten obrázek přímo sem jako přílohu, nejlépe jako černobílý PNG, ať je co nejmenší. Tady máš nejdůležitější značky: http://www.cs.uregina.ca/Dept/manuals/M ... _Prog1.gif
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Anonym123
nováček
Příspěvky: 20
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Anonym123 » 26 kvě 2016 07:06

Ale to "vypsanimatice" je podprogram jak vidíš, učitel říkal, že podprogramy máme udělat jen vedle hlavního VD, do kterého se vloží jméno podprogramu.

Děkuji za vysvětlení, nějak to chápu, ale jen nevím, jak zapsat -->
m1[i,j]:= random(9)+1;
m2[i,j]:= random(9)+1;


a potom jak tam máme podmínku m1[i,j] < m2[i,j] , tak nevím jak zapsat do VD m3[i,j]:= m1[i,j] a potom tam máme m3[i,j]:=m2[i,j]

Zkusím něco udělat a řekni mi je si to je správně :-)

http://www.jpeg.cz/images/2016/05/26/14k29.png

Ale určitě mi tam hodně chybí nebo to není správně. :-(

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

Re: Vývojový diagram

Příspěvekod faraon » 26 kvě 2016 21:00

Anonym123 píše:učitel říkal, že podprogramy máme udělat jen vedle hlavního VD, do kterého se vloží jméno podprogramu.

Ano, podprogram bude mít vlastní vývojový diagram, který nakreslíš vedle toho hlavního programu. A nebo na další papír, pokud by se ti to dohromady na jeden nevešlo.

Takhle se provádí volání podprogramu a předání parametrů:

Obrázek

Hlavní program s názvem "program" je jasný, třikrát za sebou v něm voláš proceduru "vypis", pokaždé s jiným rozsahem číselné řady, kterou má vypsat.
Vedle něj je diagram podprogramu, úvodní terminátor opět obsahuje název, ale ještě navíc proměnné, do kterých se musí předat požadovaný rozsah! Deklarace v Pascalu by vypadala takhle:

Kód: Vybrat vše

procedure vypis(od,do : integer);

(Pozor! Došlo by k chybě při překladu, protože "do" je příkaz Pascalu, takže není možné mít proměnnou se stejným názvem.)
Ta procedura obsahuje jen dva bloky, které by bylo potřeba ještě rozkreslit.
Závěrečný terminátor by mohl obsahovat návratovou hodnotu, pokud by šlo o funkci. Tady se nic nevrací.

A teď k tomu tvému obrázku.

Ten terminátor "Začátek" bych si v tomhle případě odpustil, protože tohle není na úplném začátku programu, a navíc by v něm měl být název toho programu.
Potom tam máš za sebou dva cykly, které nedělají nic. To je blbost, navíc při práci s maticí musíš pracovat po řádcích a v každém řádku po sloupcích, takže to musí být vnořené cykly! Pomohlo by kdybys ten zdroják měl napsaný s klasickým pascalským odsazováním, ono je to pak na první pohled vidět přímo v kódu:

Kód: Vybrat vše

  for i:=1 to 5 do
    for j:= 1 to 5 do
      begin
        m1[i,j]:= random(9)+1;
        m2[i,j]:= random(9)+1;
        if m1[i,j] < m2[i,j] then
          begin
            m3[i,j]:= m1[i,j];
          end
        else
          begin
            m3[i,j]:= m2[i,j];
          end;
      end;

Index "i" počítá řádky, index "j" počítá sloupce, a v každé buňce se provedou dvě volání podprogramu "random" a jedno podmíněné větvení. Ta volání tam vůbec nemáš. Tenhle kousek programu bych nakreslil takhle nějak:

14k29_.png
14k29_.png (11.14 KiB) Zobrazeno 1221 x


Vypadá to složitě (pro sebe bych to udělal trochu jinak a použil víc šipek), tak si jeď prstem podle čar a sleduj co přesně se ve kterém místě děje. Místo otazníků bude ještě potřeba něco dopsat, tak popřemýšlej co. Hlavně u té podmínky není jasné která větev je pravdivá a která nepravdivá, takže je označ podle vašich zvyklostí.
Obě volání podprogramu předávají parametry a budou vracet nějaký výsledek, který je potřeba někam přiřadit. Pohled do zdrojáku ti napoví.
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Anonym123
nováček
Příspěvky: 20
Registrován: květen 16
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Anonym123 » 26 kvě 2016 22:18

Už předem děkuji, jak moc mi pomáháte, dáváte si fakt námahu. Vysvětlil jste mi již už dost, jen to sepsání je vážně pro mě složité. :-(
Podle obrázku, co jste dal s VD, tak místo otázníku je třeba jen dopsat ten podprogram, jelikož jste použil značku pro podprogram?

Nebude tam zapsání :

m1[i,j]:= random(9)+1;
m2[i,j]:= random(9)+1;

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

Re: Vývojový diagram

Příspěvekod faraon » 27 kvě 2016 19:46

Výborně, zavoláš tak podprogram - funkci "random" s parametrem 9, a výsledek výrazu se přiřadí kam potřebuješ. Obyčejný obdélník je práce s daty, obdélník se dvojitými bočními stranami znamená že se přitom volá nějaký podprogram.
Potom ještě zbývá popsat výstupy větvení, to udělej podle toho jak jste se to učili, třeba "platí" - "neplatí", nebo "ANO" - "NE".*

Jestli ses už prokousal těmi vnořenými cykly, mohl bys zkusit nakreslit celou proceduru "vypsanimatice", tam ti ukážu jak pomocí komentáře deklarovat proměnné. Potom to můžeš použít i v hlavním programu, a doplnit zbytek před a po tom kousku co už máš.


* Někdy se u větvení píše také + a -, ale to je blbost. Je to pozůstatek z doby kdy ve FORTRANu bylo aritmetické IF, které se podle výsledku výrazu větvilo do tří cest. Podle toho jestli byl výsledek záporný, nulový, nebo kladný, se provedl skok na některý ze tří labelů, takže ve vývojovém diagramu se mohly větve označit +, - a 0. Ale to bylo v padesátých letech, dnes se to už nepoužívá (škoda ;-)).
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Uživatelský avatar
Sender
Level 3.5
Level 3.5
Příspěvky: 700
Registrován: leden 07
Bydliště: Vysočina
Pohlaví: Muž
Stav:
Offline

Re: Vývojový diagram

Příspěvekod Sender » 27 kvě 2016 20:25

V čem konkrétně je to psaný ? V FreePascalu ? Obvykle se pro inicializaci náhodnosti používá procerura Randomize.(to jen pro úplnost)


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 1 host