51
Programowanie w języku Pascal Dr inż. Grażyna KRUPIŃSKA [email protected] D-10 pokój 227

Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Programowanie w języku Pascal

Dr inż. Grażyna KRUPIŃSKA

[email protected] pokój 227

Page 2: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmy

• Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-Chorezmi(z Chorezmu), który ok. 820 roku n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą "pisemną".

2011-10-22 Programowanie w języku Pascal 2

Page 3: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmy

• Algorytmem nazywamy skończony ciąg instrukcji prowadzących do rozwiązania danego problemu lub zadania. Jest to przepis postępowania prowadzący do osiągnięcia jakiegoś celu.

• Implementacja to zapis algorytmu w języku programowania.

2011-10-22 Programowanie w języku Pascal 3

Page 4: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmy

• Rozwiązując jakikolwiek problem (zadanie) stosujemy zazwyczaj określoną metodę (przepis), która ma pozwolić na uzyskanie wyniku (rozwiązania). Warunkiem przystąpienia do rozwiązywania jakiegokolwiek problemu jest posiadanie niezbędnych wiadomości i doświadczenia

2011-10-22 Programowanie w języku Pascal 4

Page 5: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmy

• Algorytmika - podstawowy dział informatyki poświęcony poszukiwaniom, konstruowaniu i badaniom algorytmów, zwłaszcza w kontekście ich przydatności do rozwiązywania problemów za pomocą komputerów.

• Program komputerowy - to logicznie uporządkowany ciąg instrukcji języka programowania realizujący algorytm.

2011-10-22 Programowanie w języku Pascal 5

Page 6: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmizacja zadania

• Sformułowanie zadania• Określenie danych wejściowych• Określenie celu, czyli oczekiwanego wyniku• Poszukanie metody rozwiązania, czyli algorytmu• Przedstawienie algorytmu w postaci

– opisu słownego– listy kroków– schematu blokowego– języka programowania

• Analiza poprawności rozwiązania• Testowanie rozwiązania dla różnych danych –

ocena efektywności przyjętej metody

2011-10-22 Programowanie w języku Pascal 6

Page 7: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Cechy algorytmu

• Skończoność (realizowany ciąg operacji powinien mieć swój koniec).

• Określoność (zarówno operacje, jak i porządek ich wykonywania powinny być ściśle określone, nie zostawiając miejsca na dowolną interpretację użytkownika).

• Ogólność (algorytm nie ogranicza się do jednego, pojedynczego, szczegółowego przypadku, ale odnosi się do pewnej klasy zadań).

• Efektywność (algorytm powinien prowadzi do rozwiązania możliwie najprostszą drogą).

2011-10-22 Programowanie w języku Pascal 7

Page 8: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Algorytmy

• Przykład:Uporządkuj rosnąco (A-Z) zbiór nazwisk i imion uczniów klasy drugiej.

• Dane: nieuporządkowany zbiór nazwisk i imion uczniów klasy

• Wynik: uporządkowany alfabetycznie zbiór nazwiski imion uczniów klasy

2011-10-22 Programowanie w języku Pascal 8

Page 9: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Sposoby przedstawiania algorytmów

2011-10-22 Programowanie w języku Pascal 9

Opis słowny Lista kroków

Zapis z wykorzystaniem

jednego z języków programowania

Schemat blokowy

Page 10: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Opis słowny algorytmu

• Algorytm w postaci listy kroków– 1. Podejdź do telefonu

– 2. Podnieś słuchawkę

– 3. Sprawdź, czy jest sygnał...

– 4. ...

• Jest to początek algorytmu wykonania telefonu podany w postaci listy kroków

• Pamiętaj by w jednym punkcie (kroku) opisać t y l k o j e d n ą o p e r a c j ę

2011-10-22 Programowanie w języku Pascal 10

Page 11: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

• Algorytm w postaci schematu blokowego jest graficzną reprezentacją słownego zapisu algorytmu

2011-10-22 Programowanie w języku Pascal 11

Page 12: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

2011-10-22 Programowanie w języku Pascal 12

Skrzynki graniczne

START i STOP

mają kształt owalu -wskazują początek

i koniec wykonywania schematu blokowego.

START

STOP

Page 13: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

2011-10-22 Programowanie w języku Pascal 13

Skrzynka operacyjna

(instrukcji) ma kształt

prostokąta, w którym umieszcza się

instrukcje.

S a + b

Page 14: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

2011-10-22 Programowanie w języku Pascal 14

Skrzynka warunku

