small basic for you


Oj działo się działo…przez rok
Czerwiec 29, 2010, 6:10 pm
Filed under: SmallBasic | Tagi:

Rok w informatyce to strasznie długi czas. Najlepiej to widać po ewolucji jaką przeszedł nasz Small Basic. Rok temu była wersja 0.4 dzisiaj mamy wersję 0.9. Interfejs użytkownika bez rewolucji, raczej widać postępującą ewolucję. No i oczywiście przejście ze stron DevLabu na MSDN. Projekt z fazy eksperymentalne awansował do grupy bardziej profesjonalnej, choć oczywiście targetem są nadal ci wszyscy użytkownicy którzy chcieli by się nauczyć podstaw programowania. Projekt jest sukcesywnie rozwijany i cieszy się sporym zainteresowaniem, znacznie większym za oceanem niż u nas w kraju. Mam nadzieję że jego popularność z czasem osiągnie wystarczający poziom by został zauważony i doceniony przez większą liczbę nauczycieli i uczniów. Wersja 0.9



Nowy wersja Small Basica jest dostepna.
Kwiecień 21, 2009, 7:01 am
Filed under: SmallBasic

Na stronach DEVLABS znalazła się nowa wersja środowiska do pisania programów w Small Basicu, oznaczona numerem 0.4. Jak można się było spodziewać poprawiono w niej znalezione błędy. Z największych zmian to ta że dodano obiekt Timer, szczególnie przydatny przy tworzeniu gier.
Nową wersję Small Basica można pobrać :
Small Basic 0.4



Zabawa z tłem
Marzec 4, 2009, 11:47 am
Filed under: SmallBasic

Ciekawy artykuł na temat możliwości sterowania tłem w naszych programach graficznych w Small Basicu. Pierwszy przykład na prosty sposób na uzyskanie gradientu, drugi na szybie zmienianie tła pobieranego z Flickra. Warto przyjrzeć i poeksperymentować na przykładach.

http://blogs.msdn.com/abhinaba/archive/2009/03/04/small-basic.aspx



Projekt Euler – zabawa w algorytmy.
Marzec 3, 2009, 9:09 am
Filed under: SmallBasic

Project Euler skupia entuzjastów rozwiązywania ciekawych problemów matematyczno/algorytmiczno/programistycznych.

http://projecteuler.net/

Istnieje także specjalna strona poświęcona temu projektowi i osobą uczącym się programowania w Small Basicu, która zawiera rozwiązania wielu z prezentowanych problemów właśnie w naszym ulubionym języku programowania.

http://wiki.smallbasic.com/smallbasic.com/wiki/Default.aspx?Page=ProjectEuler&AspxAutoDetectCookieSupport=1



Piszemy pierwszą grę w zgadywanie liczb
Marzec 3, 2009, 8:13 am
Filed under: SmallBasic

PISZEMY GRĘ

Założenia:

Chcemy zgadywać liczbę od 1 do 100. Liczba za każdym razem ma być losowo wybierana. Podczas zabawy gdy podamy liczbę za małą powinien wyświetlić się komunikat „podałeś za małą liczbę”, a gdy podamy liczbę za dużą powinien wyświetlić się komunikat „podałeś za dużą liczbę”. Nasz program powinien także oznajmić nam gdy wskażemy liczbę wylosowaną przez komputer. Nasza gra powinna również umożliwiać rozpoczęcie rozgrywki od nowa bez wychodzenia z programu.

Po przeczytaniu założeń stawianych przed naszą grą powinniśmy zauważyć że nasz program wymagać będzie na początek 2 zmiennych – nazwijmy je :

LiczbaLosowa – zmienna będzie oznaczać wylosowaną przez komputer losową liczbę

Liczba – zmienna będzie oznaczać liczbę podaną przez nas z klawiatury

Zwróćmy również uwagę na fakt iż zmienna LiczbaLosowa – będzie wyznaczana raz na rozgrywkę, natomiast zmienna Liczba będzie podawana wielokrotnie podczas rozgrywki.

