Skillnad mellan versioner av "Övningar 20 (Progr 3)"

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 20...')
 
m
 
(27 mellanliggande versioner av samma användare visas inte)
Rad 5: Rad 5:
 
{{Not selected tab|[[3.5 Kryptering av text, teckenvis|Genomgång]]}}
 
{{Not selected tab|[[3.5 Kryptering av text, teckenvis|Genomgång]]}}
 
{{Selected tab|[[Övningar 20 (Progr 3)|Dagens övningar]]}}
 
{{Selected tab|[[Övningar 20 (Progr 3)|Dagens övningar]]}}
 +
{{Not selected tab|[[Inlämningsuppgifter (Progr 3)|Inlämningsuppgifter]]}}
 
{{Not selected tab|[[Lektion 21 (Progr 3)|Nästa lektion  >> ]]}}
 
{{Not selected tab|[[Lektion 21 (Progr 3)|Nästa lektion  >> ]]}}
 
| style="border-bottom:1px solid #797979"  width="100%"|  
 
| style="border-bottom:1px solid #797979"  width="100%"|  
Rad 13: Rad 14:
 
<div class="ovnE">
 
<div class="ovnE">
 
<big>
 
<big>
−
* &nbsp; Mata in [[3.4_Kryptering_av_strängar#Klassen EncryptStr|<b><span style="color:blue">Klassen EncryptStr</span></b>]]. Kompilera.
+
* &nbsp; Mata in [[3.5_Kryptering_av_text,_teckenvis#Klassen EncryptChar|<b><span style="color:blue">Klassen EncryptChar</span></b>]]. Kompilera.
−
* &nbsp; Mata in [[3.4_Kryptering_av_strängar#Programmet EncryptStrTest|<b><span style="color:blue">Programmet EncryptStrTest</span></b>]]. Kompilera och kör.
+
* &nbsp; Mata in [[3.5_Kryptering_av_text,_teckenvis#Programmet EncryptCharTest|<b><span style="color:blue">Programmet EncryptCharTest</span></b>]]. Kompilera och kör.
−
* &nbsp; Läs om <b><span style="color:red">Kryptering av strängar</span></b> i [http://www.mathonline.se/Progr_3/2%20Boken%20Progr_3_Cs.pdf <b><span style="color:blue">kursboken</span></b>], sid 84-86.
+
* &nbsp; Läs om <b><span style="color:red">Kryptering av text, teckenvis</span></b> i [http://www.mathonline.se/Progr_3/2%20Boken%20Progr_3_Cs.pdf <b><span style="color:blue">kursboken</span></b>], sid 87-89.
−
* &nbsp; Läs om <b><span style="color:red">Referens som parameter och returvärde</span></b> i [http://www.mathonline.se/Progr_3/2%20Boken%20Progr_3_Cs.pdf <b><span style="color:blue">kursboken</span></b>], sid 84.
+
* &nbsp; Lös följande uppgift och lämna in den enligt reglerna nedan.
−
* &nbsp; I metoden Encrypt(), klassen EncryptStr, finns satsen: ch = (char)(ch + n); Undersök följande fråga:
+
−
&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 uppgiften nedan:
+
 
</big>
 
</big>
 
</div>
 
</div>
  
  
 +
= <b><span style="color:#931136">Inlämningsuppgift 3</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
 
<big>
 
<big>
−
Vidareutveckla krypteringsalgoritmen i [[3.4_Kryptering_av_strängar#Klassen EncryptStr|<b><span style="color:blue">Klassen EncryptStr</span></b>]].  
+
<big><b><span style="color:red">Kryptering av text</span></b></big>
−
* &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>.
+
Vidareutveckla krypteringsalgoritmen i [[3.5_Kryptering_av_text,_teckenvis#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; 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; 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(String t, int k, int m)</b> som dekrypterar tecknen med
+
* &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>ch = (char)((ch - m)/k);</b>
+
&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 2 till k och -5 till m.
+
* &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 = 2 x - 5 och dekrypteringsfunktionen y = (x + 5) / 2
+
&nbsp; &nbsp; &nbsp; &nbsp; Dvs krypteringsfunktionen blir y = 3 x - 40 och dekrypteringsfunktionen y = (x + 40) / 3
 
</big>
 
</big>
 
</div>
 
</div>
  
 +
 +
= <b><span style="color:#931136">Regler</span></b> =
 +
<div class="ovnA">
 +
<big>
 +
Inlämningsuppgifterna är obligatoriska för att få betyg i kursen Programmering 3.
 +
 +
* &nbsp; &nbsp; Uppgifterna kan genomföras individuellt eller i grupp à max 3 personer.
 +
* &nbsp; &nbsp; Alla gruppmedlemmar måste vara beredda att förklara koden om de frågas.
 +
: &nbsp; &nbsp; Ange ditt resp. dina gruppmedlemmarnas namn.
 +
* &nbsp; &nbsp; Separera *.cs-filerna innehållande din C#-kod från Visual Studio-projektet.
 +
* &nbsp; &nbsp; Skicka endast *.cs-filerna som bifogade filer via mail till <b><span style="color:blue">taifun.alishenas@lbs.se</span></b>.
 +
* &nbsp; &nbsp; Tillämpa alltid [[God programmeringsstil|<b><span style="color:blue">God programmeringsstil</span></b>]] när du skriver kod.
 +
</big>
 +
</div>
  
  

Nuvarande version från 25 november 2021 kl. 09.53

        <<  Lektion 20          Genomgång          Dagens övningar          Inlämningsuppgifter          Nästa lektion  >>      


Dagens övningar


Inlämningsuppgift 3

Kryptering av text

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


Regler

Inlämningsuppgifterna är obligatoriska för att få betyg i kursen Programmering 3.

  •     Uppgifterna kan genomföras individuellt eller i grupp à max 3 personer.
  •     Alla gruppmedlemmar måste vara beredda att förklara koden om de frågas.
    Ange ditt resp. dina gruppmedlemmarnas namn.
  •     Separera *.cs-filerna innehållande din C#-kod från Visual Studio-projektet.
  •     Skicka endast *.cs-filerna som bifogade filer via mail till taifun.alishenas@lbs.se.
  •     Tillämpa alltid God programmeringsstil när du skriver kod.







Copyright © 2021 TechPages AB. All Rights Reserved.