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....


Copyright © 1978-2009, SGP Systems