Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1 Konstanty a proměnné Konstanta = něco, co se nemění, je konstantní. (constant) Př. konstant: 4, -23, "pepř", "Ať žije král!" Proměnná = něco, co se mění,

Podobné prezentace


Prezentace na téma: "1 Konstanty a proměnné Konstanta = něco, co se nemění, je konstantní. (constant) Př. konstant: 4, -23, "pepř", "Ať žije král!" Proměnná = něco, co se mění,"— Transkript prezentace:

1 1 Konstanty a proměnné Konstanta = něco, co se nemění, je konstantní. (constant) Př. konstant: 4, -23, "pepř", "Ať žije král!" Proměnná = něco, co se mění, obsahuje data. (variable) – krabička, jejíž obsah lze měnit – dočasné uchování nějaké hodnoty

2 2 Název proměnné V Perlu začíná znakem $. Je utvořen z alfanumerických znaků a podtržítka. První znak za $ nesmí být číslice. Maximální délka 251 znaků Záleží na velikosti písmen ! Nesmí obsahovat mezery. Nepoužívat znaky s diakritikou !

3 3 Název proměnné - příklady Správně $pi $pozdrav $Pozdrav $Pozdrav_z_Prahy $b20 Špatně $10_j $proměnná x $jiná-proměnná $jina-promenna

4 4 Obsah proměnné Skalární veličina, tedy číslo nebo řetězec $pi = $pozdrav = "Dobrý den" Řetězec je v uvozovkách !

5 5 Typy čísel Integer (celé číslo) Floating point (racionální číslo) Integer Lze oddělovat tisíce podtržítky (jen pro čitelnost programu): (10 milionů = 10_000_000) Maximální číslo uložitelné v počítači: 32 bitů, tj Pro větší čísla je třeba použít zvl. modul.

6 6 Typy čísel Floating point (tzv. reálné číslo) čísla s desetinnou čárkou výsledky aritmetických operací s necelým výsledkem odmocniny (  2), další iracionální čísla (  ) Zaokrouhlování !POZOR!

7 7 Numerické operátory 1.**mocnina 2.unární minusobracení znaménka 3.* / %násobení, dělení, zbytek 4.+ -sčítání, násobení Červená čísla vyjadřují přednosti (precedence). Chceme-li to jinak, použijeme závorky * 4 je něco jiného než (3 + 5) * 4

8 8 Přiřazovací operátor = Není to rovnítko ! $pi = 3.14;$pozdrav = "Ahoj"; Vícenásobné přiřazení $f = $g = $k = 8; nebo dokonce $a = 5 * ($c = 2); výsledek: a je 10, c je 2 - nehezké $x = 5 * 6; $y = $x - 6; $z = $y / 8;

9 9 Autoinkrement, autodekrement Autoinkrement ++ –zvětší hodnotu proměnné o 1 Autodekrement -- –zmenší hodnotu proměnné o 1 Využití v cyklech $a++; $b--; ++$a; --$b; $a = 0; $b = $a++ + 5; $c = ++$a + 5; $b je 5, $a je 1 $c je 6, $a je 1

10 10 Řetězce Řetězec = (libovolně dlouhá) posloupnost libovolných znaků ohraničená z obou stran uvozovacími znaky Př.: "Dobrý den, agente 007" "Dobrý den\n" Uvozovací znaky (delimiters) = většinou uvozovky písmenka, číslice, i řídící znaky

11 11 Typy uvozovek Dvojité uvozovky ("řetězec")  stejné interpolation: je-li v řetězci proměnná, nahrazuje se svým obsahem interpretují se tzv. "escape sequences", např. \n (konec řádku), \t (tabulátor) Jednoduché uvozovky ('řetězec')  stejné –proměnné se nenahrazují svým obsahem, řetězec se bere doslova - no interpolation

12 12 Interpolace Chceme-li vytisknout znak těsně za jméno proměnné, užijeme složené závorky: #!/usr/bin/perl use warnings; $pozdrav = "Ahoj"; print "$pozdrav, Pepku !\n"; print '$pozdrav, Pepku !\n'; Ahoj, Pepku !... odskok na nový řádek $pozdrav, Pepku !\n... bez odskoku print "${pozdrav}, Pepku !\n";Ahoj, Pepku ! Tady není mezera

13 13 Escaping Jak vytisknout znaky \ " ' ? print "\\"; print "'"; print '"'; print "\""; \'""\'"" zpětné lomítko apostrof uvozovky Je třeba rozmyslet, jaké oddělovače použít Lze použít vlastní oddělovače !

14 14 Vlastní oddělovače Hodí se, když chceme pracovat se složitějším textem, který obsahuje víc znaků Je třeba vybrat takové oddělovače, které se v textu nevyskytují q/totéž jako ' qq/totéž jako " print q/Ahoj, Pepku!/; print qq/${pozdrav}, Pepku/; Místo / lze použít libovolný nealfanumerický znak, tedy např. # | + _, nebo dvojici (), {}, <>,[]