jest rombem, w którym umieszcza się warunek decydujący o dalszej

kolejności wykonywania operacji.

Ze skrzynki wychodzą dwa połączenia: jedno oznaczone

„Tak”, drugie oznaczone „Nie”.

S > 10 Tak

Nie

Page 15: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

2011-10-22 Programowanie w języku Pascal 15

Skrzynki wejścia/wyjścia

Jest równoległobokiem,w którym umieszcza się

dane lub wyniki.

Wprowadź

Wyprowadź

Page 16: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

• Obliczanie sumy dwóch liczb

2011-10-22 Programowanie w języku Pascal 16

Podaj (b)

S=: a + b

Piszsumę

STOP

START

Podaj (a)

Page 17: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

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.

2011-10-22 Programowanie w języku Pascal 17

Start

Czytaj N

S := 0 L := N

CzyL > 0 ?

Tak

S := S + L (2)L := L – 1 (1)

Nie

Pisz S

Koniec

S := S + L (3)L := L – 1 (0)

Page 18: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

• Obliczanie największego wspólnego podzielnika dwóch liczb – algorytm Euklidesa

1. Dane są dwie niezerowe liczby naturalne a i b.

2. Dopóki liczby nie są równe powtarzaj krok 3, w przeciwnym razie przejdź do kroku 4.

3. Od większej liczby odejmij mniejszą i tę większą zastąp otrzymaną różnicą.

4. Wyprowadź wynik: NWD (największy wspólny dzielnik) jest równy pierwszej liczbie.

2011-10-22 Programowanie w języku Pascal 18

Page 19: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Schemat blokowy

2011-10-22 Programowanie w języku Pascal 19

Page 20: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku 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.

2011-10-22 Programowanie w języku Pascal 20

Page 21: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Programowanie

• algorytm rozwiązuje problem

• program realizuje algorytm

• komputer wykonuje program

2011-10-22 Programowanie w języku Pascal 21

Page 22: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Programowanie

2011-10-22 Programowanie w języku Pascal 22

PROBLEM

ALGORYTM

PROGRAM ŹRÓDŁOWY

KOMPUTER

PROGRAM WYKONYWALNY

1. IMPLEMENTACJA to zapis algorytmu w języku programowania

2. TRANSLACJA to tłumaczenie programu źródłowego na kod maszynowy

3. URUCHOMIENIE programu

4. TESTOWANIE programu

ETAPY PROGRAMOWANIA

0. WYBÓR-ZNALEZIENIE-OPRACOWANIE ALGORYTMU

Page 23: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Program źródłowy i wynikowy

2011-10-22 Programowanie w języku Pascal 23

PROGRAM (KOD) ŹRÓDŁOWY to algorytm zapisany w języku programowania (języku wysokiego poziomu)

� Przejrzysta struktura (reguły języka) – zrozumiały dla człowieka

� Niezależność od sprzętu

PROGRAM (KOD) WYNIKOWY to program zapisany w języku wewnętrznym (maszynowym) procesora

� Instrukcje odpowiadają instrukcjom konkretnego procesora

Page 24: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Program źródłowy i wynikowy

2011-10-22 Programowanie w języku Pascal 24

TRANSLACJA to tłumaczenie programu źródłowego na kod maszynowy. Używamy do tego programów zwanych translatorami. Dzielimy je na:

� INTERPRETERY – każde polecenie języka wysokiego poziomu jest na bieżąco zamieniane na kod maszynowy i wykonywane (do wykonania programu potrzebne jest uruchomienie interpretera)

� KOMPILATORY – cały program źródłowy jest tłumaczony na kod maszynowy i zapisywany w pliku wykonywalnym (*.exe). Raz skompilowany program jest „gotowy do użycia”.

Page 25: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Struktura programu w Pascalu

2011-10-22 Programowanie w języku Pascal 25

program polekola;

uses crt;

const

pi=3.14;

var

p,r:real;

begin

writeln(‘pole koła’);

writeln('podaj promień');

readln(r);

p:=pi*r*r*;

writeln(pole koła wynosi ‘,p:4:2)

end.

program nazwa;

nazwa jest jednym wyrazem (bez spacji)

nazwa nie zawiera polskich liter

uses lista modułów;

deklaracje modułów

moduły to zbiory funkcji i procedur, które

możemy wykorzystywać w naszych

programach

definicje stałych

deklaracje zmiennych

wszystkie zmienne występujące w

programie muszą być wcześniej

zadeklarowane

