108
Úvod do Pascalu

Úvod do Pascal u

Embed Size (px)

DESCRIPTION

Úvod do Pascal u. Co je Pascal ?. vyšší programovací jazyk poskytuje prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou realizaci výpočetních procesů na počítači. 1 967-71: Niklaus Wirth. Jednoduch ý p rogram. program ahoj ; begin - PowerPoint PPT Presentation

Citation preview

Page 1: Úvod do  Pascal u

Úvod do Pascalu

Page 2: Úvod do  Pascal u

Co je Pascal?

• vyšší programovací jazyk

poskytuje prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou realizaci výpočetních procesů na počítači.

• 1967-71: Niklaus Wirth

2

Page 3: Úvod do  Pascal u

Jednoduchý program

program ahoj;begin writeln (‘Hello World’);

end.

jméno programu

klíčová slova

Je velmi důležité program

správně členit.

3

Page 4: Úvod do  Pascal u

Program a zdrojový kód

• proces začíná v textovém editoru• zde píšeme zdrojový kód• ten je uložen s příponou .PAS• počítač nerozumí textu v Pascalu; jazyk musí

být přeložen do strojového kódu• toto zajistí překladač (compiler => kompilovat)

4

Page 5: Úvod do  Pascal u

Jak funguje překlad?

fáze 1: překladač zkontroluje, zda se v kódu vyskytují syntaktické chyby (např. překlepy)

Pokud jsou chyby nalezeny, vypíšou se a překlad je ukončen. Programátor může nyní nalezené chyby opravit.

2 fáze překladu

5

Page 6: Úvod do  Pascal u

Jak funguje překlad?

fáze 2: Po odstranění všech chyb je zdrojový kód převeden do spustitelného programu (.exe)

6

Page 7: Úvod do  Pascal u

7

Page 8: Úvod do  Pascal u

Klíčová (rezervovaná) slova

8

Page 9: Úvod do  Pascal u

ČteníV Pascalu je čtení prováděno příkazem Readln

Readln: pracuje s textem i s číselnými hodnotami

Readln: samostatně může být použit pro zastavení běhu programu (čeká se na stisk ENTER)

9

Page 10: Úvod do  Pascal u

ČteníV Pascalu je čtení prováděno příkazem Readln

Readln: pracuje s textem i s číselnými hodnotami

Readln: samostatně může být použit pro zastavení běhu programu (čeká se na stisk ENTER)

var A,B,C: integer;S: string;

begin readln(A);readln(B,C);

readln(S); readln;end.

10

Page 11: Úvod do  Pascal u

ČteníV Pascalu je čtení prováděno příkazem Readln

Readln: pracuje s textem i s číselnými hodnotami

Readln: samostatně může být použit pro zastavení běhu programu (čeká se na stisk ENTER)

var A,B,C: integer;S: string;

begin readln(A);readln(B,C);

readln(S); readln;end.

47 A=471234 -45 B=1234 a C=-45Zaciname s Pascalem S = ’Zaciname s Pascalem’

ENTER

ENTER

ENTER

ENTER 11

Page 12: Úvod do  Pascal u

Zápis (tisk)je prováděn příkazy Write nebo Writeln

Writeln(‘Zadej cislo: ‘); … zobrazí řetězec napsaný v uvozovkách a odřádkuje

Writeln(A); … vytiskne hodnotu proměnné A a odřádkuje

Write(A); … stejné jako dříve, ale bez odřádkování

Writeln; … odřádkuje12

Page 13: Úvod do  Pascal u

Zápis (tisk)

13

Page 14: Úvod do  Pascal u

Zápis (tisk)

14

Page 15: Úvod do  Pascal u

Proměnná

• veličina určitého typu, která může měnit svou hodnotu, ne však svůj typ

• proměnná musí být deklarována• deklarace proměnných začíná klíčovým

slovem var (což je zkratka ze slova variable)

Byte Char

Integer String

Real Boolean15

Page 16: Úvod do  Pascal u

Datové typy

• Boolean : logická proměnná: true, false• Integer: celá čísla mezi –32768 a 32767• Real : reálná čísla• Char : znaky (např. @; t; 6)• String : řetězec - složen z žádného nebo více

znaků• Array: pole prvků určitého typu

např. A:array[1..100] of Real;

16

Page 17: Úvod do  Pascal u

17

Page 18: Úvod do  Pascal u

18

Page 19: Úvod do  Pascal u

19

Page 20: Úvod do  Pascal u

20

Page 21: Úvod do  Pascal u

21

Page 22: Úvod do  Pascal u

22