Zastanówmy się jak można by przedstawić nasz program w postaci algorytmu. Skupmy się na razie nie tyle na komunikatach jakie powinny się wyświetlać na naszym monitorze a na czynnościach jakie powinien wykonać nasz program by spełnić podane założenia.

W najprostszej postaci algorytm działania naszego programu mógłby wyglądać następująco:

1. Losuj liczbę

2. Wprowadź liczbę z klawiatury

3. Jeżeli wprowadzona liczba jest różna od liczby wylosowanej wróć do punktu 2

4. Jeżeli wprowadzona liczba jest taka sama jak liczba wylosowana przez komputer to wróć do punktu 1.

Dlaczego warto pisać programy w postaci algorytmów? Bo dzięki temu możemy na początku nie skupiać się na samej technice wykonania/ kodowanie programu a więcej czasu poświęcić ogólnemu działaniu programu. Uzyskujemy dzięki temu ogólny pogląd jak powinien działać nasz program.

Mając taki ogólny algorytm możemy zacząć przekształcać go w działający program. Ponieważ nasz program May zapisany w postaci algorytmu najpierw zastanówmy się jak zrealizować jego poszczególne elementy.

1. Losuj liczbę

Program nasz zaczynamy od wygenerowania losowej liczby z zakresu od 1 do 100 i przypisania jej do zmiennej LiczbaLosowa

LiczbaLosowa=Math.GetRandomNumber(100)

Aby wylosować losową liczbę musimy skorzystać z generatora liczb losowych:

Math.GetRandomNumber(100)

100 – oznacza że górnym zakresem losowanych liczb jest właśnie 100

Wylosowaną liczbę przypisujemy do zmiennej: LiczbaLosowa

2.Wprowadź liczbę z klawiatury

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba=textwindow.ReadNumber()

3. Jeżeli wprowadzona liczba jest różna od liczby wylosowanej wróć do punktu 2

Skoro musimy powrócić w jakieś miejsce naszego programu musimy skorzystać z pętli.

Ponieważ pętla ma wykonać się różną liczbę razy (w zależności od naszego szczęścia raz możemy zgadnąć wylosowaną przez komputer liczbę za 3 razem a innym razem za 10 lub 15 razem), oczywistym wyborem będzie więc pętla While

While (Liczba<>LiczbaLosowa)

EndWhile

Liczba<>LiczbaLosowa – w pętli While oznacza że będzie się ona wykonywała tak długo aż ten warunek nie będzie spełniony, a więc do momentu w którym zgadniemy prawidłową liczbę.

W pętli While powinny być umieszczone instrukcję warunkowe informujące nasz o tym, czy podana przez nasz liczba jest za duża czy za mała.

Zwróćmy także uwagę na to, że przecież tyle razy ile wykona się pętla While tyle razy będziemy musieli podać liczbę. Dlatego też kod odpowiedzialny za odczytywanie kolejnych liczb również umieszczamy w tej pętli.

Ostatecznie nasza pętla While wyglądać będzie następująco:

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba =textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

A co się stanie gdy wreszcie uda nam się odgadnąć zgadywaną liczbę? Oczywiście program opuści pętle i powinien poinformować nas o tym że w końcu się nam udało za pomocą komunikatu:

„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”

Aby był on wyświetlany po wyjściu z pętli to musimy go umieścić poza nią:

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

4. Jeżeli wprowadzona liczba jest taka sama jak liczba wylosowana przez komputer to wróć do punktu 1.

Przyszedł czas na punkt czwarty naszego algorytmu. Aby zrealizować ten punkt należy wprowadzić procedurę. Procedura to część naszego programu, którą możemy wielokrotnie uruchamiać. To taki program w programie, który możemy wywoływać (uruchamiać) wielokrotnie. Procedurę rozpoczynamy od słowa Sub a po tym słowie kluczowym następuje nazwa procedury, która także służy do jej wywoływania. Procedurę kończymy słowem EndSub.

Sub gra

. . .

EndSub

Musimy teraz rozdzielić nasz program na część główną i procedurę. W procedurze mieścimy powtarzające się instrukcje jakie będą wykonywane za każdym razem, jeśli będziemy chcieli ponownie uruchomić naszą grę.

