JavaBlock - darmowy edytor i symulator zapomnianych schematów blokowych
12.11.2010 | aktual.: 12.11.2010 21:49
Ostatnio wielu laików bierze się za programowanie. I na pierwszy rzut biorą Pascala, C++, Javę, albo nawet i C#. Czy dobrze? Nie zawsze...
Patrząc na najczęściej spotykane problemy przy programowaniu (nie patrząc na te "zróbcie za mnie"): - wybór środowiska (błędnie zwanego tylko kompilatorem) - składnia języka - jak się tworzy pętle, warunki itd - deklaracja zmiennych - źle ustawione klamry - błędnie napisane wzory i problem z obsługą debuggera
Jak więc laicy powinni rozpocząć programowanie? Od starych dobrych schematów blokowych. Dlaczego?
Czym są schematy blokowy?
Schematy blokowe to graficzna metoda zapisu postępowania. Zapewne każdy spotkał się ze schematami blokowymi, gdzie przedstawione są sposoby postępowania i uwzględniający różne możliwości, gdzie z jednego bloku wychodzą dwie strzałki.
W niektórych szkołach uczą schematów blokowych, jednak albo z bardzo starym i niewygodnym oprogramowaniem, jakim jest Eli, albo "na wiarę", czyli "to powinno być dobrze". Często są problemy z symulacją (interpretacją) długiego schematu o dużej liczbie iteracji - łatwo się pomylić.
Za pomocą schematów blokowych łatwiej jest wizualizować działanie algorytmu - co i kiedy się dzieje. Od razu widać, co prowadzi do czego, nie ma więc problemu z np. źle ustawionymi klamrami (często połączone z kompletnym brakiem wcięć)
JavaBlock
JavaBlock oferuje zarówno tworzenie i symulację schematów blokowych. Jest to graficzny program napisany w pełni w Javie działający zarówno jako samodzielna aplikacja, jak i aplet internetowy.
Co prawda nie napiszemy w nim bardziej skomplikowanego programu (przynajmniej na razie:)), ale może służyć do prezentacji graficznej prostych algorytmów, oraz nauki programowania.
"Składnia" w JavaBlock JavaBlock do symulacji używa JavaScript. Interpreter jest jednak wzbogacony o kilka "translatorów". Można bowiem używać składni pascalowej, tzn. := do przypisania, = do porównania. Wystarczy włączyć "Tryb Pascala" z poziomu Menu.
Do wczytywania oraz wypisywania danych służą przygotowane funkcje:
a=Read(message) - wczytuje dowolny typ danych wyświetlając wpisany komunikat (opcjonalnie) i zapisuje ją do zmiennej a a=ReadNumber(message) - wczytuje liczbę (wiadomość opcjonalna) i zapisuje ją do zmiennej a Write(message) - wypisuje do konsoli (na prawym panelu "Wyjście") podany ciąg znaków (string) Writeln(message) - j.w, tylko przechodzi do następnej linijki
Oraz ich odpowiedniki-polecenia (działające tylko w bloku Wejścia/Wyjścia):
read a - wczytuje i zapisuje do zmiennej a readNumber a - wczytuje liczbę i zapisuje ją do zmiennej a write str - wypisuje ciąg znaków, gdzie str to jakiś ciąg znaków (string) writeln str - j.w, tylko że przechodzi do nowej linii.
W przypadku tych poleceń NIE STOSUJEMY ŚREDNIKÓW. W innym przypadku jest to opcjonalne.
Budowa stringów
Przy wypisywaniu często trzeba wypisać wartość zmiennej. Robi się to np. tak:
writeln "wartosc a="+a+"." Writeln("wartosc a="+a+".")
przy czym pierwszy TYLKO w bloku Wejścia/Wyjścia, ten drugi działa w pozostałych (np. w skrypcie osadzonym)
Można również śledzić wartości zmiennych uzupełniając pole "Śledź" w zakładce "Wartości zmiennych" na prawym panelu nazwami zmiennych, lub wyrażeniami (poszczególne wyrażenia/nazwy zmiennych oddzielając przecinkami). Można od razu śledzić np. "2*a*a".
Możliwości JavaBlock
* Tworzenie i symulacja schematów blokowych * Dzielenie się schematami za pośrednictwem pastebin.com (nie trzeba wysyłać pliku, wystarczy ID, lub adres WWW) * rysowanie niskopoziomowe * implementacja głównych poleceń LOGO * Zapis schematu do obrazka
Program jest dostępny w polskiej oraz angielskiej wersji językowej.
Wymagania: * Java SE6 (Windows, Linux, MacOS, BSD, Solaris) * min. 256 MB RAM * parę MB na HDD * CPU w miarę dzisiejszy (1GHz powinien wystarczyć)
Linki
Projekt na sourceforge Aplet Exe Manual (PL)
Aplet ze schematem prezentującym LOGO: Logo Aplet ze schematem prezentującym zamianę systemów liczbowych: Systemy