Page 23: Úvod do  Pascal u

23

Page 24: Úvod do  Pascal u

Datové typy definované uživatelem

var M,N:Integer; K,L:1..100;

type TypSto=1..100;

var M,N:Integer; K,L:TypSto;

M, N … standardního celočíselného typu IntegerK,L … celočíselné prom., mohou nabývat jen

hodnot od 1 do 100

Je možno nejprve deklarovat celočíselný typ vázaný na příslušný interval (označen bude např. identifikátorem TypSto), a teprve potom pomocí identifikátoru typu deklarovat proměnné K, L

možnost definovat další typy

24

Page 25: Úvod do  Pascal u

Datové typy definované uživatelem Příklad: Mají-li např. X, Y představovat body v třírozměrném prostoru, jejichž souřadnice se mohou v průběhu programu měnit, lze příslušná proměnná třísložková pole deklarovat přímo zápisem

var X,Y:array[1..3] of Real;

25

Page 26: Úvod do  Pascal u

Příklad: Mají-li např. X, Y představovat body v třírozměrném prostoru, jejichž souřadnice se mohou v průběhu programu měnit, lze příslušná proměnná třísložková pole deklarovat přímo zápisem

var X,Y:array[1..3] of Real;

nebo nejprve deklarovat příslušný typ (bude označen identifikátorem TypBod), tj. psát

Datové typy definované uživatelem

26

Page 27: Úvod do  Pascal u

Příklad: Mají-li např. X, Y představovat body v třírozměrném prostoru, jejichž souřadnice se mohou v průběhu programu měnit, lze příslušná proměnná třísložková pole deklarovat přímo zápisem

var X,Y:array[1..3] of Real;

nebo nejprve deklarovat příslušný typ (bude označen identifikátorem TypBod), tj. psát

type TypBod=array[1..3] of Real;

var X,Y:TypBod;

Datové typy definované uživatelem

27

Page 28: Úvod do  Pascal u

Datové typy definované uživatelem

28

Page 29: Úvod do  Pascal u

Pojmenování proměnných

• identifikátor - musí začínat písmenem, může obsahovat číslice a znak podtržení

29

Page 30: Úvod do  Pascal u

Konstanty

• data, která nemění svou hodnotu– literál, tj. přímý zápis hodnoty v programu, – pojmenovaná konstanta, tj. pomocí

identifikátoru, který je pro příslušnou hodnotu použit v úseku deklarací konstant (úsek deklarací konstant začíná klíčovým slovem const).

const T0=273.15; Dimenze=2;

30

Page 31: Úvod do  Pascal u

Příkaz přiřazení

31

Page 32: Úvod do  Pascal u

Příkaz přiřazení

32

Page 33: Úvod do  Pascal u

Příkaz přiřazení

33

Page 34: Úvod do  Pascal u

Příkaz přiřazení

zapíše data do již dříve deklarované proměnnénapř.cislo := 25;adresa := ’25 High Street’;

34

Page 35: Úvod do  Pascal u

Matematické operace

+ sčítání

- odčítání

* násobení/ div mod dělení

mod zbytek po celočíselném dělení div celočíselné dělení

35

Page 36: Úvod do  Pascal u

36

3.5

Page 37: Úvod do  Pascal u

37

3.5

Page 38: Úvod do  Pascal u

38

Page 39: Úvod do  Pascal u

39

Page 40: Úvod do  Pascal u

40

Page 41: Úvod do  Pascal u

41

Page 42: Úvod do  Pascal u

Matematické operace• není definován aritmetický operátor pro

umocňování

• mocniny s malým přirozeným exponentem:– funkce Sqr nebo opakované násobení

• jiné mocniny (s reálným exponentem, a tedy též pro zápis odmocnin)– funkce Power nebo matematický vztah

AB = e B*ln A (pro A > 0)42

Page 43: Úvod do  Pascal u

Matematické operace

43

Page 44: Úvod do  Pascal u

Matematické operace

44

Page 45: Úvod do  Pascal u

Matematické operace

45

Page 46: Úvod do  Pascal u

Matematické operace

46

Page 47: Úvod do  Pascal u

Přepona trojúhelníka

47

Page 48: Úvod do  Pascal u

Přepona trojúhelníka

48

Page 49: Úvod do  Pascal u

Podmínky

• proměnné typu BooleanTrue / False

= je rovno <> není rovno> větší než < menší než

>= větší nebo rovno <= menší nebo rovno

49

Page 50: Úvod do  Pascal u

50

Page 51: Úvod do  Pascal u

51

Page 52: Úvod do  Pascal u

52

