Programování v Pascalu Přednáška 7

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování funkcí v Excelu
Programování v Pascalu
Algoritmizace od algoritmu k Pascalu.
Vnitřní řazení v poli (in sito)
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Programování v Pascalu Přednáška 8
Programování v Pascalu Přednáška 4
Programování v Pascalu Přednáška 2
Programování v Pascalu Přednáška 10 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 6
Programování v Pascalu Přednáška 3
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Konstanty jsou datové objekty jejich hodnoty nelze v programu měnit Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA = “Zadej.
Algoritmizace a programování Datové typy v Delphi - 05
Algoritmizace a programování Podprogramy v Delphi - 10
Materiály k přednášce Úvod do programování Ondřej Čepek.
Základy Visual Basicu.
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
Informatika I 3. přednáška
Procedury a funkce Základní charakteristika a použití v programu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_18 Digitální učební materiál Sada: Úvod do programování.
Podmienený príkaz. Kĺúčové slová  Pro podmínky se v Pascalu používají klíčové příkazy IF, THEN a ELSE.  Také se jim říká „príkaz vetvenia"..  Příkaz.
Datové typy a práce s nimi
Úvod do Pascalu. Co je Pascal? vyšší programovací jazyk poskytuje prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou.
Počítače a programování 1 8.přednáška. Obsah přednášky Řetězce - deklarace a vytvoření Základní metody pro práci s řetezci Znaky - třída Character Základní.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – OPAKOVANÝM VÝBĚREM NEJVĚTŠÍHO PRVKU (SELECTSORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – PŘÍMOU VÝMĚNOU (BUBBLESORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko, Adámkova.
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Konstanty u jsou datové objekty u jejich hodnoty nelze v programu měnit u Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA.
VISUAL BASIC PRALG.
Programovací jazyk PASCAL
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Objektově orientované programování - cvičení 1
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
Začínáme s Pascalem 1. kapitola. Základní pravidla a pojmy identifikátor = to je jméno jakéhokoliv objektu, který si ve vašem programu sami vytvoříte.
6. Typ záznam Strukturovaný datový typ - znamená spojení několika elementů stejného nebo různých typů do jedné proměnné. Např. pole je strukturovaný datový.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ PROCEDURY S PARAMETRY – NEJBLIŽŠÍ VYŠŠÍ A NIŽŠÍ ČÍSLO Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko,
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
doc. RNDr. Zdeněk Botek, CSc.
Pascal – if Mgr. Lenka Švancarová.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
4. Typ pole 4.1 Jednorozměrná pole
Pascal – strukturované příkazy
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Řetězce String. Co je to řetězec Jako řetězec označujeme pojmenovanou skupinu libovolných znaků Deklarujeme jej pomocí příkazu Délka řetězce není v tomto.
doc. RNDr. Zdeněk Botek, CSc.
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
Cvičení 2 Podmíněné příkazy, cykly. Podmíněné příkazy Podmínka – jakýkoliv logický výraz ( a=1,……..) ( a=1,……..) Příkaz – vlastní instrukce, která se.
Cvičení 3-4 Procedury, funkce,řetězce. Procedury Procedura Procedura Procedura je podprogram, který mění stav programu (změnou stavu proměnných nebo změnou.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ CYKLUS S PŘEDEM DANÝM POČTEM OPAKOVÁNÍ – SOUČIN POMOCÍ SOUČTU Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise,
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Algoritmizace a programování
Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
program TextovySoubor;
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Programování v Pascalu Přednáška 7 RNDr. Hana Havelková

Řetězce Deklarace Deklarovaná a skutečná délka řetězce Přístup k jednotlivým znakům Porovnávání řetězců Spojování řetězců Typové konstanty Funkce a procedury pro práci s řetězci Řetězce jako parametry procedur a funkcí

Deklarace Reprezentace proměnné typu string [ délka ] délka 0 -255 znaků Reprezentace proměnné typu string jednorozměrné pole znaků indexované od 1 do N aktuální (skutečná) délka uloženého řetězce je zaznamenána v bytu s indexem 0 (formálně je obsah toho bytu typu char)

Příklady type TJmeno = string [20]; TNadpis = string [60]; TDen = string [2]; TPredmet = string [3]; var jmeno, prijmeni : TJmeno; predmet : TPredmet; veta : string; zahlavi, zapati : TNadpis ;

Přístup k jednotlivým znakům pomocí indexu var S : string[10] ; přiřadíme S := 'Dobrý den'; potom S[1] = 'D' , S[2] = 'o', …, S[9] = 'n' skutečná délka S je 9 S[0] obsahuje znak s kódem 9

Náhrada všech y, i podtržítkem uses Crt; var veta : string; i : byte; begin ClrScr; WriteLn ('Zadej větu :'); ReadLn (veta); for i := 1 to Length(veta) do if veta[i] in ['i','í', 'I','y','ý','Y'] then veta [i] := '_'; WriteLn ('Procvic si psani i – y '); WriteLn (veta); ReadLn; end.

Uspořádání řetězců lexikografické dle kódování znaků ‘4’ < ‘Z’ < ‘f’ < ‘fa’ < ‘fb’ < ‘g’ < ‘č’ < ‘á’ je možné používat relační operátory =, <, >, <=, >=, <> 'Novák' < 'Novák ' < 'Nováková'

Typové konstanty const NADPIS : string = 'Programování I' ; AUTOR : string [20] = 'Jan Soukup'; VERZE : string [3] = '1.0';

Kontrola platného identifikátoru const PlatneZnaky : set of char = ['_', 'A'..'Z', 'a'..'z']; Cislice : set of char = ['0'..'9']; var id : string; i, delka : byte; Chyba : boolean; begin Chyba := false; Write('Zadej identifikator: ') ; ReadLn(id); delka := Length(id); if (delka = 0) or not (id[1] in PlatneZnaky) then Chyba := true else for i := 2 to delka do if not ((id[i] in Cislice) or (id[i] in PlatneZnaky)) then begin Chyba := true; break; end; if Chyba then WriteLn('Chyba!') else WriteLn('OK'); ReadLn; end.

Počet cifer čísla zadaného jako řetězec s kontrolou platnosti čísla var cislo : string; n : longint; kod, cifry : integer; begin Write('Zadej cislo: '); ReadLn(cislo); cifry := Length(cislo); if (cislo[1]='-') or (cislo[1]='+') then begin Dec(cifry); cislo := Copy (cislo,2,cifry); {vypustime z retezce znamenko} end; Val (cislo, n, kod) ; {prevedeni na cislo} if kod > 0 then WriteLn ('Neplatne cislo') else WriteLn('Pocet cifer je ', cifry); ReadLn end.

Zjištění pohlaví dle křestního jména const vyjimka1 : string = 'Rut'; vyjimka2 : string = 'Ester'; vyjimka3 : string = 'Miriam'; var jmeno : string; delka : byte; vysledek : string[4]; posledni_znak : char; begin Write('Zadej krestni jmeno: '); ReadLn(jmeno); if (jmeno = vyjimka1) or (jmeno = vyjimka2) or (jmeno = vyjimka3) then vysledek := 'zena' else begin delka := Length(jmeno); posledni_znak := jmeno[delka]; if (posledni_znak = 'a') or (posledni_znak = 'e') then vysledek := 'zena' else vysledek := 'muz'; end; WriteLn('Pohlavi: ', vysledek); ReadLn; end.

Načtení dlouhého čísla type Cislo = array [1..100] of byte; var C : Cislo; {C[1]…cifra v řádu jednotek} PC : byte; {počet cifer} S : string [100]; i : integer; begin ReadLn(S); PC := 0; for i := Length(S) downto 1 do begin inc (PC); C[PC] := ord(S[i]) - ord('0') ; end; …. end.

Standardní rutiny pro práci s řetězci Length(S) aktuální délka řetězce Concat(S1, S2, …, Sn) spojení řetězců za sebe (stejné jako pomocí operátoru +) Copy(S, Index, Pocet) kopírování části řetězce S dané délky počínaje od daného indexu Delete(S, Index, Pocet) zrušení části řetězce S dané délky počínaje od daného indexu Insert(Co, Kam, Index) do řetězce Kam vloží Co na pozici daného indexu Pos(Co, Kde) pozice prvního výskytu podřetězce Co v řetězci Kde (0 pokud není obsažen)

Řetězec jako parametr procedur a funkcí vstupní parametr (volání hodnotou) je-li formální parametr typu string bez udaného počtu znaků, může být skutečným parametrem string bez udaného počtu znaků i string[pocet_znaku] je-li formální parametr pojmenovaného typu string [pocet_znaku], může být skutečným parametrem string bez udaného počtu znaků i string[jiny_pocet_znaku] výstupní parametr (volání odkazem) používáme pokud chceme načíst řetězce v podprogramu chceme změnit hodnoty řetězce chceme výsledek výpočtů podprogramu uložit do řetězce u formálního parametru musíme použít var formální a skutečný parametr by měly být shodné typy nebo skutečný parametr může být typ string a formální pojmenovaný podtyp typu string

Funkce monogram function Monogram (jm: string):string; var predchozi, aktualni : char; mono : string; i : byte; begin mono := ''; {prázdný řetězec} predchozi := ' '; {mezera} for i:=1 to Length(jm) do begin aktualni := jm[i]; if (predchozi = ' ') and (aktualni <> ' ') then mono := mono + UpCase(aktualni); predchozi := aktualni; end; Monogram := mono;

Funkce Palindrom (1) function Palindrom(text : string) : boolean; var i, delka : byte; odpoved : boolean; {pomocna vnitrni funkce} function SmazMezery (text : string): string; vysledek : string; i : byte; znak : char; begin vysledek := ''; for i := 1 to Length(text) do begin znak := text[i]; if znak <> ' ' then vysledek := vysledek + znak; end; SmazMezery := vysledek;

Funkce Palindrom (2) begin odpoved := true; text := SmazMezery(text); delka := Length(text); for i:=1 to delka div 2 do if text[i] <> text[delka-i+1] then begin odpoved := false; break; end; Palindrom := odpoved;

Procedura Jmeno {upravi jmeno tak, ze první pismeno je velke, ostatní mala} procedure Jmeno(var jm : string); var i : byte; znak : char; begin jm[1] := UpCase(jm[1]); for i := 2 to Length(jm) do begin znak := jm[i]; if znak in ['A'..'Z'] then jm[i] := chr(ord(znak) + ord('a') - ord('A')); end;