Sub gra

LiczbaLosowa=Math.GetRandomNumber(100)

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba =textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

EndSub

Musimy teraz napisać nasz główny program, który będzie wywoływać napisaną przez nasz procedurę.

Ponieważ chcemy naszą procedurę uruchamiać wiele razy musimy napisać odpowiednią pętle, która będzie to założenie realizować. Zaimplementujemy to w naszym programie w ten sposób że jeżeli będziemy chcieli kontynuować zgadywanie liczb powinniśmy nacisnąć klawisz t (tak), a w wypadku jeżeli chcemy zakończyć zabawę powinniśmy nacisnąć klawisz n (nie). Odczytywane litery z klawiatury będą przypisywane do zmiennej kontynuacja.

kontynuacja=”t”

While (kontynuacja=”t”)

gra()

TextWindow.WriteLine(„grasz jeszcze raz naciśnij t (tak) / n (nie)”)

kontynuacja =textwindow.Read()

EndWhile

TextWindow.WriteLine(„Zapraszamy ponownie do zabawy”)

Ostatecznie nasz program będzie wyglądał następująco:

kontynuacja=”t”

While (kontynuacja=”t”)

gra()

TextWindow.WriteLine(„grasz jeszcze raz naciśnij t (tak) / n (nie)”)

kontynuacja = textwindow.Read()

EndWhile

TextWindow.WriteLine(„Zapraszamy ponownie do zabawy”)

Sub gra

LiczbaLosowa=Math.GetRandomNumber(100)

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba = textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

EndSub

Kod pod jakim możemy pobrać program to: SHV462



Microsoft Small Basic v0.3
Luty 23, 2009, 1:56 pm
Filed under: SmallBasic

Pod koniec stycznia ukazała się nowa wersja Small Basica oznaczona numerem 0.3. Co w niej nowego? Pierwsza nowość to Publish and Import. Czyli możliwość łatwego umieszcanai naszych programów w sieci. Dodano także ekranik startowy, a także przyspieszono start Small Basica. Również jak to bywa przy nowej wersji poprawiono także część błędów obecnych w środowisku.



Small Basic – FAQ (tłumaczenie)
Luty 23, 2009, 1:39 pm
Filed under: SmallBasic

Czym jest Small Basic, dla kogo jest Small Basic i jaka będzie jego przyszłość. Na te i inne pytania odpowiedzi można znaleźć w FAQ przygotowanym przez autorów. Ja poniżej przedstawiam jego (amatorskie) tłumaczenie:

Small Basic FAQ

Czym jest Small Basic?

Small Basic jest projektem, który ma na celu uczynienie programowania łatwo przyswajalnym dla początkujących. Składa się z trzech odrębnych części:

* język programowania
* środowisko programistyczne
* biblioteki

Język czerpie inspirację z wczesnych wersji BASICa, ale opiera się na nowoczesnej platformie .Net Framework

Środowisko programistyczne jest proste, ale jednocześnie bogate w możliwości, oferując początkującym użytkownikom szereg udogodnień znanych z profesjonalnych programów.

Bogaty zestaw bibliotek pomoże początkującym uczyć się pisać interesujące programy.

Dla kogo jest Small Basic?

Small Basic jest przeznaczony dla wszystkich tych którzy chcą nauczyć się programowania. W naszych wewnętrznych badaniach odnieśliśmy sukces ucząc Small Basica dzieci w wieku od 10 do 16 lat.

Jednak nie ma ograniczenia wieku, lub wymogu bycia dzieckiem. Small Basic może być pomocny nawet dorosłym chcącym nauczyć się programować w wykonaniu pierwszego kroku.

Jak mam się uczyć Small Basic?

Pobierz i zainstaluj Small Basic. Możesz wykorzystać „Introducing Small Basic” – nasz podręcznik umożliwiający zapoznanie się z możliwościami Samll Basica.

Dlaczego jeszcze jedna odmiana Basica?

Dlaczego nie? Według Wikipedii istnieje ponad 230 różnych udokumentowanych dialektów Basica.

