Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Informatika I 3. přednáška
RNDr. Jiří Dvořák, CSc.
2
Informatika I: přednáška 3
Obsah přednášky Datové typy v Pascalu Proměnné a pojmenované konstanty Příkazy v Pascalu Řídicí struktury Složený příkaz Podmíněné příkazy Příkazy cyklu Informatika I: přednáška 3
3
Datové typy v jazyku Pascal
Jednoduché datové typy: real integer v jazyku boolean předdefinované char výčtový typ interval Strukturované datové typy: definované množina uživatelem pole záznam soubor Informatika I: přednáška 3
4
Jednoduché datové typy v jazyku Pascal
Typ real: reálné (přesněji racionální) hodnoty Typ integer: celočíselné hodnoty Typ boolean: logické (booleovské) hodnoty Typ char: znakové hodnoty (characters) Výčtový typ: výčet hodnot reprezentovaných identifikátory Typ interval: podmnožina hodnot nějakého ordinálního typu Množiny hodnot všech jednoduchých (skalárních) datových typů v Pascalu jsou uspořádané a jsou pro ně definovány relační operace. Ordinální je takový typ, jehož hodnoty jsou navíc očíslovány pořadovými (celými) čísly. Ordinální jsou všechny výše uvedené typy s výjimkou typu real. Informatika I: přednáška 3
5
Společné operace pro skalární typy
operátor = <> < <= > >= význam rovno nerovno menší menší nebo rovno větší větší nebo rovno Pozn.: Jedná se o relační operace. Výsledkem jsou hodnoty typu boolean. Informatika I: přednáška 3
6
Společné funkce pro ordinální typy
Funkce význam ord pořadové číslo hodnoty argumentu v uspořádané množině hodnot daného typu; pořadové číslo celočíselné hodnoty je rovno této hodnotě, u ostatních ordinálních typů začíná číslování hodnot od nuly pred předchůdce hodnoty argumentu v uspořádané množině hodnot daného typu succ následník hodnoty argumentu v uspořádané množině hodnot daného typu Informatika I: přednáška 3
7
Proměnné a pojmenované konstanty
Definice konstant: const identifikátor1=hodnota1; identifikátor2=hodnota2; . Deklarace proměnných var identif1:typ1; identif2a,identif2b, … :typ2; Informatika I: přednáška 3
8
Příklady definic konstant a deklarací proměnných
const PI= ; Imax=100; Pozdrav=’Ahoj’; var i,j,m,n:integer; x,y:real; B:boolean; Zn1,Zn2:char; Informatika I: přednáška 3
9
Informatika I: přednáška 3
Příkazy jazyka Pascal Jednoduché příkazy: přiřazovací příkaz příkaz procedury příkaz skoku prázdný příkaz Strukturované příkazy (řídicí struktury): složený příkaz podmíněné příkazy příkazy cyklu příkaz with (používá se u datového typu záznam) Informatika I: přednáška 3
10
Informatika I: přednáška 3
Řídicí struktury Struktura begin - end uzavření posloupnosti příkazů do příkazových závorek Struktura if - then větvení do dvou větví Struktury while - do, repeat - until cykly umožňující řešit i případy s předem neznámým počtem opakování Struktura case větvení do více než dvou větví Struktura for cyklus s předem známým počtem opakování Informatika I: přednáška 3
11
Informatika I: přednáška 3
Složený příkaz begin posloupnost příkazů oddělených středníky end Složený příkaz používáme tam, kde syntaxe požaduje výskyt pouze jediného příkazu. Informatika I: přednáška 3
12
Příklady složeného příkazu
begin Pom:=X; X:=Y; Y:=Pom end b) begin S:=S+ii; i:=i+1; end Podle syntaxe jazyka Pascal je středník oddělovačem příkazů. Avšak v případě b) se středník vyskytuje i za posledním příkazem. To ale není chyba, neboť v tomto složeném příkazu se vlastně nacházejí tři příkazy oddělené středníky, přičemž třetím příkazem je příkaz prázdný. Informatika I: přednáška 3
13
Informatika I: přednáška 3
Příkazy if a) if podmínka then příkaz1 else příkaz2 Je-li podmínka splněna, provede se příkaz1, jinak se provede příkaz2. b) if podmínka then příkaz Je-li podmínka splněna, provede se příkaz. V opačném případě se neprovede nic. Případné nejednoznačnosti v konstrukcích tvořených několika příkazy if vnořenými do sebe jsou řešeny tak, že každé else přísluší nejbližšímu předcházejícímu then, které je dosud volné a není uvnitř jiné struktury. Informatika I: přednáška 3
14
Sémantika konstrukcí s více příkazy if
a) if B1 then if B2 then P1 else P2; b) if B1 then begin if B2 then P1 end else P2; ad a) ad b) ano ne ano ne B1 B1 ano ne ano ne P2 B2 B2 P1 P1 P2 Informatika I: přednáška 3
15
Informatika I: přednáška 3
Příklady příkazů if Určení minimální hodnoty z čísel X, Y, Z: if X<Y then Min:=X else Min:=Y; if Z<Min then Min:=Z; Uspořádání čísel A a B vzestupně podle velikosti: if A>B then begin Pom:=A; A:=B; B:=Pom end; Informatika I: přednáška 3
16
Informatika I: přednáška 3
Příkazy while a repeat a) while podmínka do příkaz Příkaz za do se provádí, pokud je splněna podmínka. Jestliže podmínka není splněna, cyklus končí. b) repeat posloupnost příkazů oddělených středníky until podmínka Provádějí se příkazy mezi repeat a until, dokud není splněna podmínka. Jakmile je podmínka splněna, cyklus končí. Informatika I: přednáška 3
17
Příklady použití cyklů while a repeat
Sečítání kladných čísel, zadávaných z klávesnice (výpočet je ukončen zadáním záporného čísla nebo nuly): program Secitani; var x,s:real; begin s:=0; read(x); while x>0 do s:=s+x; end; writeln(’Soucet= ’,s); end. program Secitani; var x,s:real; begin s:=0; read(x); if x>0 then repeat s:=s+x; until x<=0; writeln(’Soucet= ’,s); end. Informatika I: přednáška 3
18
Příklady použití cyklu while
Výpočet faktoriálu přirozeného čísla N: var i,N:integer; F:real; ... F:=1; i:=2; while i<=N do begin F:=Fi; i:=i+1; end; {Vysledek je v F} var i,N:integer; F:real; ... F:=1; i:=N; while i>=2 do begin F:=Fi; i:=i–1; end; {Vysledek je v F} Informatika I: přednáška 3
19
Příklad použití cyklu repeat
Přibližný výpočet třetí odmocniny z A: program TretiOdmocnina; {$APPTYPE CONSOLE} var A,Epsilon,X,Y:real; begin writeln('Zadej cislo pro odmocninu'); readln(A); writeln('Zadej presnost vypoctu'); readln(Epsilon); Y:=A; repeat X:=Y; Y:=X+(A/sqr(X)-X)/3; until abs(X-Y)<Epsilon; writeln('Treti odmocnina z',A,'=',Y); writeln('Stiskni Enter'); readln; end. Informatika I: přednáška 3
20
Informatika I: přednáška 3
Příkazy case a) case SelektorVětvení of hodnota1:příkaz1; hodn2a,hodn2b, … :příkaz2; . end b) case SelektorVětvení of else příkazy Selektor větvení je výraz ordinálního typu. Provede se příkaz, který odpovídá hodnotě selektoru větvení. Pokud žádný takový není, provedou se v případě b) příkazy ve větvi else. Informatika I: přednáška 3
21
Příklad použití příkazu case
Součást vyhodnocení aritmetického výrazu: var Oper:char; Vysledek,X,Y:real; ... case Oper of ’+’: Vysledek:=X+Y; ’–’: Vysledek:=X–Y; ’’: Vysledek:=XY; ’/’: Vysledek:=X/Y; end; Informatika I: přednáška 3
22
Příklad použití příkazu case
Určení počtu dní v měsíci: var Mesic:1..12; {interval celych cisel od 1 do 12} PocetDnu,Rok:integer; function Prestupny(R:integer):boolean; {Funkce testujici, zda rok R je prestupny} ... case Mesic of 2: if Prestupny(Rok) then PocetDnu:=29 else PocetDnu:=28; 4,6,9,11: PocetDnu:=30 else PocetDnu:=31 end Informatika I: přednáška 3
23
Informatika I: přednáška 3
Příkazy for a) for řídicí_proměnná:=výraz1 to výraz2 do příkaz b) for řídicí_proměnná:=výraz1 downto výraz2 do Řídicí proměnná je ordinálního typu. Výraz1 a výraz2 určují počáteční a koncovou hodnotu řídicí proměnné. Tyto výrazy se vyhodnocují pouze jednou před zahájením cyklu. Příkaz, který je uvnitř cyklu, nesmí měnit hodnotu řídicí proměnné. Ta se mění automaticky (v cyklu for-to pomocí funkce succ, v cyklu for-downto pomocí funkce pred). Příkaz for je implementován jako cyklus while. Informatika I: přednáška 3
24
Implementace cyklu for pomocí while
for I:=výraz1 to výraz2 do příkaz Implementace: V1:=výraz1; V2:=výraz2; I:=V1; while I<=V2 do begin příkaz; I:=succ(I) end Implementace cyklu for-downto se liší podmínkou I>=V2 a příkazem I:=pred(I). Informatika I: přednáška 3
25
Příklady použití cyklu for
Výpočet faktoriálu přirozeného čísla N: var i,N:integer; F:real; ... F:=1; for i:=2 to N do F:=Fi; {Vysledek je v F} var i,N:integer; F:real; ... F:=1; for i:=N downto 2 do F:=Fi; {Vysledek je v F} Informatika I: přednáška 3
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.