część wykonawcza

nagłówek programu

część

deklaracyjna

const

nazwa=wartość;

varlista zmiennych:typ;

begin

instrukcje

programu

end.Kolejność zapisywania instrukcji

odpowiada kolejności wykonywania

Instrukcje oddzielamy średnikiem

Page 26: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Zmienne

2011-10-22 Programowanie w języku Pascal 26

KAŻDA ZMIENNA UŻYWANA W PROGRAMIE MUSI BYĆ ZADEKLAROWANA

� dla każdej zadeklarowanej zmiennej rezerwowany jest fragment pamięci o określonym adresie i wielkości

� zmiennym nadajemy wartości • wczytując je z klawiatury lub pliku • używając instrukcji przypisania• przypisując nową wartość zmiennej automatycznie

„kasujemy” starą

Page 27: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Podstawowe typy danych

�PREDEFINIOWALNE TYPY DANYCH– liczby całkowite INTEGER

– liczby rzeczywiste REAL

– wartości logiczne BOOLEAN = {TRUE, FALSE}

– wartości znakowe CHAR

– łańcuchy STRING

STRING[n] – łańcuch ograniczony do n znaków

2011-10-22 Programowanie w języku Pascal 27

Page 28: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcje wejścia

• służą do wprowadzania danych do programu

2011-10-22 Programowanie w języku Pascal 28

Read(lista zmiennych);

wczytanie ( z klawiatury) zmiennych wymienionych w nawiasie

wczytanie ( z klawiatury) zmiennych wymienionych w nawiasie, a następnie przeniesienie kursora do następnej linii

Readln(lista zmiennych);

Page 29: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcje wejścia

• służą do wprowadzania danych do programu

2011-10-22 Programowanie w języku Pascal 29

Przykład – dla zmiennych x, y, z, t wprowadzamy odpowiednio wartości 4 12 6 8

instrukcja Sposób wprowadzenia (ekran)

read(x,y);read(z);read(t);

4 12 6 8 <ENTER>

readln(x,y);readln(z);read(t);

4 12 <ENTER>5 <ENTER>8 <ENTER>

Page 30: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcje wyjścia

• służą do wyprowadzania wyników lub komunikatów

2011-10-22 Programowanie w języku Pascal 30

Write(lista zmiennych);

wypisanie wartości zmiennych wymienionych w nawiasie

wypisanie wartości zmiennych wymienionych w nawiasie, a następnie przeniesienie kursora do następnej linii

Writeln(lista zmiennych);

Tekst ujęty w apostrofach zostanie wypisany na ekranie

Writeln(‘tekst komunikatu’ );

Page 31: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcje wyjścia

2011-10-22 Programowanie w języku Pascal 31

Przykład – dla zmiennych i, j, k o wartościach 12, 4 i 78

instrukcja Sposób wyprowadzenia (ekran)

write(‘oto liczby: ’);write(i);write(j);write(k);

oto liczby: 12 4 78

writeln(‘oto liczby:’);write(i);writeln(j);write(k);

oto liczby: 12 4 78

Page 32: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Formatowanie wydruku

2011-10-22 Programowanie w języku Pascal 32

liczby całkowite:writeln(zmienna:l_cyfr)

l_cyfr - „długość liczby” (w znakach),

Przykład – dla zmiennych n = 153, k = 76

instrukcja ekran

Write(n,k); 15376

Write(n:3,k:3); 153 76

Write(n:5,k:5); 153 76

Page 33: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Formatowanie wydruku

2011-10-22 Programowanie w języku Pascal 33

liczby rzeczywiste:writeln(zmienna:l_cyfr :c_dzies)

l_cyfr - „długość liczby” (w znakach) łącznie z przecinkiem

c_dzies – liczba cyfr po przecinku

Przykład – dla zmiennej x=9,75 instrukcja ekran

Write(X); 9.7500000E+00

Write(x:4:2) 9.75

Write(x:3:1) 9.8

Write(x:5:1) 9.8

Write(x:8:4) 9.7500

Page 34: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja przypisania

• służy do nadawania wartości zmiennym przez program

2011-10-22 Programowanie w języku Pascal 34

zmienna := wyrażenie;

typ zmiennej musi być zgodny z typem wyrażenia

�wyrażenie (wzór) to zapis obliczeń składający się ze zmiennych, operatorów działań i funkcji

� wartość obliczona na podstawie wyrażenia zostanie przypisana zmiennej

Page 35: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja przypisania

