Övningar 10 (Algoritmer)
<< Agenda | Kursens planering | Genomgång | Dagens övningar | Nästa lektion >> |
Dagens övningar
Fortsätt att arbeta med:
\( \quad \) \( \quad \)Rekommendation: Öppna ett textdokument.
Skriv ned dina svar. Ingen inlämning krävs.
Arbeta gärna gruppvis.
- Mata in klassen EncryptStr och programmet EncryptStrTest. Kompilera och kör.
- Mata in klassen EncryptChar och programmet EncryptCharTest. Kompilera och kör.
- Läs om Kryptering av strängar i kursboken, sid 135-137.
- Läs om Kryptering av text, teckenvis i kursboken, sid 138-140.
- Läs om Referens som parameter och returvärde i kursboken, sid 135.
- I metoden Encrypt(), klassen EncryptStr, finns satsen: ch = (char)(ch + n); Undersök följande fråga:
Varför måste (ch + n) explicit konverteras till char, när variabeln ch redan är deklarerad till char?
- Lös uppgifterna nedan:
Kryptering av sträng med klassen String
Vidareutveckla krypteringsalgoritmen i Klassen EncryptStr.
- Modifiera klassen EncryptStr till en ny klass EncryptStr_Fkt så här:
- Modifiera metoden Encrypt(String t, int n) till Encrypt(String t, int k, int m).
- Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs:
- Ersätt satsen ch = (char)(ch + n); med ch = (char)(k*ch + m);
- Lägg till en ny metod Decrypt(String t, int k, int m) som dekrypterar tecknen med
den inversa funktionen y = (x - m) / k dvs: ch = (char)((ch - m)/k);
- Anropa båda metoderna från Main() genom att skicka värdena 2 till k och -5 till m.
Dvs krypteringsfunktionen blir y = 2 x - 5 och dekrypteringsfunktionen y = (x + 5) / 2
Kryptering av text med arrayen char[ ]
Vidareutveckla krypteringsalgoritmen i Klassen EncryptChar.
- Modifiera klassen EncryptChar till en ny klass EncryptChar_Fkt så här:
- Modifiera metoden Encrypt(char[ ] t, int n) till Encrypt(char[ ] t, int k, int m).
- Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs:
- Ersätt satsen t[i] = (char) (t[i] + n); med t[i] = (char) (k*t[i] + m);
- Lägg till en ny metod Decrypt(char[ ] t, int k, int m) som dekrypterar tecknen med
den inversa funktionen y = (x - m) / k dvs: t[i] = (char) ((t[i] - m)/k);
- Anropa båda metoderna från Main() genom att skicka värdena 3 till k och -40 till m.
Dvs krypteringsfunktionen blir y = 3 x - 40 och dekrypteringsfunktionen y = (x + 40) / 3
Copyright © 2022 TechPages AB. All Rights Reserved.