|
|
(32 mellanliggande versioner av samma användare visas inte) |
Rad 2: |
Rad 2: |
| {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | | {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" |
| | style="border-bottom:1px solid #797979" width="5px" | | | | style="border-bottom:1px solid #797979" width="5px" | |
− | {{Not selected tab|[[Kursen Programmering av inbyggda system|Kursens presentation]]}} | + | {{Not selected tab|[[Lektion 1 (Inbyggd)| << Agenda]]}} |
− | {{Not selected tab|[[Media: Innehall_Inbyggda.pdf|Innehåll & struktur]]}} | + | {{Not selected tab|[[Programmering av inbyggda system: Innehåll och struktur|Innehåll & struktur]]}} |
− | {{Selected tab|[[Kap 1 Introduktion till inbyggda system|Dagens genomgång]]}} | + | {{Selected tab|[[Kap 1 Olika programmeringsmiljöer|Dagens genomgång]]}} |
| {{Not selected tab|[[Övningar 1 (Inbyggd)|Dagens övningar]]}} | | {{Not selected tab|[[Övningar 1 (Inbyggd)|Dagens övningar]]}} |
| {{Not selected tab|[[Lektion 2 (Inbyggd)|Nästa lektion >> ]]}} | | {{Not selected tab|[[Lektion 2 (Inbyggd)|Nästa lektion >> ]]}} |
| | style="border-bottom:1px solid #797979" width="100%"| | | | style="border-bottom:1px solid #797979" width="100%"| |
| |} | | |} |
| + | |
| <br> | | <br> |
| | | |
− | = <b><span style="color:#931136">1.1 Vad är objektorienterad programmering?</span></b> = | + | = <b><span style="color:#931136">1.1 Om C/C++</span></b> = |
− | <div class="ovnE">
| + | |
− | <big><big>
| + | |
− | :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>
| + | |
− | </big></big>
| + | |
− | </div>
| + | |
| | | |
| + | <br> |
| | | |
− | = <b><span style="color:#931136">1.2 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> ?
| |
− |
| |
− | 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 class="ovnE"> |
− | | + | <big><big> |
− | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: VadKlass.jpg]]</div>
| + | :Gå igenom texten<span>:</span> |
− | | + | <div class="smallBox">[[Media: Progr_Hist_Unicodea.pdf|<b><span style="color:blue">Ur Programmerigens historia</span></b>]]</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: | + | |
− | | + | |
− | * ett <b>begrepp</b>
| + | |
− | | + | |
− | * en <b>idé</b>
| + | |
− | | + | |
− | * 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> | | </big></big> |
| </div> | | </div> |
| | | |
| | | |
− | = <b><span style="color:#931136">Definition 2 av klass</span></b> = | + | = <b><span style="color:#931136">Om Python</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 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"> | | <div class="ovnC"> |
− | <big><big>
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Om_Python.jpg]]</div> |
− | 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> | | </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>
| |
| | | |
| | | |
Rad 154: |
Rad 49: |
| | | |
| | | |
− | [[Matte:Copyrights|Copyright]] © 2023 TechPages AB. All Rights Reserved. | + | [[Matte:Copyrights|Copyright]] © 2024 <b><span style="color:blue">Lieta AB</span></b>. All Rights Reserved. |