• służy do nadawania wartości zmiennym przez program

2011-10-22 Programowanie w języku Pascal 35

Operacje arytmetyczne+ dodawanie- odejmowanie* mnożenie/ dzielenie rzeczywiste przykład: 7/2=3,5div dzielenie całkowite przykład: 7 div 3 = 2mod reszta z dzielenia całkowitego

przykład: 7 mod 3 = 1

Page 36: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Budowa wyrażeń

• Zasady zapisu:– wszystkie działania muszą być jawne np. y:=2*a a

nie y:=2a

– do grupowania działań służy nawias zwykły npy:=1/((1/x)+1)

• Kolejność działań:– wartości funkcji

– wyrażenia w nawiasach

– mnożenie i dzielenie

– dodawanie i odejmowanie

2011-10-22 Programowanie w języku Pascal 36

Page 37: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Budowa wyrażeń

2011-10-22 Programowanie w języku Pascal 37

cd

ba +

1

12 +x

2cos

2sin2

βαβα −+

hba

2

+(a+b)/2*h

(a+b)/c*d

1/sqrt(x*x+1)

2*sin((a+b)/2)*cos((a-b)/2)

(a+b)/(c*d)

Page 38: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Funkcje standardowe• abs(x) - wartość bezwzględna• sqr(x) - kwadrat• sqrt(x) - pierwiastek kwadratowy• ln(x) - logarytm naturalny z x• exp(x) - ex

• sin(x) - sinus (x w radianach)• cos(x) - cosinus (x w radianach)• arctan(x) - arcus tangens x (wynik w mierze łukowej)• round(x) - zaokrąglenie do najbliższej liczby całkowitej

round(7.67)=8

• trunc(x) - obcięcie części ułamkowej trunc(7.67)=7

2011-10-22 Programowanie w języku Pascal 38

Page 39: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja warunkowa

• Pozwala na podjęcie decyzji, którą instrukcję ma wykonać w zależności od postawionego warunku

2011-10-22 Programowanie w języku Pascal 39

IF warunek THEN

instrukcje_gdy_tak

- wykonywana jest gdy warunek jest spełniony

ELSEinstrukcje_gdy_nie;

- wykonywana jest gdy warunek nie jest spełniony

Page 40: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja warunkowa

• Pozwala na podjęcie decyzji, którą instrukcję ma wykonać w zależności od postawionego warunku

2011-10-22 Programowanie w języku Pascal 40

Przykład 1:

if (x<>1) then

y:=0.5*x*x-4

else

y:=1/(x-1);

Przykład 2:

Readln(x);

if (x<0) then

x:=x*(-1);

Writeln(‘wartość bezwzględna=‘,x);

Page 41: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Warunek, operacja, operator

2011-10-22 Programowanie w języku Pascal 41

IF warunek THEN........

warunek = wyrażenie logiczne

� wyrażenie logiczne (warunek) to zapis warunku przy użyciu operatorów relacji lub operacji logicznych

�wyrażenie logiczne przyjmuje wartość TRUE lub FALSE (może być fałszywe lub prawdziwe)

Page 42: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Warunek, operacja, operator

2011-10-22 Programowanie w języku Pascal 42

przykłady wyrażeń logicznycha > b( a > b ) or ( a > c )( a <> 0 ) and ( ( a> b ) or ( a > c ) )

operatory relacji

= - równe

<> - różne

< - mniejsze

> - większe

<= - mniejsze lub równe

>= - większe lub równe

operacje logiczne

not - negacja

and - iloczyn logiczny

or - suma logiczna

Page 43: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja złożona

2011-10-22 Programowanie w języku Pascal 43

� Służy do grupowania kilku instrukcji w celu łącznego wykonania (lub nie wykonania)

begin......

instrukcje programu;

.......

end;

Page 44: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja złożona

2011-10-22 Programowanie w języku Pascal 44

if x=0 thenwriteln(‘ y nie istnieje’)

elsey:=1/x;writeln(‘y=’,y:5:2);

� Instrukcja warunkowa IF...THEN „sama z siebie” domyślnie warunkiem (na tak lub nie) obejmuje tylko jedną instrukcję programu

if x<>0 then writeln(‘ y nie istnieje’);

elsebeginy:=1/x;writeln(‘y=’,y:5:2)end;

elementem instrukcji warunkowej

jest tylko y:=1/x;writeln(‘y=‘,y:5:2); wykona się

niezależnie od wartości x

Obie instrukcje zostaną wykonane

