Ano, je to psaný ve FreePascalu.
Ale jak to tam mám zapsat?
Takhle to asi být zapsané nemůže, ne? A co ten podprogram?
http://www.jpeg.cz/images/2016/05/27/MpgA.png
Vývojový diagram
Re: Vývojový diagram
Takhle se mi ta volání líbí. Odpovídají hlavičce volané procedury, je v nich celý výraz který se počítá a přiřazuje.
Zato u toho výpisu je potřeba napsat co se vlastně dělá, protože kosodélník znamená obecný vstup/výstup. Pro čtení z klávesnice a výpis na obrazovku existují speciální značky, "Manual input" a "Display". Vypadají jako klávesnice a klasický obrazovkový monitor při pohledu z boku:
Ta procedura je trochu složitější, navíc jsi tam zase nenakreslil jak probíhají ty cykly. Možná by pomohlo přepsat jí do starého pascalského odsazování, to je přehlednější.
Ve vnitřním cyklu se vypisují buňky jednoho řádku matice, potom se odřádkuje, a to všechno se provádí ve vnějším cyklu pro všechny jednotlivé řádky. Kdyby sis to napsal s většími mezerami, dal by se ten diagram nakreslit přímo do tohohle kódu, kolem jednotlivých příkazů
Begin a end ti pak ukazují místa, kde spojovací čáry vstupují a vystupují do/z jednotlivých bloků příkazů. Každá jednotlivá programová struktura se totiž může brát jako složený příkaz, a zakreslit jako jeden obdélník, viz níže.
Trochu jsem ti opravil hlavičku té procedury a přidal komentář s deklarací použitých proměnných, tak jí zkus dokončit. Jako vzor jsem předělal ten minulý obrázek, a důkladně jsem ho ošipkoval, abys lépe viděl co se v těch cyklech děje. Vnitřní cyklus je navíc orámovaný přerušovanou čarou:
Ten čárkovaný obdélník vnitřního cyklu by mohl obsahovat jen stručný popis, protože je to složený příkaz, který má vcelku jeden vstupní a jeden výstupní bod. Mohlo by v něm být napsáno například "výpis jednoho řádku matice". Celý program se skládá ze sekvence takovýchhle bloků. které dohromady vytváření jeden blok. Dva a více po sobě následující bloky se vždy dají složit do jednoho bloku, jako korále na nitce.
Každý z těch bloků může zase obsahovat libovolný počet jiných bloků, a všechny se dají zase drobit a drobit až na úroveň jednotlivých instrukcí procesoru (a dalo by se jít ještě dál, přes mikroinstrukce až ke spínání jednotlivých tranzistorů!), když budeš tímhle postupem (zjemňováním) navrhovat program, říká se tomu postup shora dolů. Je to jeden ze základních bodů strukturovaného programování.
A když už jsem načal to strukturování, vývojové diagramy pro něj sice nejsou úplně nejvhodnější (vhodnější jsou struktogramy, ale ty je mnohem pracnější kreslit), ale pokud si ohlídáš aby se ti jednotlivé struktury daly vždy uzavřít do bloku s jedním vstupem a jedním výstupem, bude vždy možné takový vývojový diagram přepsat do libovolného moderního jazyka.
Jenom se ti ty spojovací čáry nesmí nikdy zkřížit, to by znamenalo že jsi někde něco udělal úplně blbě
Zato u toho výpisu je potřeba napsat co se vlastně dělá, protože kosodélník znamená obecný vstup/výstup. Pro čtení z klávesnice a výpis na obrazovku existují speciální značky, "Manual input" a "Display". Vypadají jako klávesnice a klasický obrazovkový monitor při pohledu z boku:
Ta procedura je trochu složitější, navíc jsi tam zase nenakreslil jak probíhají ty cykly. Možná by pomohlo přepsat jí do starého pascalského odsazování, to je přehlednější.
Kód: Vybrat vše
procedure vypsanimatice(var m:matice);
var i,j:integer;
begin
for i:= 1 to 5 do
begin
for j:= 1 to 5 do
write(m[i,j],' ');
writeln;
end;
end;
Ve vnitřním cyklu se vypisují buňky jednoho řádku matice, potom se odřádkuje, a to všechno se provádí ve vnějším cyklu pro všechny jednotlivé řádky. Kdyby sis to napsal s většími mezerami, dal by se ten diagram nakreslit přímo do tohohle kódu, kolem jednotlivých příkazů
Begin a end ti pak ukazují místa, kde spojovací čáry vstupují a vystupují do/z jednotlivých bloků příkazů. Každá jednotlivá programová struktura se totiž může brát jako složený příkaz, a zakreslit jako jeden obdélník, viz níže.
Trochu jsem ti opravil hlavičku té procedury a přidal komentář s deklarací použitých proměnných, tak jí zkus dokončit. Jako vzor jsem předělal ten minulý obrázek, a důkladně jsem ho ošipkoval, abys lépe viděl co se v těch cyklech děje. Vnitřní cyklus je navíc orámovaný přerušovanou čarou:
Ten čárkovaný obdélník vnitřního cyklu by mohl obsahovat jen stručný popis, protože je to složený příkaz, který má vcelku jeden vstupní a jeden výstupní bod. Mohlo by v něm být napsáno například "výpis jednoho řádku matice". Celý program se skládá ze sekvence takovýchhle bloků. které dohromady vytváření jeden blok. Dva a více po sobě následující bloky se vždy dají složit do jednoho bloku, jako korále na nitce.
Každý z těch bloků může zase obsahovat libovolný počet jiných bloků, a všechny se dají zase drobit a drobit až na úroveň jednotlivých instrukcí procesoru (a dalo by se jít ještě dál, přes mikroinstrukce až ke spínání jednotlivých tranzistorů!), když budeš tímhle postupem (zjemňováním) navrhovat program, říká se tomu postup shora dolů. Je to jeden ze základních bodů strukturovaného programování.
A když už jsem načal to strukturování, vývojové diagramy pro něj sice nejsou úplně nejvhodnější (vhodnější jsou struktogramy, ale ty je mnohem pracnější kreslit), ale pokud si ohlídáš aby se ti jednotlivé struktury daly vždy uzavřít do bloku s jedním vstupem a jedním výstupem, bude vždy možné takový vývojový diagram přepsat do libovolného moderního jazyka.
Jenom se ti ty spojovací čáry nesmí nikdy zkřížit, to by znamenalo že jsi někde něco udělal úplně blbě
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Vývojový diagram
Teď moc nechápu, co po mně chcete, už jsem z toho zmatený
Co si myslíte o tomhle?
http://www.jpeg.cz/images/2016/05/28/bwoAy.png
Co si myslíte o tomhle?
http://www.jpeg.cz/images/2016/05/28/bwoAy.png
Re: Vývojový diagram
Ale jo, trochu to chápeš
To vlevo je konec hlavního programu, ale to dokresli k tomu předchozímu obrázku, kde bylo rozkreslené to větvení (tady jsem z něj udělal jeden blok, za to by tě ve škole nepochválili). A koukám že ty obdélníky jsi už stihl opravit na volání podprogramu! Můžeš přidat i hlavičku (úvodní terminátor) s názvem programu, a po ní těm cyklům předcházela ještě jedna věc, podívej se do zdrojáku.
Podprogram vpravo vypadá už skoro perfektně, jenom ti tam ještě chybí jeden detail, podívej se do zdrojáku co všechno se provádí uvnitř vnějšího cyklu. Co se ještě udělá na konci každého vypsaného řádku?
Možná že u toho podprogramu by se místo "Konec" hodil spíš "Návrat", ale to záleží spíš na tom jak jste se to učili. Já tam teda u procedur nepíšu nic, a pokud funkce vrací nějakou hodnotu, tak napíšu co se vrací.
Jen mě tak napadlo, neučí vás ty vývojáky podle knihy "Algoritmizace" od Jany Pšenčíkové? Výborná učebnice, a má je tam přesně tak jak je děláš ty. Co jsem tak vypozoroval, tak učebnice programování od ženských jsou lepší než spousta těch které napsali chlapi, dokážou to pochopitelněji a podrobněji vysvětlovat. Však první programátor v historii byla také žena, Ada Lovelace: http://www.root.cz/clanky/prichod-hacke ... -byla-ada/
A jedna z nejvýznamnějších osobností vývoje programovacích jazyků také, Grace Hopper: http://www.root.cz/clanky/prichod-hacke ... hopperova/
To vlevo je konec hlavního programu, ale to dokresli k tomu předchozímu obrázku, kde bylo rozkreslené to větvení (tady jsem z něj udělal jeden blok, za to by tě ve škole nepochválili). A koukám že ty obdélníky jsi už stihl opravit na volání podprogramu! Můžeš přidat i hlavičku (úvodní terminátor) s názvem programu, a po ní těm cyklům předcházela ještě jedna věc, podívej se do zdrojáku.
Podprogram vpravo vypadá už skoro perfektně, jenom ti tam ještě chybí jeden detail, podívej se do zdrojáku co všechno se provádí uvnitř vnějšího cyklu. Co se ještě udělá na konci každého vypsaného řádku?
Možná že u toho podprogramu by se místo "Konec" hodil spíš "Návrat", ale to záleží spíš na tom jak jste se to učili. Já tam teda u procedur nepíšu nic, a pokud funkce vrací nějakou hodnotu, tak napíšu co se vrací.
Jen mě tak napadlo, neučí vás ty vývojáky podle knihy "Algoritmizace" od Jany Pšenčíkové? Výborná učebnice, a má je tam přesně tak jak je děláš ty. Co jsem tak vypozoroval, tak učebnice programování od ženských jsou lepší než spousta těch které napsali chlapi, dokážou to pochopitelněji a podrobněji vysvětlovat. Však první programátor v historii byla také žena, Ada Lovelace: http://www.root.cz/clanky/prichod-hacke ... -byla-ada/
A jedna z nejvýznamnějších osobností vývoje programovacích jazyků také, Grace Hopper: http://www.root.cz/clanky/prichod-hacke ... hopperova/
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Vývojový diagram
Já vím, že tam mám mít celý ten cyklus, já jen ukazuji, jestli to tak má být správně, já to pak všechno vezmu a udělám jeden velký VD programu.
Podle žádné učebnice nás neučí, jelikož učebnice vůbec nemáme, ale je možný, že nás takhle podle toho učí.
Já bych byl spíše radši, kdyby jste mi udělal obrázek, jak to má vypadat toho co mám/e, jelikož pak přesně nevím, jestli mám všechno správně napsané, udělané, použité dobré značky apod.
U začátku programu si nejsem jistý, co tam má být, já bych tam dal jenom "start/začátek"(název programu) a možná maximálně poznámku s proměnnými, takže přesně nevím, co chcete dát na začátek programu.
Taky si nejsem 100% jist, zdali mám konec programu přesně správně zapsaný (značky, text v nich, a přesně takhle to má být??) a také podprogram, jestli tak má být.. Vím, že jste psal, že vypadá téměř už perfektně, ale že tam chybí malý detail. Koukám do na program a nevím co mi tam chybí, zdá se mi, že vše již mám zapsané.
Proto by bylo dobré, jak jsem již zmínil, kdyby jste byl ochoten mi ukázat, jak je to dobře. Můžete jenom vzít a stáhnout obrázek a jen to poupravit, aby tam když tak nebyly chyby.
Podle žádné učebnice nás neučí, jelikož učebnice vůbec nemáme, ale je možný, že nás takhle podle toho učí.
Já bych byl spíše radši, kdyby jste mi udělal obrázek, jak to má vypadat toho co mám/e, jelikož pak přesně nevím, jestli mám všechno správně napsané, udělané, použité dobré značky apod.
U začátku programu si nejsem jistý, co tam má být, já bych tam dal jenom "start/začátek"(název programu) a možná maximálně poznámku s proměnnými, takže přesně nevím, co chcete dát na začátek programu.
Taky si nejsem 100% jist, zdali mám konec programu přesně správně zapsaný (značky, text v nich, a přesně takhle to má být??) a také podprogram, jestli tak má být.. Vím, že jste psal, že vypadá téměř už perfektně, ale že tam chybí malý detail. Koukám do na program a nevím co mi tam chybí, zdá se mi, že vše již mám zapsané.
Proto by bylo dobré, jak jsem již zmínil, kdyby jste byl ochoten mi ukázat, jak je to dobře. Můžete jenom vzít a stáhnout obrázek a jen to poupravit, aby tam když tak nebyly chyby.
Re: Vývojový diagram
Když já bych radši abys na to přišel sám, ono se ti to může jednou hodit i k jiným věcem než je programování
Pokud bys tam měl nějakou hrubou chybu, tak bych tě na ní upozornil, to se neboj. Nemůžeme pokračovat dál pokud budeš dělat blbost, taková věc se musí odstranit jako první...
Hlavička programu bude podobná hlavičce toho podprogramu, takže prostě ovál s názvem programu, a po něm poznámka s deklarací lokálních proměnných.
Detail v tom podprogramu najdeš jak ve zdrojáku, tak i v mém popisu pod tím obrázkem. Zamysli se ještě jednou - co musíš udělat na konci každého řádku?
Nějakou učebnici by to chtělo, nebo aspoň doporučenou literaturu byste měli mít. Tahle kniha se dneska už hůř shání, je z roku 2009, ale existuje uložto... Další věc, která se v Čechách moc nevyskytuje, je šablona na kreslení vývojových diagramů, existuje jich dokonce celá řada různých, například tyhle:
Pokud bys tam měl nějakou hrubou chybu, tak bych tě na ní upozornil, to se neboj. Nemůžeme pokračovat dál pokud budeš dělat blbost, taková věc se musí odstranit jako první...
Hlavička programu bude podobná hlavičce toho podprogramu, takže prostě ovál s názvem programu, a po něm poznámka s deklarací lokálních proměnných.
Detail v tom podprogramu najdeš jak ve zdrojáku, tak i v mém popisu pod tím obrázkem. Zamysli se ještě jednou - co musíš udělat na konci každého řádku?
Nějakou učebnici by to chtělo, nebo aspoň doporučenou literaturu byste měli mít. Tahle kniha se dneska už hůř shání, je z roku 2009, ale existuje uložto... Další věc, která se v Čechách moc nevyskytuje, je šablona na kreslení vývojových diagramů, existuje jich dokonce celá řada různých, například tyhle:
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Vývojový diagram
Zamysli se ještě jednou - co musíš udělat na konci každého řádku?
No vím, že středník (;), ale ty se do VD přeci nepíšou ne?
http://www.jpeg.cz/images/2016/05/29/kTj32.png
No vím, že středník (;), ale ty se do VD přeci nepíšou ne?
http://www.jpeg.cz/images/2016/05/29/kTj32.png
Re: Vývojový diagram
Středník to fakt není
No, máš ve zdrojáku write a writeln, čím se liší? Kdy se který používá? To by měla být poslední věc která tomu podprogramu chybí.
Ta hlavička hlavního programu by šla, ještě tam je před těmi cykly nějaká činnost.
Bacha na to že vnitřek těch cyklů jsem vyřízl, a chybí tam to větvení! A ten čárkovaný obdélník tam také nepatří, ten tam byl jen abys lépe viděl blok vnitřního cyklu.
No, máš ve zdrojáku write a writeln, čím se liší? Kdy se který používá? To by měla být poslední věc která tomu podprogramu chybí.
Ta hlavička hlavního programu by šla, ještě tam je před těmi cykly nějaká činnost.
Bacha na to že vnitřek těch cyklů jsem vyřízl, a chybí tam to větvení! A ten čárkovaný obdélník tam také nepatří, ten tam byl jen abys lépe viděl blok vnitřního cyklu.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Vývojový diagram
O tom cyklu vím, to se neboj.
no write je psaní na dalším řádku a writeln je na stejném řádku?
Před cykly, už nic nevidím, jen název programu a deklarování a potom už tam je jen podprogram, který máme nakreslený vedle.
Možná zadání počet řádků a sloupců ? Ale to máme v cyklech.
no write je psaní na dalším řádku a writeln je na stejném řádku?
Před cykly, už nic nevidím, jen název programu a deklarování a potom už tam je jen podprogram, který máme nakreslený vedle.
Možná zadání počet řádků a sloupců ? Ale to máme v cyklech.
Re: Vývojový diagram
Anonym123 píše:no write je psaní na dalším řádku a writeln je na stejném řádku?
Přesně naopak! Takže vnitřní cyklus napíše pět položek za sebou na jednom řádku, a pak je potřeba odřádkovat.
Letmý pohled do maličko upraveného zdrojáku napoví, které dvě věci se dělají ve vnějším cyklu. První je vnitřní cyklus, a ta druhá? Už jí vidíš?
Kód: Vybrat vše
procedure vypsanimatice(var m:matice);
var i,j:integer;
begin
for i:= 1 to 5 do
begin
for j:= 1 to 5 do write(m[i,j],' ');
writeln;
end;
end;
A stejně tak v tom hlavním programu máš na začátku nějaký výpis textu.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Vývojový diagram
Jo, už to chápu.
Ale jak to tedy mám zapsat do toho VD? když tam je jen čistě writeln ?
Ale jak to tedy mám zapsat do toho VD? když tam je jen čistě writeln ?
Re: Vývojový diagram
Tak abys tomu rozuměl ty i učitel(ka)
Já bych tam plácnul "Display" a v něm buď symbol pro Enter nebo \n, ale takové věci jste se se ještě neučili. Takže bys tam mohl udělat V/V kosodélník a do něj vepsat třeba:
Já bych tam plácnul "Display" a v něm buď symbol pro Enter nebo \n, ale takové věci jste se se ještě neučili. Takže bys tam mohl udělat V/V kosodélník a do něj vepsat třeba:
Kód: Vybrat vše
PIŠ:
nový řádek
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(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 16 hostů