Soukup Graphic Programming Systems
SGP C# Studio
SGP C# Studio
Je nástroj pro výuku algoritmizace, objektového a strukturovaného programování v jazyce C#.
Tento nástroj umožňuje zapisovat algoritmy složitějších metod graficky - pomocí tzv. strukturálních diagramů, zkráceně strukturogramu, někdy
také struktogramu.
Zabudovaný preprocesor pak před kompilací programu vytvoří ze strukturogramu a seznamu maker (příkazů a podmínek) klasícký zdrojový kód.
Nástroj SGP C# Studio je výhodný pro školy hlavně proto, že strukturogramy SGP jsou přehledné a jejich zápis je velice jednoduchý.
Žáci/studenti se naučí význam pouze 3 symbolů (! je příkaz, * je opakování, / je větvení) a již mohou zapisovat libovolně složité algoritmy
a vytvářet první programy.
Postup práce při tvorbě programu (metody) je tedy stejný jako u konstruktérů v jiných inženýrských oborech. Nejprve se nakreslí
grafické schéma programu/metody (grafická struktura) a seznam maker (požadované příkazy a podmínky). Pak se zkratky těchto maker vloží na odpovídající
místa do grafické struktury a vznikne strukturogram. Z toho pak preprocesor vytvoří výsledný zdrojový kód pro kompilátor.
Důležité je to, že takto vytvářené metody mají srozumitelnou grafickou dokumentaci (!), ve které se pak snadno orientuje kdokoliv,
dokonce i původní autor :-)
Projekt vytvořený v SGP C# Studiu je možno přeložit buď přímo do exe nebo dll, nebo exportovat do Microsoft© Visual Studia©,
případně do Visual C# Express.
SGP C# Studio obsahuje standardní integrované vývojové prostředi (IDE), standardní C# editor se zvýrazněnou syntaxí, automatickým
doplňováním kódu a speciální funkcí SGP - sbalování zdrojového kódu po jednotlivých úrovních vnoření. Dále obsahuje prohlížeč objektů,
výkonnou knihovnu SGPRTL (pro 2D a 3D grafiku) a samozřejmě debugger.
Strukturogram
Strukturogram je grafické znázornění algoritmu pomocí 3 základních programových struktur (posloupnost, opakování a větvení).
Pomocí strukturogramu může být znázorněn libovolný algoritmus. Při programování počítačů se pomocí strukturogramu
znázorňují složitější metody (procedury, funkce), jednodušší metody, které obsahují pouze několik příkazů s minimem cyklů a podmínek
se zapisují přímo v programovacím jazyku.
Strukturogram SGP je tvořen pouze alfanumerickými znaky (© Bohumír Soukup, 1981). Jedná se o originální graficky nejúspornější zápis
algoritmu, který lze přímo převést do zdrojového kódu libovolného imperativního programovacího jazyka. SGP C# Studio převádí struktorogramy
do jazyka C#.
Příklad jednoduché úlohy "Vytrhněte z knihy všechny prázdné listy" a její řešení pomocí SGP:
1.Graf.struktura + 2.Seznam příkazů a podmínek ==> 3.Strukturogram = 4.Vygenerovaný program 1:1 - plně komentovaný klasický zápis
Kniha Příkazy: __Kniha__ Program Kniha
! 1 Otevři knihu! 1! | !2 1 Otevři knihu!
Listy 2 Zavři knihu! Listy Listy
* 3 Vytrhni list! *1 *1 Opakuj (dokud jsou neotočené listy) {
___List__ 4 Otoč list! ___List__ List
/ / Podmínky: /1 / /1 Když je (prázdný list)
Prázdný Popsaný *1 dokud jsou neotočené listy Prázdný Popsaný Prázdný list
/1 prázdný list 3! 4! 3 Vytrhni list!
/ Jinak
Popsaný list
4 Otoč list!
}
2 Zavři knihu!
Čím je algorimus úlohy složitější, tím výhodnější je jeho přehledný grafický zápis ve formě strukturogramu.
Srovnejte si přehlednost zápisu 3. (zápis SGP) a zápisu 4. (klasický zápis). Další ukázky srozumitelnosti strukturogramu viz příklady níže.
Základní prvky strukturogramu
Základní programové konstrukce dle JSP Řídicí znaky v SGP strukturogramu (znak na prvním místě prvku)
----------------------------------------------------------------- --------------------------------------------------------------
| Posloupnost | Opakování | Rozhodování | ! - příkaz (čísla příkazů se mohou vkládat k "!" z obou stran)
| | | | | *1 | /1 /2 / | * - opakování while
| A B C | A | A B C | + - opakování do-while
| | | | # - opakování for
| | | | @ - opakování foreach
| Pseoudokód: | Pseudokód: | Pseudokód: | / - větvení if (každá další větev také /)
| dělej A | dokud platí 1 | když platí 1 dělej A | | - větvení switch
| dělej B | dělej A | nebo platí 2 dělej B | / - větev case s break
| dělej C | | jinak dělej C | % - větev case bez break
| | | | ? - větvení ?(try) - ?(catch) - !(finaly)
| | | | & - lock
| C# kód: | C# kód: | C# kód: | " - definice podstruktury
| A(); | while (podm_1) | if (podm_1) A(); | ' - odkaz na podstrukturu
| B(); | A(); | else if (podm_2) B(); | ; - komentář
| C(); | | else C(); |
-----------------------------------------------------------------
|
Ovládání editoru struktur z klávesnice
W - vloží nový prvek vlevo od aktuálního prvku
E - vloží nový prvek nad aktuální prvek
R - vloží nový prvek vpravo od aktuálníhí prvku
X - vloží nový prvek pod aktuální prvek
A - posune větev doleva
F - posune větev doprava
Shift+šipka vlevo/vpravo - posune větev doleva/doprava
Shift+šipka dolů/nahoru - posune větev dolů/nahoru
Enter/F2 - edituje prvek
Del - smaže prvek
Ctrl+Del - smaže větev
Ctrl+C - zkopíruje větev nebo vyznačený řetěz znaků do schránky
Ctrl+X - vyřízne větev nebo vyznačený řetěz znaků v prvku a vloží do schránky
Ctrl+V - vloží větev nebo řetěz znaků ze schránky - pozn. větev lze vkládat pouze pod nejspodnější prvek větve (i té samé), nikoliv však do jejího těla
Příklady
Program Sudé-Liché
Strukturogram
+
Seznam příkazů a podmínek ==>
Vygenerovaný zdrojový kód v C# včetně všech komentářů (možno vynechat)
Na obrázku je příklad programu pro rozdělování zadávaných čísel na sudá a lichá. Program je ukončen po zadání čísla 0.
V levém okně je struktura programu (strukturogram), v prostředním je seznam příkazů a podmínek, a v pravém okně je
zobrazený vygenerovaný C# kód.
Srovnejte si prosím přehlednost schematického zápisu v levém okně a klasického zápisu téhož programu v okně úplně napravo.
Jak je na obrázku vidět, program je posloupnost tří částí (Začátek, Čísla a Konec).
Nejprve se vykoná "Začátek", tj. postupně příkazy 1 a 3. Pak se vykoná větev "Čísla" a nakonec větev "Konec".
V prostřední větvi "Čísla", se nejprve přečte první číslo (příkaz 4) a v podmínce
opakování (while) "*1" se zjistí, jestli toto číslo není 0 (při 0 program končí). Pokud číslo není 0 zjišťuje se,
zda je sudé (podmínka "/1"). Pokud je podmínka "/1" splněna, vypíše se, že číslo je sudé, jinak se vypíše, že číslo je liché.
Po zpracování přečteného čísla se přečte další číslo a program pokračuje opět opakováním s podmínkou "*1".
Je-li zadáno číslo 0, větev "Zpracuj čísla" skončí a program pokračuje větví "Konec", tj. vykonají se postupně
příkaz "2" (Piš konec programu) a příkaz "c" (Čekej).
Stáhnout program Sudé-Liché...
Program Čaruj
Strukturogram
+
Seznam příkazů a podmínek ==>
Vygenerovaný zdrojový kód v C#
Program Čaruj (na obrázku výše) je příklad 3D aplikace. Uživatel ovládá šipkami Baltíka ve 3D prostoru.
Dále může pomocí kláves vybírat modely a čarovat modely, mazat je, smazat celou scénu, měnit SkyBox,
měnit rychlost Baltíka atd.
Tento program Vám může skoužit jako základní kostra pro tvorbu her a jiných programů. Stáhněte si jej a experimentujte :-)
Stáhnout program Čaruj...
Program Čaruj - s ukázkou rozvinutých maker zapsaných v jazyce C# (příkazy 0, b, c, d; podmínky /P, |k, /Left; cyklus *1)
Strukturogram
+
Seznam příkazů a podmínek (některé rozvinuty) ==>
Vygenerovaný zdrojový kód v C#
Makra
Makra jsou příkazová a podmínková. Jak je vidět na obrázku výše, příkazové makro může být jeden nebo více kompletních C# příkazů, podmínkové makro je kompletní podmínka
zapsaná v jazyce C#, vymezující závorky "()" se nemusí uvádět.
V prvním sloupci seznamu je typ makra (/ podmínky, * cykly, příkazy nemají žádný speciální znak), pak následuje tzv. označení makra (libovolná zkratka) za kterou
může následovat popis makra (C# komentář).
Při vytváření maker postupujeme tak, že nejprve zapisujeme pouze tzv. hlavičky maker, tj. zkratku makra a komentář s popisem makra. Teprve až máme všechna makra definována
a umístěna ve strukturogramu, doplníme těla maker v programovacím jazyku - našem případě v C#.
První kroky s SGP
1. Nainstalujte si SGP C# Studio.
2. Stáhněte si program Sudé-Liché a zkoušejte s ním experimentovat.
3. Stáhněte si program Čaruj a zkoušejte s ním experimentovat.
V případě jakýchkoliv dotazů, námětů, či problémů nám napište....
|