(lub nie) - zależnie od wartości x

Page 45: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja wyboru

• Pozwala na wybór jednej spośród kilku instrukcji w zależności od wartości wyrażenia sterującego (selektora)

2011-10-22 Programowanie w języku Pascal 45

CASE (wyrażenie) OFw

1:instrukcja 1;

w2:instrukcja 2;

w3:instrukcja 3;

.....END;

obliczana jest wartość wyrażenia w nawiasie

wyrażenie musi być typu całkowitego lub znakowego

wykonywana jest instrukcja odpowiadająca obliczonej wartościjeżeli obliczonej wartości wyrażenia nie ma na liście nie zostanie wykonana żadna z instrukcji

gdy dla jednej wartości wyrażenia należy wykonać kilka instrukcji stosujemy instrukcję złożoną (begin.... end)

Page 46: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja wyboru

• Pozwala na wybór jednej spośród kilku instrukcji w zależności od wartości wyrażenia sterującego (selektora)

2011-10-22 Programowanie w języku Pascal 46

Case (kont div 90+1) of1:writeln(‘pierwsza ćwiartka’);2:writeln(‘druga ćwiartka’);3:writeln(‘trzecia ćwiartka’);4:writeln(‘czwarta ćwiartka’);

end;

Obliczane jest wyrażenie(kont div 90)+1

Wykonywana jest instrukcja informująca do której ćwiartki należy wartość kont

Page 47: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja iteracyjna FOR

• Pozwala powtarzanie instrukcji określoną ilość razy

2011-10-22 Programowanie w języku Pascal 47

FOR zmienna:=wart.początkowa TO wart. końcowa DOinstrukcja;

FOR zmienna:=wart.początkowa DOWNTO wart. końcowa DOinstrukcja;

Instrukcja wykonywana jest tyle razy aby zmienna startując od wartości początkowej osiągnęła wartość końcową

zmienna musi być typu całkowitego

Po każdym wykonaniu instrukcji zmienna jest automatycznie modyfikowana o 1

w górę dla TOw dół dla DOWNTO

Page 48: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja iteracyjna FOR

• Pozwala powtarzanie instrukcji określoną ilość razy

2011-10-22 Programowanie w języku Pascal 48

gdy pętlą jest objętych kilka instrukcji (linijek) trzeba stosować instrukcję złożoną

for i:=1 to 10 dosuma:=suma+i;

for i:=1 to 10 dobeginwrite(‘liczba=‘);readln(liczba);suma:=suma+liczba;end;

Page 49: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja cykliczna repeat...until

• Pozwala na powtarzanie instrukcji nieokreśloną ilość razy – aż do spełnienia zadanego warunku

2011-10-22 Programowanie w języku Pascal 49

REPEATinstrukcja;

UNTIL warunek;

najpierw wykonywana jest instrukcja, a później sprawdzany jest warunek

instrukcja (instrukcje) umieszczone wewnątrz pętli będą wykonywane dopóki warunek nie zostanie spełniony;po spełnieniu warunku program opuści pętlę

między słowami kluczowymi repeat...untilmożemy umieścić kilka instrukcji -powtarzane są wszystkie

repeatwrite(‘liczba=‘);readln(liczba);suma:=suma+liczba;

until suma<=100;

Page 50: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja cykliczna while...do

• Pozwala na powtarzanie instrukcji nieokreśloną ilość razy – tak długo jak długo warunek jest spełniony

2011-10-22 Programowanie w języku Pascal 50

WHILE warunek DOinstrukcja;

instrukcja jest powtarzana tak długo jak długo jest spełniony warunek

gdy warunek nie będzie spełniony program opuści pętlę

najpierw sprawdzany jest warunek, a później wykonywana jest instrukcja

Page 51: Programowanie w języku Pascal...2011-10-22 Programowanie w języku Pascal 18 Schemat blokowy 2011-10-22 Programowanie w języku Pascal 19 Prezentacja algorytmu w języku programowania

Instrukcja cykliczna while...do

• Pozwala na powtarzanie instrukcji nieokreśloną ilość razy – tak długo jak długo warunek jest spełniony

2011-10-22 Programowanie w języku Pascal 51

gdy warunkiem jest objętych kilka instrukcji (linijek) trzeba stosować instrukcję złożoną

While (a*b)<>0 doif a>b then

a:=a mod belse

b:=b mod a;

while suma<100 dobeginwrite(‘liczba=‘);readln(liczba);suma:=suma+liczba;end;