Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Doporučená literatura
P.Töpfer: Algoritmy a programovací techniky, Prometheus Praha ISBN Wall, L., Christiansen, T. and R. L. Schwartz: Programming PERL. O'Reilly ISBN Vyšla i česky. Pavel Satrapa: Perl pro zelenáče, Neokortex, s.r.o. ISBN
2
Programování Přesné vyjádření našeho přání
Rozmyšlení všech možných alternativ Dekompozice na elementární úlohy Zápis v příslušném jazyce Příklad: Smazat všechny soubory z počítače, kde se vyskytuje jméno zradivšího kamaráda.
3
Tabulkové kalkulátory
Software programové vybavení počítače operační systémy aplikační programy Technické vybavení počítače Hardware Operační systémy MS DOS WINDOWS 9x, ME, Windows XP WINDOWS NT UNIX Aplikace Textové editory Tabulkové kalkulátory Kreslící programy Databáze WINDOWS 2000
4
Překlad do strojového kódu (machine code) pomocí překladače
Zápisu v programovacím jazyce (source code = zdrojový kód = zdroják) počítač nerozumí Překlad do strojového kódu (machine code) pomocí překladače Výsledkem je spustitelný program ve zvláštním souboru, který lze kdykoli později spustit jen v operační paměti počítače, spouští se hned a po dokončení se zapomene -- interpret
5
Interpret Strojový kód v souboru
Pomalejší provádění kvůli počátečnímu překladu Je třeba program překládat pro každý nový stroj Nevýhody Snadná přenositelnost na jiné počítače, operační systémy Snadná modifikovatelnost Není třeba program pokaždé překládat - je to rychlejší Skrytý zdrojový kód Výhody Interpret Strojový kód v souboru
6
There's more than one way to do it !
Perl je interpret perlovský program == skript (někdy) Potřeba překladače Překladač je volně šiřitelný Snadnost a přístupnost lidskému myšlení má své stinné stránky! Perlovské motto: There's more than one way to do it !
7
Program se skládá z příkazů (statement)
Příkazy se mohou řadit do bloků (block) pomocí složených závorek { ... } Příkaz obsahuje klíčové slovo (keyword) obsahující název funkce (a argument(y)) Program je dobré komentovat, abychom se v něm později vyznali. print "Ahoóój !"; # napřed všechny pozdravím
8
Příkaz v Perlu musí být zakončen středníkem (jsou výjimky, ale nebudeme se je učit).
Příkazy mohou být zapsané těsně za sebou, ale nesluší se to Každý příkaz na nový řádek. Odsazovat bloky Komentář je cokoli za znakem # až do konce řádky a je překladačem ignorován.
9
Spuštění programu v Perlu
Na příkazovou řádku napíšeme perl [jméno souboru] perl –w [jméno souboru] Volba –w buď na příkazovou řádku nebo na první řádku programu
10
Spuštění programu v Perlu
První řádka programu: #!/usr/bin/perl, případně #!/usr/local/bin/perl Doporučuje se zapínat varovný přepínač, překladač potom upozorní nejen na chyby, ale i na nezvyklá užití #!/usr/bin/perl -w nebo přímo jménem #!/usr/bin/perl use warnings;
11
Ladění programu Málokdy se povede napsat program hned napoprvé dobře
Odstraňování chyb = debugging (bug = štěnice nebo i jakýkoli hmyz) Nástroj na odstraňování chyb = debugger Kontrolní tisky
12
Algoritmus Algoritmus = postup práce To není algoritmus
Příklad: Smazat všechny soubory z počítače, kde se vyskytuje jméno zradivšího kamaráda. To není algoritmus Jak by asi vypadal příslušný algoritmus?
13
Znakové sady, kódování vnitřní reprezentace všech znaků v paměti počítače ASCII - American Standard Code for Information Interchange - viz např. jen 7 bitů Kolik znaků lze zakódovat pomocí 7 bitů?
14
ASCII řídicí znaky písmena anglické abecedy
znaménka (<>;:"/, apod.) 7 bitů je málo ==> rozšíření na 8 bitů - znakové sady pro různé jazyky Čeština: ISO Latin2, Windows 1250, Kamenických později 16 - Unicode 32 - ISO (International Organization for Standardization), Unicode znaků
15
UNICODE a jeho kódování
UTF-8 ASCII znaky mají stejný kód nejčastější znaky jen v 1 bytu, ostatní ve 2 až 4 UTF-16 kompromis mezi úsporností a kompaktností nejčastější znaky ve 2 bytech, ostatní ve 4 UTF-32 všechny znaky ve 4 bytech
16
UNICODE Standard Zodpovědný za interpretaci znaků
Nedefinuje grafickou podobu znaků Prvních 128 znaků je ASCII Prvních 256 znaků ze sady ISO Latin 1 Jednoznačné pojmenování každého znaku Znaky se mohou (jenom) přidávat - stabilita
17
Číselné soustavy Dvojková soustava – Binary numbers
bit = binary digit (dvojková číslice) 8 bitů = 1 byte - stačí k zakódování 255 znaků Pro odlišení - začínají 0b Osmičková soustava - Octal numbers = základ 8 Pro odlišení - začínají vždy nulou (0). Šestnáctková soustava - Hexadecimal numbers = základ 16 Číslice 0 – 9, pak písmenka A (10), B (11), ..., F (15) Pro odlišení - začínají 0x.
18
Číselné soustavy - příklady
01101 je v desítkové soustavě 577 0b1101 je v desítkové soustavě 13 1101 je normální desítkové číslo 1 101 ? Co je 1101 v šestnáctkové soustavě?
19
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
20
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 !
21
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
22
Obsah proměnné Skalární veličina, tedy číslo nebo řetězec $pi = -3.14
$pozdrav = "Dobrý den" Řetězec je v uvozovkách !
23
Typy čísel Integer (celé číslo) Floating point (racionální číslo)
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.
24
Typy čísel Floating point (tzv. reálné číslo)
čísla s desetinnou tečkou výsledky aritmetických operací s necelým výsledkem odmocniny (2), další iracionální čísla () Zaokrouhlování !POZOR!
25
Numerické operátory ** mocnina unární minus obracení znaménka
* / % násobení, dělení, zbytek + - sčítání, násobení Červená čísla vyjadřují přednosti (precedence). Chceme-li to jinak, použijeme závorky 3 + 5 * 4 je něco jiného než (3 + 5) * 4
26
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;
27
Ř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" písmenka, číslice, i řídící znaky Uvozovací znaky (delimiters) = většinou uvozovky
28
Ř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"; hradu $koncovka = "em"; $kmen = "hrad"; $tvar = $kmen . $koncovka"; print "$tvar\n"; print "Dvakrát pět je ".2*5.".\n"; Dvakrát pět je 10.
29
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
30
Standardní vstup Diamantový operátor přečte jednu řádku ze vstupu
$vstup = <STDIN>; 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é
31
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éž
32
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.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.