Page 53: Úvod do  Pascal u

53

Page 54: Úvod do  Pascal u

and, or, not

54

Page 55: Úvod do  Pascal u

Určete hodnoty proměnných X a Y po vykonání kódu:

55

Page 56: Úvod do  Pascal u

Určete hodnoty proměnných X a Y po vykonání kódu:

56

Page 57: Úvod do  Pascal u

57

Page 58: Úvod do  Pascal u

58

Page 59: Úvod do  Pascal u

59

Page 60: Úvod do  Pascal u

60

Page 61: Úvod do  Pascal u

61

Page 62: Úvod do  Pascal u

62

Page 63: Úvod do  Pascal u

63

Page 64: Úvod do  Pascal u

64

Page 65: Úvod do  Pascal u

Příkaz case slouží k zápisu n-árního větvení

65

Page 66: Úvod do  Pascal u

Příkaz case slouží k zápisu n-árního větvení

66

Page 67: Úvod do  Pascal u

Příkaz case V proměnných Den, Měsíc, Rok je uloženo datum. Napište část programu, která zajistí, že do proměnné Počet bude uložen počet dnů v příslušném měsíci.

67

Page 68: Úvod do  Pascal u

Příkaz case V proměnných Den, Měsíc, Rok je uloženo datum. Napište část programu, která zajistí, že do proměnné Období bude uložen název příslušného ročního období.

68

Page 69: Úvod do  Pascal u

Příkaz case V proměnných Den, Měsíc, Rok je uloženo datum. Napište část programu, která zajistí, že do proměnné Období bude uložen název příslušného ročního období.

Jak to funguje?

69

Page 70: Úvod do  Pascal u

70

Page 71: Úvod do  Pascal u

71

Page 72: Úvod do  Pascal u

72

Page 73: Úvod do  Pascal u

73

Page 74: Úvod do  Pascal u

Prázdný příkaz

• nepředepisuje žádnou akci a je definován jako prázdný řetězec znaků abecedy jazyka

• obvykle se využívá jako kompoziční prvek ve strukturovaných příkazech.

Příklad: if X<5 then else Write('*')

• přehledněji (neúplným příkazem if): if X>=5 then Write('*')

NIC

74

Page 75: Úvod do  Pascal u

Cykly

• Cyklus je část algoritmu, která předepisuje (několikanásobné) opakování části algoritmu (těla cyklu).

75

Page 76: Úvod do  Pascal u

Cykly

• se známým počtem opakovánífor… to… do…

• s neznámým počtem opakovánírepeat… until…while… do…

76

Page 77: Úvod do  Pascal u

se známým počtem opakování77

Page 78: Úvod do  Pascal u

78

Page 79: Úvod do  Pascal u

s neznámým počtem opakování79

Page 80: Úvod do  Pascal u

s neznámým počtem opakování80

Page 81: Úvod do  Pascal u

81

Page 82: Úvod do  Pascal u

82

Page 83: Úvod do  Pascal u

83

Page 84: Úvod do  Pascal u

84

Page 85: Úvod do  Pascal u

85

nebo

Page 86: Úvod do  Pascal u

Jaké chyby mohou nastat?

mohou nastat 3 typy chyb

1. Syntaktické chyby: např. překlepy2. Logické chyby: chyby v logice (algoritmu)3. Run-Time chyby (za běhu) : chyby, které se

vyskytnou až při běhu programu (např. nedostatek paměti)

86

Page 87: Úvod do  Pascal u

Používání procedur• Procedura je dílčí algoritmus• stejně jako program musí mít své jméno• definuje vlastní proměnné zvané lokální

proměnné nebo používá globální proměnné použité v programu

• pro vymezení procedury používáme begin a end, ale na konci bude středník.

• např. chceme zahrát melodii na začátku a na konci programu

• na konci však jiným tempem

87

Page 88: Úvod do  Pascal u

Používání funkcí

• jsou podobné procedurám• mají vlastní proměnné a mohou pracovat také

s parametry.• hlavní rozdíl je v tom, že funkce vrací hodnotu

zpět do programu

88

Page 89: Úvod do  Pascal u

Deklarace funkce

• tvořena záhlavím, deklarační částí a příkazovou částí

• Záhlaví – začíná klíčovým slovem function a názvem

(identifikátorem) funkce– obsahuje parametry funkce (kolik a jakého typu) a

jakého typu je výsledek (jedna výsledná hodnota).

89

Page 90: Úvod do  Pascal u

Deklarace funkce

• V příkazové části funkce (tj. mezi begin a end funkce) je třeba přiřadit identifikátoru funkce, nějakou hodnotu => výsledná funkční hodnotu.

