Skillnad mellan versioner av "Övningar 11 (Algoritmer)"

Från Mathonline
Hoppa till: navigering, sök
(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 11...')
 
m
 
(55 mellanliggande versioner av samma användare visas inte)
Rad 14: Rad 14:
 
<div class="border-divblue">
 
<div class="border-divblue">
 
<big>
 
<big>
<b>Fortsätt att arbeta med<span>:</span>
+
<b>Fortsätt att arbeta inför tentan (17/11) 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#Instuderingsfr.C3.A5gor_I_om_kap_1-3|<span style="color:blue">Instuderinsfrågorna I om kap 1-3</span>]]
Rekommendation: Öppna ett textdokument.
+
  
Skriv ned dina svar. Ingen inlämning krävs.
+
::::::[[Instuderingsfrågor#Instuderingsfr.C3.A5gor_II_om_kap_4-5|<span style="color:blue">II om kap 4-5</span>]]</div> </b> <math> \quad </math>
 +
Skriv dina svar i ett textdokument.
 +
 
 +
Ingen inlämning krävs.
  
 
Arbeta gärna gruppvis.
 
Arbeta gärna gruppvis.
Rad 26: Rad 28:
 
<div class="ovnE">
 
<div class="ovnE">
 
<big>
 
<big>
* &nbsp; 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.
+
* &nbsp; Mata in programmen [[Kap_4_Tillämpningar_(forts.)#Programmet_WriteReadFile|<b><span style="color:blue">WriteReadFile</span></b>]] och [[Kap_4_Tillämpningar_(forts.)#Programmet_AppendFile|<b><span style="color:blue">Programmet AppendFile</span></b>]]. Kompilera och kör.
* &nbsp; 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.
+
* &nbsp; Mata in klassen [[Kap_4_Tillämpningar_(forts.)#Klassen_RandPasswd|<b><span style="color:blue">RandPasswd</span></b>]] och programmet [[Kap_4_Tillämpningar_(forts.)#Programmet_RandPasswdTest|<b><span style="color:blue">RandPasswdTest</span></b>]]. Kompilera och kör.
* &nbsp; 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.
+
* &nbsp; Mata in programmet [[Kap_4_Tillämpningar_(forts.)#Programmet_EncryptFile|<b><span style="color:blue">EncryptFile</span></b>]] och alla därtill hörande klasser (3 st). Kompilera och kör.
* &nbsp; 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.
+
* &nbsp; Läs om <b><span style="color:red">Filhantering</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 141-145.
* &nbsp; 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.
+
* &nbsp; Läs om <b><span style="color:red">Slumplösenord</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 146-149.
* &nbsp; I metoden Encrypt(), klassen EncryptStr, finns satsen: ch = (char)(ch + n); Undersök följande fråga:
+
* &nbsp; Läs om <b><span style="color:red">Kryptering av filer</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 150-154.
&nbsp; &nbsp; &nbsp; &nbsp; Varför måste (ch + n) explicit konverteras till char, när variabeln ch redan är deklarerad till char?
+
----
* &nbsp; Lös uppgifterna nedan:
+
* &nbsp; &nbsp; Läs <b><span style="color:red">Vad är en databas?</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 158.
 +
 
 +
* &nbsp; &nbsp; Läs om <b><span style="color:red">Olika databasmodeller</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 159.
 +
 
 +
* &nbsp; &nbsp; Läs om <b><span style="color:red">Relationsdatabaser</span></b> i [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 160-167.
 
</big>
 
</big>
 
</div>
 
</div>
Rad 39: Rad 45:
  
 
<div class="ovnC">
 
<div class="ovnC">
<big>
+
==== <b><span style="color:#931136">Lös uppgifterna 4.1 <math> - </math> 4.5 nedan. Projekten 4.6 & 4.7 är frivilliga.</span></b> ====
<big><b><span style="color:red">Kryptering av sträng med klassen String</span></b></big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn 4_1.jpg]]</div>
  
Vidareutveckla krypteringsalgoritmen i [[Kap_4_Tillämpningar#Klassen_EncryptStr|<b><span style="color:blue">Klassen EncryptStr</span></b>]].
 
* &nbsp; Modifiera klassen <b>EncryptStr</b> till en ny klass <b>EncryptStr_Fkt</b> så här:
 
* &nbsp; Modifiera metoden <b>Encrypt(String t, int n)</b> till <b>Encrypt(String t, int k, int m)</b>.
 
* &nbsp; Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs:
 
* &nbsp; Ersätt satsen <b>ch = (char)(ch + n);</b> med <b>ch = (char)(k*ch + m);</b>
 
* &nbsp; Lägg till en ny metod <b>Decrypt(String t, int k, int m)</b> som dekrypterar tecknen med
 
&nbsp; &nbsp; &nbsp; &nbsp; den inversa funktionen y = (x - m) / k dvs: <b>ch = (char)((ch - m)/k);</b>
 
* &nbsp; Anropa båda metoderna från Main() genom att skicka värdena 2 till k och -5 till m.
 
&nbsp; &nbsp; &nbsp; &nbsp; Dvs krypteringsfunktionen blir y = 2 x - 5 och dekrypteringsfunktionen y = (x + 5) / 2
 
</big>
 
</div>
 
  
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn 4_2.jpg]]</div>
<div class="ovnA">
+
<big><big>
<big>
+
&nbsp; Jämför dina lösningar med lösningsförslagen i slutet av [http://mathonline.se:1802/Boken%20Alg%20Datastr%20Design.pdf <b><span style="color:blue">kursboken</span></b>], sid 245-248.
<big><b><span style="color:red">Kryptering av text med arrayen char[ ]</span></b></big>
+
</big></big>
 
+
Vidareutveckla krypteringsalgoritmen i [[Kap_4_Tillämpningar#Klassen_EncryptChar|<b><span style="color:blue">Klassen EncryptChar</span></b>]].
+
* &nbsp; Modifiera klassen <b>EncryptChar</b> till en ny klass <b>EncryptChar_Fkt</b> så här:
+
* &nbsp; Modifiera metoden <b>Encrypt(char[ ] t, int n)</b> till <b>Encrypt(char[ ] t, int k, int m)</b>.
+
* &nbsp; Definiera krypteringen av tecknen med en linjär funktion y = k x + m, dvs:
+
* &nbsp; Ersätt satsen <b>t[i] = (char) (t[i] + n);</b> med <b>t[i] = (char) (k*t[i] + m);</b>
+
* &nbsp; Lägg till en ny metod <b>Decrypt(char[ ] t, int k, int m)</b> som dekrypterar tecknen med
+
&nbsp; &nbsp; &nbsp; &nbsp; den inversa funktionen y = (x - m) / k dvs: <b>t[i] = (char) ((t[i] - m)/k);</b>
+
* &nbsp; Anropa båda metoderna från Main() genom att skicka värdena 3 till k och -40 till m.
+
&nbsp; &nbsp; &nbsp; &nbsp; Dvs krypteringsfunktionen blir y = 3 x - 40 och dekrypteringsfunktionen y = (x + 40) / 3
+
</big>
+
 
</div>
 
</div>
  

Nuvarande version från 7 november 2022 kl. 13.21

        <<  Agenda          Kursens planering          Genomgång          Dagens övningar          Nästa lektion  >>      


Dagens övningar

Fortsätt att arbeta inför tentan (17/11) med:

\( \quad \) \( \quad \)

Skriv dina svar i ett textdokument.

Ingen inlämning krävs.

Arbeta gärna gruppvis.



  •     Läs Vad är en databas? i kursboken, sid 158.
  •     Läs om Olika databasmodeller i kursboken, sid 159.
  •     Läs om Relationsdatabaser i kursboken, sid 160-167.


Lös uppgifterna 4.1 \( - \) 4.5 nedan. Projekten 4.6 & 4.7 är frivilliga.

Ovn 4 1.jpg


Ovn 4 2.jpg

  Jämför dina lösningar med lösningsförslagen i slutet av kursboken, sid 245-248.








Copyright © 2022 TechPages AB. All Rights Reserved.