background image

Algorytmy z przykładami

w Turbo Pascal 7.0

background image

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.

background image

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 …

background image

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.

background image

Etapy rozwiązywania problemów

1.

Sformułowanie zadania.

2.

Określenie danych wejściowych.

3.

Określenie celu, czyli wyniku.

4.

Poszukiwanie metody rozwiązania, czyli algorytmu.

5.

Przedstawienie algorytmu w postaci:
- opisu słownego
- listy kroków
- schematu blokowego
- jednego z języków programowania

6.

Analiza poprawności rozwiązania.

7.

Testowanie rozwiązania dla różnych danych.

background image

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

 

background image

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

background image

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

Z > 0

f1

background image

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.

Czy

 pada 

    deszcz ?

Tak

Tak

Nie

Zostaję w domu

.

Idę na spacer.

background image

Iteracja, czyli działanie w pętli

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.

Start

Czytaj N (2)

S := 0

 L := N (2)

Czy

L > 0

?

          S := S + L (2) 

       L := L - 1 (1)

Tak

       S := S + L (3)

       L := L – 1 (0)

Nie

Pisz S

Koniec

background image

Przykład schematu blokowego

Start

Czytaj x

Czy

x >= 0

?

Nie

Pisz -x

Koniec

Pisz x

Koniec

Tak

background image

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.

background image

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.

background image

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.

background image

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 {…..}.

background image

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.

background image

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

background image

Program obrazujący instrukcje 

wyjścia

Start

Pisz imię 

i nazwisko

Przejście do

      nowego wiersza

Pisz adres

Koniec

background image

Program obrazujący instrukcje 

wyjścia

Program Dane;
{ Program wypisuje imię i nazwisko w pierwszym wierszu }
{ a w drugim adres osoby.

 }

Begin

Writeln (‘Marek Pawlak’);
Writeln (‘ul. Ptasia 7, 68-300 Lubsko’);

End.

background image

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

background image

Instrukcje wejścia (read i 

readln)

Program wczytuje dwie liczby i wypisuje ich sumę.

Algorytm

Kod źródłowy

Uruchomienie programu

background image

Program obrazujący instrukcje 

wejścia

Start

Czytaj 1 liczbę

Czytaj 2 liczbę

Suma := 1 liczba + 2 liczba

Wypisz Suma

Koniec

background image

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.

background image

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;
   …

background image

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.

background image

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 }

background image

Warunkowa instrukcja If

Program wczytuje dwie liczby i wypisuje największą z nich.

Algorytm

Kod źródłowy

Uruchomienie programu

background image

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.

background image

Program obrazujący instrukcję If

Start

Czytaj 1 liczbę

Czytaj 2 liczbę

Wypisz 2 liczba

Koniec

If  1 liczba > 2 

liczba

Nie

Tak

Wypisz 1 liczba

Koniec

background image

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. 

background image

Pętla For

Program wypisuje na ekranie liczby od 1 do 10.

Algorytm

Kod źródłowy

Uruchomienie programu

background image

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.

background image

Program obrazujący instrukcję For

Start

Koniec

i = 10

Nie

Wypisz wartość 

liczby i

i=i+1

Tak

background image

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.


Document Outline