Skillnad mellan versioner av "Övningar 10 (Algoritmer)"
Taifun (Diskussion | bidrag) (Skapade sidan med '__NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" | {{Not selected tab|Lektion 10...') |
Taifun (Diskussion | bidrag) m |
||
(10 mellanliggande versioner av samma användare visas inte) | |||
Rad 14: | Rad 14: | ||
<div class="border-divblue"> | <div class="border-divblue"> | ||
<big> | <big> | ||
− | <b> | + | <b>Fortsätt att arbeta med<span>:</span> |
<math> \quad </math><div class="smallBox">[[Instuderingsfrågor|<span style="color:blue">Instuderinsfrågorna inför tentan</span>]]</div> <math> \quad </math></b> | <math> \quad </math><div class="smallBox">[[Instuderingsfrågor|<span style="color:blue">Instuderinsfrågorna inför tentan</span>]]</div> <math> \quad </math></b> | ||
Rekommendation: Öppna ett textdokument. | Rekommendation: Öppna ett textdokument. | ||
Rad 26: | Rad 26: | ||
<div class="ovnE"> | <div class="ovnE"> | ||
<big> | <big> | ||
− | * Mata in | + | * Mata in klassen [[Kap_4_Tillämpningar#Klassen_EncryptStr|<b><span style="color:blue">EncryptStr</span></b>]] och programmet [[Kap_4_Tillämpningar#Programmet_EncryptStrTest|<b><span style="color:blue">EncryptStrTest</span></b>]]. Kompilera och kör. |
− | * Mata in | + | * Mata in klassen [[Kap_4_Tillämpningar#Klassen_EncryptChar|<b><span style="color:blue">EncryptChar</span></b>]] och programmet [[Kap_4_Tillämpningar#Programmet_EncryptCharTest|<b><span style="color:blue">EncryptCharTest</span></b>]]. Kompilera och kör. |
− | * Läs om <b><span style="color:red"> | + | * Läs om <b><span style="color:red">Kryptering av strängar</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 135-137. |
− | * Läs om <b><span style="color:red"> | + | * Läs om <b><span style="color:red">Kryptering av text, teckenvis</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 138-140. |
− | * | + | * Läs om <b><span style="color:red">Referens som parameter och returvärde</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], 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: | ||
</big> | </big> | ||
</div> | </div> | ||
Rad 36: | Rad 39: | ||
<div class="ovnC"> | <div class="ovnC"> | ||
− | < | + | <big> |
+ | <big><b><span style="color:red">Kryptering av sträng med klassen String</span></b></big> | ||
− | + | Vidareutveckla krypteringsalgoritmen i [[Kap_4_Tillämpningar#Klassen_EncryptStr|<b><span style="color:blue">Klassen EncryptStr</span></b>]]. | |
− | < | + | * Modifiera klassen <b>EncryptStr</b> till en ny klass <b>EncryptStr_Fkt</b> så här: |
− | | + | * Modifiera metoden <b>Encrypt(String t, int n)</b> till <b>Encrypt(String t, int k, int m)</b>. |
− | </ | + | * Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs: |
+ | * Ersätt satsen <b>ch = (char)(ch + n);</b> med <b>ch = (char)(k*ch + m);</b> | ||
+ | * Lägg till en ny metod <b>Decrypt(String t, int k, int m)</b> som dekrypterar tecknen med | ||
+ | den inversa funktionen y = (x - m) / k dvs: <b>ch = (char)((ch - m)/k);</b> | ||
+ | * 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 | ||
+ | </big> | ||
</div> | </div> | ||
+ | |||
+ | <div class="ovnA"> | ||
+ | <big> | ||
+ | <big><b><span style="color:red">Kryptering av text med arrayen char[ ]</span></b></big> | ||
+ | |||
+ | Vidareutveckla krypteringsalgoritmen i [[Kap_4_Tillämpningar#Klassen_EncryptChar|<b><span style="color:blue">Klassen EncryptChar</span></b>]]. | ||
+ | * Modifiera klassen <b>EncryptChar</b> till en ny klass <b>EncryptChar_Fkt</b> så här: | ||
+ | * Modifiera metoden <b>Encrypt(char[ ] t, int n)</b> till <b>Encrypt(char[ ] t, int k, int m)</b>. | ||
+ | * Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs: | ||
+ | * Ersätt satsen <b>t[i] = (char) (t[i] + n);</b> med <b>t[i] = (char) (k*t[i] + m);</b> | ||
+ | * Lägg till en ny metod <b>Decrypt(char[ ] t, int k, int m)</b> som dekrypterar tecknen med | ||
+ | den inversa funktionen y = (x - m) / k dvs: <b>t[i] = (char) ((t[i] - m)/k);</b> | ||
+ | * 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 | ||
+ | </big> | ||
+ | </div> | ||
Nuvarande version från 4 november 2022 kl. 13.24
<< 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.