15 15 Čísla a řetězce Převody mezi čísly a řetězci - automatické Př. $deset="10"... to je řetězec, ale vyskytne-li se mezi čísly, převede se taky na číslo. Automatické převody neplatí pro osmičková ani hexadecimální čísla, ta se musí explicitně převést pomocí funkcí oct a hex.

16 16 Řetězcové operátory Zřetězení = konkatenace (concatenation) –přilepení jednoho řetězce na konec druhého –je-li třeba, číslo se převede na řetězec print "hrad"."u"; $koncovka = "em"; $kmen = "hrad"; $tvar = $kmen. $koncovka"; print "$tvar\n"; hradu print "Dvakrát pět je ".2*5.".\n";Dvakrát pět je 10.

17 17 Ještě přiřazování = není rovnítko, takže lze i: $x = $x - 6;$slovo = $slovo." ".$slovo; Další možný zápis: $x -= 6;totéž jako $x = $x - 6; $x += -6;totéž jako $x = $x + (-6); $x *= 6;totéž jako $x = $x * 6; $x /= 6;totéž jako $x = $x / 6; $slovo.= " ";$slovo = $slovo. " ";

18 18 Globální a lokální proměnná Globální proměnnou (global variable) lze používat (tzn. i měnit) v celém programu Lokální proměnná (local / lexical variable) je definovaná jen pro blok, ve kterém je deklarovaná a v případných podblocích –Je třeba ji deklarovat : –my $promenna; –Zvykneme si deklarovat všechny proměnné

19 19 Lokální proměnné $w = 8;# globální proměnná print $w;# vytiskne 8 { my $w;# lokální proměnná uvnitř bloku $w = 19; print $w;# vytiskne 19 } print $w;# vytiskne 8 Použití v podprogramech

20 20 Hlídání proměnných Globální proměnné není třeba deklarovat, ale je to vhodné our $glob_promenna; Kontrola, aby byly všechny proměnné deklarovány - use strict; Při opomenutí – varování při překladu Globální proměnné se používají málo

21 21 Příklad #!/usr/bin/perl # skládání slov use warnings; use strict; my $kmen, $koncovka; $kmen = ; # uživatel zadá kmen z klávesnice $koncovka = ; # totéž pro koncovku print "Celé slovo je: ".$kmen.$koncovka.".\n";

22 Vstup a výstup - jen pro začátek Vstup - data, která zadáváme programu, aby je zpracoval diamantový operátor Výstup - data, která program vyprodukuje, výsledky print Standardní vstup - klávesnice Standardní výstup - obrazovka

23 Standardní vstup Diamantový operátor přečte jednu řádku ze vstupu $vstup = ; v proměnné $vstup je to, co zapíše uživatel na klávesnici, včetně znaku konce řádku Konec řádku: UNIX : "\n"line feed (LF) - chr(10) Windows : "\r\n" carriage return - chr(13) (CR LF) chomp($vstup); odstranění konce řádku z obsahu proměnné

24 Standardní výstup Soubor lze otevřít i pro výstup, ale to necháme na později Standardní výstup se otevře automaticky vždy print [seznam čísel a/nebo řetězců, oddělených čárkami] print "Dnes je krásně\n"; print "Dnes", " ", "je k", "rásn", "ě\n"; # totéž

25 Unixová odbočka - přesměrování standardního vstupu a výstupu Standardní vstup / výstup lze přesměrovat ze /do souboru Přesměrování vstupu < Přesměrování výstupu - > vytvoření souboru - >>přidání na konec existujícího souboru./tisk.perl > vystup.txt Výstup programu tisk.perl se zapíše do souboru vystup.txt. Pokud soubor už existoval, přepíše se.

26 Ještě o číslech 42; # integer ; # floating point number ; # # E-3; # stejné číslo jako na předchozím řádku 23e-100; # zápis velmi malých čísel (23 krát 10 na minus E-99; # stejné číslo jako na předchozím řádku 23e6; # 23 milionů 23_000_000; # stejné číslo jako na předchozím řádku

27 Formátování výstupu Příkaz print vypíše řetězec přesně tak, jak mu ho zadáme Čísla ale upraví do co nejjednoduššího tvaru print 4.000, ' ', , ' ', 2E-4, ' ', 9.77E-5, " ", 10_181_973, ' ', 9.87E9, " ", 86.7E14, "\n"; Výsledek bude: 4 3.3e e e+15 Můžeme si ho ale naformátovat podle svých představ - funkce printf my $x = ; printf "%.5f\n", $x; # tisk čísla na 5 desetinných míst, tedy


Stáhnout ppt "1 Konstanty a proměnné Konstanta = něco, co se nemění, je konstantní. (constant) Př. konstant: 4, -23, "pepř", "Ať žije král!" Proměnná = něco, co se mění,"

Podobné prezentace


Reklamy Google