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.

Download Report

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

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
1.
2.
3.
4.
5.
6.
7.
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
Start
Z := A + B
Wprowadź Z
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.
Zapis algorytmu w postaci graficznej
– schematy blokowe
Z>0
f1
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ń.
Sytuacje warunkowe
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 ?
Nie
Idę na spacer.
Tak
Zostaję w domu.
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
Czytaj
N (2)
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.
S := 0
L := N (2)
Czy
L>0
?
Nie
Tak
Pisz S
SS:=
:=SS++LL(3)
(2)
LL :=
:= LL –- 11 (1)
(0)
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
Nie
Tak
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.