90

Page 91: Úvod do  Pascal u

Používání funkcíPříklad Deklarujte funkci pro výpočet aritmetického průměru dvou reálných čísel.

vstupní parametry

výstupní parametry

91

Page 92: Úvod do  Pascal u

Používání funkcíPříklad Deklarujte funkci pro výpočet n!.

92

Page 93: Úvod do  Pascal u

Používání funkcí

93

Page 94: Úvod do  Pascal u

Volání procedury a funkce

má jeden ze dvou tvarů • identifikátor podprogramu • identifikátor podprogramu (seznam skutečných

parametrů)

rozdílný je však význam volání: • volání procedury představuje příkaz (příkaz

procedury), • volání funkce představuje výraz.

94

Page 95: Úvod do  Pascal u

Formální parametry podprogramů

z hlediska algoritmizace (podle směru předávaných hodnot) na:

• parametry vstupní, • parametry výstupní, • parametry vstupně-výstupní,

z hlediska Pascalu na: • parametry volané hodnotou, • parametry volané odkazem (vztahuje se na ně

klíčové slovo var).

dělíme:

95

Page 96: Úvod do  Pascal u

Formální parametr volaný hodnotou

• představuje v těle podprogramu jen lokální proměnnou, které je na počátku provádění podprogramu přiřazena hodnota skutečného parametru.

• Přípustným skutečným parametrem může být proto libovolný výraz, jehož hodnota je kompatibilní vzhledem k přiřazení s typem formálního parametru.

• Případné změny hodnoty formálního parametru při provádění podprogramu nemění hodnotu skutečného parametru.

96

Page 97: Úvod do  Pascal u

Formální parametr volaný hodnotouprogram UkazkaFunkci; ~~~ function Moc3(X:Real):Real; begin

Moc3:=X*Sqr(X); end; ~~~var

X,Y,Z:Real; begin

X := 5.5;Y := 2.5;Z := Moc3(X-Y);~~~

end. 97

Page 98: Úvod do  Pascal u

Formální parametr volaný odkazem

• představuje v těle podprogramu vždy tu konkrétní proměnnou, která je určena skutečným parametrem.

• Přípustným skutečným parametrem proto může být obecně jen proměnná, jejíž typ je totožný s typem formálního parametru

98

Page 99: Úvod do  Pascal u

Vyjádřete algoritmus pro výpočet součtu 20 reálných čísel dodávaných ze vstupního zařízení.

99

Page 100: Úvod do  Pascal u

100

Page 101: Úvod do  Pascal u

Vstupní údaje tvoří nejprve přirozené číslo N z intervalu <2, 1000> a dále posloupnost N reálných čísel. Vyjádřete algoritmus pro nalezení největší hodnoty z hodnot prvků posloupnosti.

101

Page 102: Úvod do  Pascal u

Vstupní data tvoří přirozené číslo N > 2 a posloupnost N celých čísel. Vyjádřete algoritmus, podle kterého se zjistí, zda jsou v posloupnosti bezprostředně po sobě dvě stejná čísla. V případě, že ano, zajistěte tisk jejich společné hodnoty a tisk příslušné dvojice indexů.

102

Page 103: Úvod do  Pascal u

Vstupní data tvoří přirozené číslo N > 2 a posloupnost N celých čísel. Vyjádřete algoritmus, podle kterého se zjistí, zda jsou v posloupnosti bezprostředně po sobě dvě stejná čísla. V případě, že ano, zajistěte tisk jejich společné hodnoty a tisk příslušné dvojice indexů.

103

Page 104: Úvod do  Pascal u

Vstupní data tvoří přirozené číslo N > 2 a posloupnost N celých čísel. Vyjádřete algoritmus, podle kterého se zjistí, zda jsou v posloupnosti bezprostředně po sobě dvě stejná čísla. V případě, že ano, zajistěte tisk jejich společné hodnoty a tisk příslušné dvojice indexů.

104

Page 105: Úvod do  Pascal u

Vstupní údaje tvoří přirozené číslo N z intervalu <2, 100> a dále posloupnost N celých čísel. Vyjádřete algoritmus pro nalezení všech míst výskytu maxima posloupnosti.

105

Page 106: Úvod do  Pascal u

Vstupní údaje tvoří přirozené číslo N a dále posloupnost N celých kladných čísel. Vyjádřete algoritmus, podle kterého se zjistí, zda jsou v posloupnosti alespoň dva prvky stejné.

106

Page 107: Úvod do  Pascal u

107

Page 108: Úvod do  Pascal u

108