PROGRAM ALGO
Praca z programem ALGO Środowisko programistyczne algo jest bardzo przyjazne użytkownikowi, niewielka ilość opcji, przejrzyste menu pozwala na błyskawiczne zorientowanie się gdzie co jest. W programie można wyróżni 3 główne części składowe: - górny pasek menu i pasek narzędzi - lewe okno - edytor - prawe okno - podgląd działania programu
1. 3. - tworzenie nowego dokumentu - otworzenie wcześniej zapisanego dokumentu - zapisanie dokumentu 2. - wytnij zaznaczony fragment kodu - skopiuj zaznaczony fragment kodu - wklej zaznaczony fragment kodu - sprawdź i porządkuj kod (bardzo przydatna funkcja której możemy użyć aby zwiększyć czytelność wpisywanego kodu) - "Wykonaj" - tym przyciskiem możemy uruchomić stworzony program - "Krok po kroku" - funkcja ta umożliwia uruchomienie stworzonego wcześniej programu i wykonywanie go linia po linii tzn. każde naciśnięcie tej ikony spowoduje wykonanie 1 linii kodu. Szczególnie przydatne kiedy chcemy zobaczyć jak dokładnie działa nasz program - "Śledzenie" - funkcja bardzo podobna w swym działaniu do polecenia "Krok po kroku", więcej informacji na ten temat w pomocy programu. - "Wykonaj do kursora" - funkcja umożliwia wykonanie tylko części programu dokładnie do miejsca, w którym umieściliśmy kursor, dzięki temu możemy przetestować tylko fragment naszego kodu np. tylko wczytywanie danych z klawiatury - "Zatrzymaj" - podczas normalnej pracy programu ikonka ta jest nieaktywna (wyszarzała), uaktywnia się tylko jeśli uruchamiamy program, po uruchomieniu programu dzięki tej funkcji mamy możliwość przerwać działanie programu np. w momencie jeśli okaże się, że program ma błąd, który uniemożliwia jego normalne zakończenie
4. Cały ten pasek umożliwia przełączanie się między językami - angielskim i polskim, osobiście sugeruję pracę w języku angielski, a ewentualne przełączenie się na język polski tylko w wypadku jeśli czegoś nie rozumiemy 5. 6. Ikona uruchamiająca okno pomocy programu. Pomoc jest w miarę dobra można tam znaleźć informacje na temat działania samego programu ALGO lub na temat poszczególnych poleceń języka TURBO PASCAL. Ikonki umożliwiające określenie sposobu wyświetlania 2 głównych okien programu tego gdzie wpisujemy kod i tego, w którym widzimy rezultaty działania programu. Ustawienie domyślne to wyświetlenie tych okien obok siebie, dzięki tym ikonkom możemy wyświetlić poszczególne okna na całym ekranie lub powrócić do ustawień domyślnych
Struktura programu W przeciwieństwie od języka HTML gdzie dozwolona jest pewna dowolność w kolejności wpisywanych poleceń lub całkowitego ich opuszczenia, w języku Turbo Pascal musi być zachowana określona kolejność aby program chciał się uruchomić. Kod: PROGRAM nazwa_programu; VAR {deklaracje zmiennych} BEGIN {treść programu} END.
Taka jest przykładowa struktura programu. Teraz postaram się w miarę dokładnie opisać poszczególne części składowe. Kod: Program nazwa_programu; Każdy program rozpoczynamy od słowa kluczowego PROGRAM następnie w tej samej linijce wpisujemy nazwę programu. Nazwa może być dowolna ważne jest aby nie wstawiać spacji w nazwie jeśli chcemy użyć nazwy dwuczłonowej używamy znaku podkreślnika np. nazwa_programu. Pierwszą linijkę kończymy znakiem średnika. Kod: VAR a,b: INTEGER; wynik: REAL; zdanie: STRING;
Zaraz na początku programu umieszczamy sekcję deklaracji zmiennych tzn. wypisujemy nazwy wszystkich zmiennych jakich chcemy użyć w naszym programie. Jeśli w programie użyjemy zmiennej, której nie zadeklarowaliśmy otrzymamy komunikat błędu o treści: "Nieznany identyfikator 'nazwa zmiennej'" Możemy deklarować dowolną ilość zmiennych każdą zmienną oddzielamy znakiem przecinka. Ważną kwestią przy deklarowaniu zmiennych jest określenie typu tych zmiennych. Wyróżnia się kilka głównych typów zmiennych, w tym miejscu wymienię i krótko scharakteryzuję najczęściej używane. INTEGER - (liczby całkowite) ten typ deklarujemy jeśli mamy pewność że, pod zmienne które chcemy użyć będą podstawiane tylko liczby całkowite z przedziału od -2147483648 do 2147483647 czyli np. jeśli chcemy pod zmienną o nazwie a podstawić liczbę 10 to wszystko jest w porządku, ale jeśli wiemy, że np. zmienna wynik może przyjąć wartość ułamkową to nie możemy użyć już typu INTEGER. REAL - (liczby rzeczywiste) ten typ deklarujemy jeśli mamy pewność że, pod zmienne które chcemy użyć będą podstawiane liczby rzeczywiste z przedziału od 5.0e-324 do 1.7e308. Ten typ używamy najczęściej jeśli wiemy, że wynikiem naszych działań będą bardzo duże liczby nie mieszczące się w przedziale typu INTEGER lub jeśli wynikiem jest ułamek. STRING -(typ łańcuchowy) ten typ używamy jeśli chcemy pracować z dowolnymi znakami wprowadzanymi z klawiatury więc również z literami.
Program 1 - Witaj świecie!!! Zwykle osoby uczące się programować zaczynają od programu który potrafi wyświetlić na ekranie określony napis w większości poradników i książek jest to wyrażenie "Witaj świecie!!!" lub "Hello world!!!" będę więc kultywował tradycję i też od tego zacznę. UWAGA W treści programów poniżej na początku każdej linii będę pisał numer linii po to aby łatwiej mi było odwoływać się do konkretnych fragmentów kodu. Jeśli będziecie kopiowali ten kod do programu algo proszę pamiętać aby skasować te liczby (nie przepisywać). Kod: 1 PROGRAM pierwszy; 2 3 BEGIN 4 WRITE('Witaj świecie'); 5 END.
Program 2 - dodawanie liczb Kolejnym programem który stworzyliśmy na lekcji był program dodający do siebie 2 liczby zadeklarowane w samym kodzie programu. Kod: 1 PROGRAM dodawanie; 2 3 VAR 4 a,b,wynik: INTEGER; 5 6 BEGIN 7 a:=4; 8 b:=6; 9 wynik:=a+b; 10 WRITE(wynik); 11 END. Program ten jest bardzo prymitywny ponieważ bez względu na to ile razy go uruchomimy zawsze wyświetli ten sam wynik. Z rzeczy istotnych w liniach od 7 do 9 użyłem konstrukcji podstawienia, tzn. np. w 7 linii pod zmienną o nazwie a podstawiłem wartość 4. Podstawienie wykonujemy pisząc znak dwukropka i znak równości.
Program 3 - dodawanie 2 liczb wpisywanych przez użytkownika z klawiatury Ten program jest modyfikacją programu 2 różnica polega na tym, że liczby nie są na sztywno wpisane w kodzie programu, ale program sam pyta użytkownika o podanie liczb i wykonuje stosowne obliczenia na tych liczbach. Kod: 1 PROGRAM dodawanie; 2 3 VAR 4 a,b,wynik: INTEGER; 5 6 BEGIN 7 WRITE('Podaj pierwszą liczbę: '); 8 READLN(a); 9 WRITE('Podaj drugą liczbę: '); 10 READLN(b); 11 12 wynik:=a+b; 13 WRITE(wynik); 14 END.
Program 4 -Instrukcja warunkowa IF Wstęp Bardzo często w programach komputerowych trzeba aby na podstawie określonych warunków komputer podjął decyzję, np. czy wykonać dodawanie czy odejmowanie, czy zakończyć działanie czy wykonać ponownie daną operację. Decyzje takie można podejmować na kilka różnych sposobów, o których będziemy się uczyli na kolejnych zajęciach. Zaczniemy sobie od instrukcji warunkowej IF. składnia Rozpoczynamy od słowa kluczowego IF następnie należy wstawić warunek następnie słowo kluczowe THEN dalej wpisuje się instrukcje jakie mają zostać wykonane jeśli warunek zostanie spełniony. Jeśli naszych instrukcji jest więcej niż 1 linia należy je wszystkie umieścić pomiędzy słowami BEGIN...END, ostatnia część instrukcji warunkowej polega na określeniu co program ma zrobić jeśli warunek nie jest spełniony, poprzedzony jest poleceniem ELSE. Przykład:
Kod: IF a>b THEN WRITE('Liczba a jest większa'); ELSE WRITE('Liczba b jest większa'); Odczytujemy to jako: jeśli zmienna a jest większa od b wtedy wyświetl tekst "Liczba a jest większa". W przeciwnym wypadku wyświetl "Liczba a jest większa". Program który dodaje lub odejmuje liczby
Kod: Program obliczanie; VAR a,b,wynik,decyzja: INTEGER; BEGIN WRITELN('Program dodający lub odejmujący liczby'); WRITELN('Naciśnij 1 aby dodawać, naciśnij 2 aby odejmować'); READLN(decyzja); WRITE('Podaj pierwszą liczbę: '); READLN(a); WRITE('Podaj drugą liczbę: '); READLN(b); IF decyzja=1 THEN BEGIN wynik:=a+b; WRITELN(wynik); END ELSE BEGIN wynik:=a-b; WRITELN(wynik); END; END.
Program 5 -Pętla WHILE DO Wstęp Do tej pory wszystkie programy, które były tworzone na lekcji działały w sposób "liniowy" czyli wykonywały się linia po linii. Nie było możliwości powrotu do raz wykonanej linii, nie było też możliwości powtórzenia określonej części kodu. Można było oczywiście napisać to jeszcze raz niemniej jest to czaso- i pracochłonne. Z pomocą mogą przyjść specjalne struktury programistyczne nazywane pętlami. Na naszych lekcjach zapoznamy się z 3 różnymi pętlami. Zaczniemy od pętli WHILE. składnia Rozpoczynamy od słowa kluczowego WHILE następnie należy wstawić warunek, następnie słowo kluczowe DO dalej wpisuje się instrukcje jakie mają zostać wykonane jeśli warunek zostanie spełniony. Jeśli naszych instrukcji jest więcej niż 1 linia należy je wszystkie umieścić pomiędzy słowami BEGIN...END.
Kod: WHILE warunek (jest prawdziwy) DO BEGIN instrukcje; instrukcje; END; Wszystko co znajduje się pomiędzy BEGIN a END w powyższym przykładzie będzie wykonywało się tak długo jak długo warunek jest prawdziwy. Jeśli warunek nie jest prawdziwy część między BEGIN a END nie wykona się. Przykład Program poniżej nie jest napisany do końca prawidłowo. Będzie wykonywał się w nieskończoność. Ponieważ wewnątrz pętli WHILE nie robimy nic aby warunek z prawdziwego zmienił się w nieprawdziwy. Rezultatem działania tego programu będzie nieustanne wypisywanie wartości zmiennej a, w związku z tym, że w linii 6 nadajemy zmiennej a wartość 0 na ekranie będziemy widzieli ciągłe wypisywanie "0".
Kod: 1 PROGRAM petla; 2 VAR 3 a: INTEGER; 4 5 BEGIN 6 a:=0; 7 8 WHILE a<10 DO 9 BEGIN 10 WRITELN(a); 11 END; 12 13 END. Co zrobić aby program działał prawidłowo? Aby program działał prawidłowo, czyli żeby mógł się zakończyć musimy spowodować aby warunek a<10 przestał być prawdziwy. Czyli musimy wewnątrz pętli WHILE zwiększyć zmienną a. Możliwe są różne rozwiązania, poniżej przedstawię 2.
Program 6 -Dzielenie Program dzielący dwie liczby wpisane z klawiatury Najprostszy program pozwalający na podzielenie dwóch liczb przez siebie. Kod: 1 PROGRAM dzieleniel; 2 3 VAR 4 a,b,wynik: REAL; 5 6 BEGIN 7 WRITE('Podaj liczbę a: '); 8 READLN(a); 9 WRITE('Podaj liczbę b: '); 10 READLN(b); 11 wynik:=a/b; 12 WRITE(wynik:0:2); 13 END.
Algo jest środowiskiem do nauki podstaw programowania w języku Pascal. Program Algo to środowisko z graficznym interfejsem programowania. Algo nie wymaga żadnej instalacji i mieści się na jednej dyskietce. Minimalne wymagania sprzętowe: procesor od 486 Mhz, pamięć RAM od 16 MB, wolne miejsce na dysku: od 500 kb do 1,1 MB, system operacyjny: od Windows 95, mysz, standardowa biblioteka Windows.
Algo jest wspaniałym środowiskiem do nauki podstaw programowania w języku Pascal, wzbogaconym o procedury graficzne, grafikę żółwia oraz robota. Jest przydatne dla tych wszystkich, którzy pragną nauczyć się pisać proste i bardziej złożone programy. Nie wymaga od użytkownika znajomości języka angielskiego, ponieważ zarówno środowisko, jak i treść programu możemy wyświetlić w języku polskim. Słowa kluczowe, komentarze oraz wszystkie inne słowa rozpoznawane przez Algo są wyróżnione za pomocą innego koloru. W Algo istnieje możliwość zapisania treści programu w formacie HTML, przy czym zachowany zostaje jego wygląd. Można teraz wyświetlić go na ekranie, lub skopiować jako fragment własnej strony. Algo podobnie jak Eli umożliwia wykonywanie obliczeń i tworzenie prostych programów. Oba programy posiadają opcję żółwia i wpisywanie komend przy pomocy języka Pascala.
1. Płot - rekurencja: Program Płot; {----------------------------------------------------------} Zmienna a,n : Rzeczywiste; {----------------------------------------------------------} Procedura Deska(a: Rzeczywiste); Początek Naprzód(a); Prawo(90); Naprzód(a/5); Prawo(90); Naprzód(a); Prawo(90); Naprzód(a/5); Prawo(90); Koniec; {Deska} {----------------------------------------------------------}
Procedura Przesunięcie(a: Rzeczywiste); Początek Podnieś; Prawo(90); Naprzód(a/2.5); Lewo(90); Opuść; Koniec; {Przesunięcie} {----------------------------------------------------------} Procedura Płotr(a,n: Rzeczywiste); Początek Jeśli n=1 to Deska (a) wpp Początek Deska(a); Przesunięcie(a); Płotr(a,n-1) Koniec; Koniec; {Płotr} {----------------------------------------------------------} Początek Pisz('długość deski:'); Czytaj(a); Pisz('liczba desek:'); Czytaj(n); Płotr (a,n); Koniec.
2. Płot - powtórzenia: Program Płot; {----------------------------------------------------------} Zmienna a,b : Całkowite; {----------------------------------------------------------} Procedura Deska; Początek Naprzód(a); Prawo(90); Naprzód (a/5); Prawo (90); Naprzód(a); Prawo(90); Naprzód (a/5); Prawo (90); Koniec; {----------------------------------------------------------}
Procedura Przesunięcie; Początek Podnieś; Prawo (90); Naprzód (a/2.5); Lewo (90); Opuść; Koniec; {----------------------------------------------------------} Początek Pisz( 'długość deski:' ); Czytaj( a ); Pisz( 'liczba desek:' ); Czytaj( b ); Powtarzaj Deska; Przesunięcie; b:=b-1; aż b=0; Koniec.
Przykładowe zadanie : Napisz program wczytujący napis (zakładamy, że występują tylko litery i spacje) i wypisujący słowa, które mają więcej samogłosek niż spółgłosek. Np. po wczytaniu napisu "Ala ma kota a Ola psa" program powinien wypisać słowa
Kod: 1. const 2. samogloski: string = 'aeiouyaeiouy'; 3. spolgloski: string = 'bcdfghjklmnpqrstvwxzbcdfghjklmnpqrstvwxz'; 4. 5. FUNCTION IleLiter(var slowo: string; var litery: string): integer; 6. var 7. i: integer; 8. licznik: integer; 9. begin 10. licznik := 0; 11. for i := 1 to Length(slowo) do 12. if Pos(slowo[i ], litery) > 0 then Inc(licznik); 13. IleLiter := licznik; 14. end; 15. 16. var 17. napis: string; 18. begin 19. ReadLn(napis); 20. WriteLn('Liczba samoglosek: ', IleLiter(napis, samogloski)); 21. WriteLn('Liczba spolglosek: ', IleLiter(napis, spolgloski)); 22. 23. end.
KONIEC