Skillnad mellan versioner av "Kap 1 Olika programmeringsmiljöer"

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|Kursen Pro...')
 
m
Rad 11: Rad 11:
 
<br>
 
<br>
  
= <b><span style="color:#931136">1.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
+
= <b><span style="color:#931136">1.1 &nbsp; Om inbyggda system</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
 
<big><big>
 
<big><big>
 
:Gå igenom texten (PDF 7 sidor)<span>:</span>
 
:Gå igenom texten (PDF 7 sidor)<span>:</span>
<math> \qquad\;\;\, </math><div class="smallBox">[[Media: Vad_OOP.pdf|<b><span style="color:blue">Vad är objektorienterad programmering?</span></b>]]</div><math> \qquad\;\;\, </math>
+
<math> \qquad\;\;\, </math><div class="smallBox">[[Media: Om_Inb_Syst.pdf|<b><span style="color:blue">Om inbyggda system</span></b>]]</div><math> \qquad\;\;\, </math>
 
</big></big>
 
</big></big>
</div>
 
 
 
= <b><span style="color:#931136">1.2 &nbsp; Klassbegreppet</span></b> =
 
<div class="ovnC">
 
=== <b><span style="color:#931136">En klass som ett C# program</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Firsta.jpg]]</div>
 
 
 
<big><big>Varför står metoden <b><span style="color:red">Main()</span></b> i en <b><span style="color:red">klass</span></b>, nämligen <b><span style="color:blue">class First</span></b> &nbsp;?
 
 
Eftersom koden ska vara ett <b><span style="color:red">C# program</span></b>, nämligen:
 
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: CsPrograma.jpg]]</div>
 
 
Koden ovan (<b><span style="color:blue">class First</span></b>) är det det enklast tänkbara <b><span style="color:red">C# programmet</span></b>.
 
 
Metoden <b><span style="color:red">Main()</span></b> kan inte skrivas utanför klassen.
 
</big></big>
 
</div>
 
 
 
= <b><span style="color:#931136">Definition 1 av klass</span></b> =
 
<div class="ovnE">
 
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: VadKlass.jpg]]</div>
 
 
 
<big><big><b><span style="color:red">Generell</span></b> är en klass därför att den beskriver en <b>kategori</b> av saker och ting:
 
 
* &nbsp; &nbsp; ett <b>begrepp</b>
 
 
* &nbsp; &nbsp; en <b>idé</b>
 
 
* &nbsp; &nbsp; en <b>mall</b>.
 
 
Enligt klassens mall kan sedan <b>objekt</b> av denna klass skapas. Medan klassen
 
 
är abstrakt, är objekten verkliga eller virtuella saker och ting i den reala världen.
 
 
<b><span style="color:red">Modulär</span></b> är en klass därför att den kodas som en separat och namngiven modul
 
 
så att den kan användas av vilka andra program som helst. Liksom en Legobit
 
 
för att kunna konstruera andra program. Principen heter <b>modularisering</b>.
 
 
<b><span style="color:red">Klass och objekt är två olika begrepp.</span></b>
 
 
<b>Exempel:</b>
 
 
Pepparkakor är <b><span style="color:red">objekt.</span></b>
 
 
Pepparkaksformen är <b><span style="color:red">klassen.</span></b>
 
</big></big>
 
</div>
 
 
 
= <b><span style="color:#931136">Definition 2 av klass</span></b> =
 
<div class="ovnA">
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Def_2_klass.jpg]]</div>
 
 
 
<big><big>Ett begrepp kan ha olika definitioner om de inte motsäger varandra och belyser olika
 
 
aspekter av begreppet. Sammanhanget i vilket begreppet används avgör betydelsen.</big></big>
 
</div>
 
 
 
= <b><span style="color:#931136">1.3 &nbsp; Modulariseringsprocessen</span></b> =
 
<div class="ovnE">
 
=== <b><span style="color:#931136">Utan modularisering: all kod i Main()</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: All_in_Main.jpg]]</div>
 
</div>
 
 
 
= <b><span style="color:#931136">Modularisering på metodnivå</span></b> =
 
<div class="ovnC">
 
<big><big>
 
Modulariseringens <b>1:a steg: <span style="color:red">Logiken</span></b> flyttas till en <b><span style="color:red">ny metod Ok()</span></b> utanför Main().
 
</big></big>
 
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Method_Module.jpg]]</div>
 
 
 
<big><big>Klassen <b>Method</b> har två metoder: <b>Main()</b> och <b>Ok()</b>: Main() anropar Ok(). Vid anrop:
 
 
skickas den aktuella parametern input till den formella parametern passwd och retur-
 
 
värdet av typ <b>bool</b> returneras via Ok() till Main() och används i if-satsens samt loopens villkor.
 
</big></big>
 
</div>
 
 
 
= <b><span style="color:#931136">Modularisering på klassnivå</span></b> =
 
<div class="ovnA">
 
<big><big>
 
Modulariseringens <b>2:a steg:</b> Metoden Ok() flyttas till en annan klass = <b>ny datatyp</b>.
 
 
I Main() skapas ett <b><span style="color:red">objekt</span></b> av den nya datatypen Password och
 
 
<b><span style="color:red">objektets metod</span></b> Ok() anropas i Main().
 
</big></big>
 
 
=== <b><span style="color:#931136">Klassen Password</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Password.jpg]]</div>
 
 
 
<big><big>
 
Klasserna <b><span style="color:#931136">Password</span></b> och <b><span style="color:#931136">PasswordUse</span></b> utgör ETT <b><span style="color:red">objektorienterat</span></b> program.
 
</big></big>
 
 
=== <b><span style="color:#931136">Klassen PasswordUse</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: PasswordUse.jpg]]</div>
 
 
 
=== <b><span style="color:#931136">Ett körexempel</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: PasswordUseKorexa.jpg]]</div>
 
 
</div>
 
</div>
  

Versionen från 5 februari 2023 kl. 15.03

       Kursens presentation          Innehåll & struktur          Dagens genomgång          Dagens övningar          Nästa lektion  >>      


1.1   Om inbyggda system

Gå igenom texten (PDF 7 sidor):
\( \qquad\;\;\, \)\( \qquad\;\;\, \)










Copyright © 2023 TechPages AB. All Rights Reserved.