Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Práce s textovými řetězci
2
Spojování řetězců (konkatenace)
Operátor & Vysledek = “úloha má jedno řešení: ” & x1
3
Délka textového řetězce
Len(řetězec) Vrátí délku textového řetězce v počtu znaků. Příklad retezec = InputBox("zadej retezec") delka = Len(retezec) i = MsgBox(delka, , "delka retezce je")
4
Hledání v řetězci Vysledek = InStr([start],prohledávaný,hledaný)
Vrací pozici prvního výskytu textového řetězce hledaný v textovém řetězci prohledávaný, nebo 0, není-li nalezen. Nepovinný číselný parametr start umožňuje začít prohledávání od dané pozice.
5
Příklady pozice1 = InStr("mistr střelmistr", "mistr")
MsgBox (pozice1) MsgBox (pozice2) MsgBox (pozice3)
6
Ořezání mezer Vysledek = Trim(řetězec)
Odstraní z textového řetězce všechny úvodní a koncové mezery. Příklad retezec = (" blb ") MsgBox (Len(retezec)) MsgBox (Len(Trim(retezec)))
7
Získání části řetězce Vysledek = Left(řetězec,n)
Vrátí z řetězce n znaků zleva. Vysledek = Right(řetězec,n) Vrátí z řetězce n znaků zprava. Vysledek = Mid(řetězec, začátek,délka) Vrátí z textového řetězce od zadané pozice určitý počet znaků.
8
Příklad retezec = ("Byl pozdní večer první máj")
prvni = Left(retezec, 3) druhy = Right(retezec, 3) treti = Mid(retezec, 3, 3) cast = "večer" ctvrty = Mid(retezec, InStr(retezec, cast), Len(cast)) MsgBox (prvni & vbCrLf & druhy & vbCrLf & treti & vbCrLf & ctvrty)
9
Převod na velká a malá písmena
Vysledek =LCase(řetězec) Převede textový řetězec na malá písmena. vysledek=UCase(řetězec) Převede textový řetězec na velká písmena. Příklad mala = LCase("ABCD") velka = UCase("abCd") MsgBox (mala & vbCrLf & velka)
10
Převod mezi znaky a jejich ASCII hodnotou
Vysledek = Asc(znak) Vrátí ASCII hodnotu znaku. Vysledek = Chr(číslo) Vrátí znak odpovídající jeho ASCII hodnotě Příklady MsgBox (Asc("a")) MsgBox (Chr(99)) MsgBox (Asc("a") - Asc("A")) MsgBox (Chr(Asc("a")))
11
Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3
B C D E F G H I J K L M N O P Q R S T U V W X Y Z
12
Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3
Tento text bude zasifrovan Cezarovskou sifrou s klicem k rovnym 3. Whqwr whaw exgh cdvlhurydq Fhcduryvnrx vlivrx v nofhp a uryqbp 3. ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC
13
Příklad retezec = InputBox("Zadej řetězec pro šifrování", "Cézarova šifra") klic = InputBox("Zadej klíč", "Cézarova šifra") Vlastní šifrování Cézarovskou šifrou blb = MsgBox(vysledek, , "Cézarovská šifra")
14
Vlastní šifrování Cézarovskou šifrou
delka = Len(retezec) vysledek = "" For i = 1 To delka znak = Mid(retezec, i, 1) Zašifrování 1 znaku do proměnné novy_znak vysledek = vysledek & novy_znak Next i
15
Zašifrování 1 znaku do proměnné novy_znak
kod = Asc(znak) If (kod >= Asc("a")) And (kod <= Asc("z")) Then Pokud je to malé anglické písmeno, šifruji Else novy_znak = znak End If
16
Pokud je to malé anglické písmeno, šifruji
novy_kod = kod + klic If novy_kod > Asc("z") Then novy_kod = novy_kod - 26 End If novy_znak = Chr(novy_kod)
17
Celý program retezec = InputBox("Zadej řetězec pro šifrování", "Cézarova šifra") klic = InputBox("Zadej klíč", "Cézarova šifra") delka = Len(retezec) vysledek = "" For i = 1 To delka znak = Mid(retezec, i, 1) kod = Asc(znak) If (kod >= Asc("a")) And (kod <= Asc("z")) Then novy_kod = kod + klic If novy_kod > Asc("z") Then novy_kod = novy_kod - 26 End If novy_znak = Chr(novy_kod) Else novy_znak = znak vysledek = vysledek & novy_znak Next i blb = MsgBox(vysledek, , "Cézarovská šifra")
18
Vigenérovská šifra Klíč: posloupnost (konečná, ne moc dlouhá) hodnot K1, K2, …, Km z intervalu 0..n-1 (m délka klíče). Šifrování f(a1) = a1 + K1 mod n f(a2) = a2 + K2 mod n … f(am) = am + Km mod n f(am+1) = am+1 + K1 mod n ….
19
Praktická realizace Klíč = heslo
Slovo, nebo krátká posloupnost znaků v abecedě.
20
Vigenérovský čtverec A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
21
Příklad Text: rubikon prekrocime zitra rano Heslo: cezar
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Text: rubikon prekrocime zitra rano Heslo: cezar rubikon prekrocime cezarce zarcezarce tyaibqr orvmvnczoi zitra rano zarce zarc yikte qaeq
22
Úkol Upravte program tak, aby šifroval Vigenérovskou šifrou s heslem, které bude zadávat uživatel Jednodušší varianta: heslo bude mít pevnou délku (například 5) Ještě jednodušší varianta: I samotné heslo bude pevné (například cezar)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.