Algorytmy z przykładami w Turbo Pascal 7.0 Sadowy Krystian IV WT
Zagadnienia Co to jest algorytm ? Etapy rozwiązywania problemów. Zapis algorytmu w postaci graficznej – schematy blokowe. Sytuacje warunkowe. Iteracja, czyli działanie w pętli. Przykład schematu blokowego. Wstęp do programowania. Prezentacja algorytmu w języku programowania. Zakończenie.
Co to jest algorytm ? Na lekcjach matematyki czy fizyki większość zadań rozwiązujemy według pewnych schematów ( wypisanie danych, sprecyzowanie, które wartości trzeba wyliczyć, czyli określenie „szukanych” ).Wypisujemy wzory łączące dane z szukanymi lub szukamy twierdzenia , które można by zastosować. Rozwiązanie staramy się opisać w możliwie jasny sposób. Na lekcjach z informatyki również określaliśmy w zadaniach dane i warunki, które muszą one spełniać, np. czy ma to być tekst, liczba ( jej format ), data …
Co to jest algorytm ? Określaliśmy też wyniki, które chcemy otrzymać, a także warunki, jakie powinny one spełniać. Rozpoczynaliśmy jednak od sformułowania zadania. Opisanie zadania, czyli szukanie związku, jaki zachodzi między danymi a wynikami, nazywamy specyfikacją zadania. Przedstawienie rozwiązania zadania w sposób uporządkowany (tj. wyszczególnienie kolejnych czynności) nazywamy algorytmem.
Etapy rozwiązywania problemów Sformułowanie zadania. Określenie danych wejściowych. Określenie celu, czyli wyniku. Poszukiwanie metody rozwiązania, czyli algorytmu. Przedstawienie algorytmu w postaci: - opisu słownego - listy kroków - schematu blokowego - jednego z języków programowania Analiza poprawności rozwiązania. Testowanie rozwiązania dla różnych danych.
Zapis algorytmu w postaci graficznej – schematy blokowe Sposoby rozwiązania zadań, czyli algorytmy, można prezentować w postaci graficznej jako schematy blokowe. W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (klocków, bloków). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm. Schemat blokowy jest więc niczym innym , jak graficznym przedstawieniem ciągu kroków algorytmu. W literaturze informatycznej przyjęto pewne standardowe oznaczenia poszczególnych działań (są to figury geometryczne).
Zapis algorytmu w postaci graficznej – schematy blokowe Oznaczenie miejsca rozpoczęcia (begin);, zakończenia (end) lub przerwania działania programu. Wykonywanie róznych działań, np. sumowania. Operacje wprowadzania (read), wyprowadzania (write) danych do, z pamięci operacyjnej komputera. Start Z := A + B Wprowadź Z
Zapis algorytmu w postaci graficznej – schematy blokowe Operacja warunkowa (if), określająca wybór jednej z dwóch możliwych dróg działania. Proces określony poza programem i z tego powodu nie wymagający zdefiniowania w rozpatrywanym programie (podprogram). Określa kierunek przepływu danych lub kolejności wykonywania zadań. f1
Sytuacje warunkowe Tak Z sytuacjami warunkowymi stykamy się w każdej dziedzinie wiedzy i życia codziennego. Na pytanie: „Czy pada deszcz ?” odpowiedź może brzmieć „tak” lub „nie”. W zależności od tego czy warunek jest spełniony czy nie , wybieramy inne rozwiązanie. Z sytuacją warunkową mamy więc do czynienia wówczas, gdy wynik lub dalsze działanie zależy od spełnienia warunku. Tak Czy pada deszcz ? Zostaję w domu. Tak Nie Idę na spacer.
Iteracja, czyli działanie w pętli Start Czasem trzeba wykonać te same operacje na wielu liczbach. W takich przypadkach nie jest konieczne wielokrotne opisywanie takich samych działań. Stosujemy wówczas iterację. Działania te wykonywane są w pętli. Liczba powtórzeń tych samych działań może być z góry określona lub zależeć od spełnienia warunku. Czytaj N (2) S := 0 L := N (2) Czy L > 0 ? Nie Pisz S Tak S := S + L (3) L := L – 1 (0) S := S + L (2) L := L - 1 (1) Koniec
Przykład schematu blokowego Start Czytaj x Czy x >= 0 ? Tak Nie Pisz x Pisz -x Koniec Koniec
Wstęp do programowania Do tej pory tworzyliśmy własne dokumenty – rysunki, teksty, tabele arkusza kalkulacyjnego, proste bazy danych – korzystając z gotowych programów komputerowych. Własne programy piszemy posługując się językami programowania, takimi jak Pascal, język C, Basic. Do programowania służą programy – specjalne edytory wchodzące w skład środowiska programowania, zawierające zwykle oprócz edytora kompilator i inne narzędzia wspomagające programowanie, np.: Turbo Pascal, C++, Visual Basic, Delphi. Program jest to ciąg instrukcji wykonujący określony algorytm. Aby zatem napisać własny program, musimy poznać nie tylko instrukcje danego języka programowania, ale przede wszystkim metody programowania.
Prezentacja algorytmu w języku programowania Aby przedstawić algorytm w postaci programu, trzeba go napisać jako ciąg instrukcji języka programowania. Każda instrukcja podobnie jak skrzynka w schemacie blokowym odpowiada określonej operacji, dlatego też kolejność występowania instrukcji w programie określa kolejność wykonywania operacji. Nauka programowania nie polega jednak na nauczeniu się na pamięć instrukcji danego języka, ale na zrozumieniu zasad ich działania oraz na umiejętnym ich zastosowaniu.
Prezentacja algorytmu w języku programowania Struktura programu. Instrukcje wyjścia (write i writeln). Instrukcje wejścia (read i readln). Zmienne i najczęściej stosowane typy. Warunkowa instrukcja If. Pętla For.
Struktura programu Poprawny program w Turbo Pascalu ma określoną strukturę. Wygląda ona następująco: Program nazwa_programu; { blok deklaracji } Begin { blok instrukcji } End. W bloku deklaracji znajdują się deklaracje zmiennych. Blok instrukcji zawiera ciąg instrukcji przeznaczonych do wykonania przez program, oddzielonych od siebie średnikami. Komentarze zaznaczamy nawiasami klamrowymi {…..}.
Instrukcje wyjścia (write i writeln) Write() - powoduje wypisanie wartości wyrażenia zawartego w nawiasie. Writeln() - powoduje wypisanie wartości wyrażenia zawartego w nawiasie i przejście do nowego wiersza.
Instrukcje wyjścia (write i writeln) Program wypisuje imię i nazwisko w pierwszym wierszu a w drugim adres osoby. Algorytm Kod źródłowy Uruchomienie programu
Program obrazujący instrukcje wyjścia Start Pisz imię i nazwisko Przejście do nowego wiersza Pisz adres Koniec
Program obrazujący instrukcje wyjścia Program Dane; { Program wypisuje imię i nazwisko w pierwszym wierszu } { a w drugim adres osoby. } Begin Writeln (‘Krystian Sadowy’); Writeln (‘ul. Klonowa 35/3, 68-100 Żagań’); End.
Instrukcje wejścia (read i readln) Bardzo często zdarza się taka sytuacja, że chcielibyśmy, aby użytkownik podał dane, które następnie będą przez program przetwarzane. Służą do tego instrukcje read i readln. Read - powoduje odczytanie danych z klawiatury w takiej liczbie, ile miała argumentów i takich typów, jakie dla nich zadeklarowano. Wpisywanie danych musi zostać zakończone wciśnięciem klawisza Enter. Readln – jak powyżej tylko po wykonaniu instrukcji powoduje przejście do nowego wiersza.
Instrukcje wejścia (read i readln) Program wczytuje dwie liczby i wypisuje ich sumę. Algorytm Kod źródłowy Uruchomienie programu
Program obrazujący instrukcje wejścia Start Czytaj 1 liczbę Czytaj 2 liczbę Suma := 1 liczba + 2 liczba Wypisz Suma Koniec
Program obrazujący instrukcje wejścia Program Sumowanie; { Program wczytuje dwie liczby i wypisuje ich sumę. } Var Liczba1, Liczba2, Suma : Integer; Begin Write (‘Podaj pierwsza liczbe: ‘); Readln (Liczba1); Write (‘Podaj drugą liczbe: ‘); Readln (Liczba2); Suma := Liczba1 + Liczba2; Writeln (‘Podales ‘,Liczba1, ‘ i ‘,Liczba2,’. Ich suma to: ‘,Suma); End.
Zmienne i najczęściej stosowane typy Zmienne można sobie wyobrazić jako pojemniki, przechowujące dane w trakcie wykonania programu. Zmienne posiadają swoje nazwy, poprzez które można odwoływać się do ich zawartości. Muszą zostać zadeklarowane w bloku deklaracji w sekcji Var. Po tym słowie kluczowym można je definiować, posługując się postacią nazwa : typ. Kolejne deklaracje należy oddzielać średnikami. Przykład: Program Przykład; Var A : Integer; B : String; …
Typy zmiennych Cechą nieodłącznie związaną z każdą zmienną jest jej typ, czyli rodzaj danych, które może pamiętać. Typ zmiennej należy określić już przy jej deklaracji i nie można go zmieniać. Najczęściej stosowane typy to: Byte - Liczba stałoprzecinkowa z zakresu 0.255. Integer - Liczba stałoprzecinkowa z zakresu -32768…32767. Char - Pojedynczy znak ASCII. String – Łańcuch znaków (czyli tekst), nie dłuższy niż 255 znaków. Real – Liczba zmiennoprzecinkowa. Boolean – Wartość logiczna.
Warunkowa instrukcja IF Działa w ten sposób, że sprawdzana jest wartość warunku. Jeżeli jest on prawdziwy wykonywany jest blok instrukcji 1, a jeżeli nie – blok instrukcji 2. Przykład: If Warunek Then { blok instrukcji 1 } Else { blok instrukcji 2 }
Warunkowa instrukcja If Program wczytuje dwie liczby i wypisuje największą z nich. Algorytm Kod źródłowy Uruchomienie programu
Program obrazujący instrukcję If Program Warunek; { Program wczytuje dwie liczby i wypisuje największą z nich. } Var Liczba1, Liczba2 : Integer; Begin Write (‘Podaj pierwsza liczbę: ‘); Readln (Liczba1); Write (‘Podaj drugą liczbę: ‘); Readln (Liczba2); If (Liczba1>Liczba2) Then Writeln (‘Największa z liczb to: ‘,Liczba1); Else Writeln (‘Największa z liczb to: ‘,Liczba2); Readln; End.
Program obrazujący instrukcję If Start Czytaj 1 liczbę Czytaj 2 liczbę If 1 liczba > 2 liczba Tak Nie Wypisz 1 liczba Wypisz 2 liczba Koniec Koniec
Pętla For Często zdarza się w programie, że jakąś czynność chcemy wykonać wiele razy. Pascal oferuje nam kilka możliwości „zapętlenia”, czyli wielokrotnego wykonywania bloku instrukcji. Najprostszą jest pętla for. Ma ona postać: For zmienna := początek To koniec Do { blok instrukcji } Cóż oznacza taki zapis ? Otóż blok instrukcji będzie wykonywany wielokrotnie, dla zmiennej przyjmującej kolejno każdą wartość od początek do koniec. Zmienna, której wartość jest sprawdzana w pętli, nosi nazwę zmiennej sterującej.
Pętla For Program wypisuje na ekranie liczby od 1 do 10. Algorytm Kod źródłowy Uruchomienie programu
Program obrazujący instrukcję For Program Petla; { Program wypisuje liczby od 1 do 10. } Var i : Byte; Begin For i := 1 To 10 Do write (i, ‘ ‘); Writeln; Readln; End.
Program obrazujący instrukcję For Start i = 10 Nie Tak i=i+1 Koniec Wypisz wartość liczby i
Zakończenie Obecnie istnieje mnóstwo innych języków programowania - w tej chwili bardzo popularnych, o których dużo się pisze, i w których dużo się pisze. Kto dzisiaj pisze prawdziwe programy w Turbo Pascalu ? Odpowiedź brzmi – nikt. Pascal jest jednak najlepszym sposobem opisu rozwiązywania problemów informatycznych ( czyli prezentacji algorytmów ). Jego trzon powstał właśnie w tym celu i ciągle do nauki podstaw programowania jest niezastąpiony. Naukę tego języka programowania należy traktować jedynie jako środek do nauki myślenia programistycznego, a nie jako cel sam w sobie. Znając ten język, nauka innych nie będzie dla Ciebie dużym problemem, a metody rozwiązywania postawionych zadań będą podobne.