Poważnie, napisaliśmy kompilator od podstaw i postanowiliśmy naprawić niektóre z jego niezręczności.

Co z inną wersją “Small Basica”?

Zauważyliśmy inną wersję “Small Basica”. Poza zbieżną nazwą nasza wersja Small Basica nie ma nic wspólnego z tą drugą wersją.

Jak bardzo Small Basic jest różny od QBASIC?

* W odróżnieniu od QBASIC, Small Basic jest oparty na technologii .Net.

* Obsługuje odrębne operacje, właściwości i zdarzenia

* Nie posiada GOSUB 🙂

Jak bardzo Small Basic jest różny od VB.Net?

* Small Basic jest mały, dużo mniejszy niż Visual Basic i wspiera.

* Możesz napisać kompilator używając VB.Net

Jakie są unikalne właściwości Small Basica?

* Imperatyw

Tak jak we wczesnych wersjach BASICa, Small Basic zakłada imperatywny tryb programowania i nie naraża początkujących na zaprzątanie sobie głowy takimi pojęciami jak zakresy zmiennych, różnymi rodzajami obiektów itp.

* Rozmiar

Small Basic składa się z tylko 14 słów kluczowych

* Typy systemowe i przypisać je do zmiennych.

Właściwie ich nie ma. Możesz stworzyć ciąg znaków i stałą numeryczną i przypisać je do zmiennych. Operacje przeprowadzane na tych zmiennych będą interpretowane zgodnie z treścią.

* Zmienne

Wszystkie zmienne są globalne i zawsze zainicjowane. Mogą zostać one użyte przed przypisaniem..

* Zdarzenia

Możesz tworzyć podgrupy i przypisywać je do zdarzeń.

* Biblioteki

Biblioteki wprowadzają statyczne obiekty, właściwości, zdarzenia.

Nowe biblioteki mogą być tworzone przy użyciu innych języków .Net i dodać do Small Basica.

Co z Scratch, Alice?

Zarówno Scratch jak i Alice są wspaniałymi narzędziami, które pomagają początkującym poznać zasady programowania. Robią to poprzez umożliwienie pisania programów z minimalną ilością kodu. Small Basic ze swoją koncepcją stawia kodowanie na pierwszym miejscu.

Co z KPL (ang Kids Programming Language)?

KPL (znanym także jako Phrogram) jest wspaniałym pomysłem, skupiającym się  się na najmłodszych i dopiero poznających programowanie (zgodnie zresztą z nazwą – Kids Programming Language). W ciągu kilku ostatnich lat wizja rozwoju tego języka ewoluowała w kierunku bardziej zaawansowanych użytkowników. Celem Small Basic jest skupienie się tylko na początkujących programistach, ponieważ wychodzimy z założenia, że dla zaawansowanych programistów przeznaczone jest masa innych narzędzi.

Jakie ma ograniczenia Small Basic?

Naszym celem jest by Small Basic był mały i intuicyjny jak to tylko możliwe. Nie chcieliśmy by Small Basic stał się językiem do rozwiązywania każdego problemu. Przykład mimo, że teoretycznie jest możliwe napisanie kompilatora Small Basica wykorzystując Small Basic nie jest to jednak dobry pomysł.

Co z rozszerzalnością?

The Small Basic compiler and the environment allow 3rd party Small Basic libraries to be plugged in to extend the possibilites of what you can do from within Small Basic. We’ll post more on how to achieve this on the Small Basic Blog.

Jaka jest strategia ewolucji języka?

Jedną z priorytetowych założeń przy rozwoju języka jest skupienie się na początkującym programiście. To założenie jest niezwykle ważne dla nas i do tej pory opieraliśmy się pokusom dodawania nowych funkcji nie przewidzianych na początku.  Będziemy nadal wierni tej wizji.

Jaka jest przyszłość przed Small Basicem?

Przyszłość Small Basica zależy w dużej mierze od Ciebie. Jeśli nasz pomysł spotka się z akceptacją i dobrym przyjęciem, będziemy kontynuować jego rozwój i na pewno pojawią się kolejne jeszcze lepsze wersje naszego środowiska.