Skillnad mellan versioner av "Kap 8 Klasser"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(4 mellanliggande versioner av samma användare visas inte)
Rad 6: Rad 6:
 
{{Selected tab|[[Kap 8 Klasser|<span style="font-weight:lighter">Genomgång 21</span>]]}}
 
{{Selected tab|[[Kap 8 Klasser|<span style="font-weight:lighter">Genomgång 21</span>]]}}
 
{{Not selected tab|[[Övningar 21 (C/Cpp 23)|Övningar 21]]}}
 
{{Not selected tab|[[Övningar 21 (C/Cpp 23)|Övningar 21]]}}
{{Not selected tab|[https://sharedfiles.mathonline.se/Systemutv_Inb_Syst_Inneh_Struktur.pdf Innehåll & struktur]}}
+
{{Not selected tab|[[Innehåll_Programmering_2|Innehåll & struktur]]}}
 
<!-- {{Not selected tab|[http://mathonline.se/Planering_Progr_Cpp_ht_23.pdf Planering]}} -->
 
<!-- {{Not selected tab|[http://mathonline.se/Planering_Progr_Cpp_ht_23.pdf Planering]}} -->
 
{{Not selected tab|[[Lektion 22 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 22 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
Rad 12: Rad 12:
 
|}
 
|}
  
 
+
<!--
 
= <b><span style="color:#931136">9.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
 
= <b><span style="color:#931136">9.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
Rad 20: Rad 20:
 
</big></big>
 
</big></big>
 
</div>
 
</div>
 +
-->
  
 
+
= <b><span style="color:#931136">5.2 &nbsp; Vägen till OOP</span></b> =
= <b><span style="color:#931136">9.2 &nbsp; Vägen till OOP</span></b> =
+
 
<div class="ovnC">
 
<div class="ovnC">
=== <b><span style="color:#931136">Programmet All_in_main() utan modularisering</span></b> ===
+
=== <span style="color:#931136">Programmet All_in_main() utan modularisering</span> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: All_in_main.jpg]]</div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: All_in_main.jpg]]</div>
  
Rad 87: Rad 87:
  
  
=== <b><span style="color:#931136">Körexempel</span></b> ===
+
=== <span style="color:#931136">Körexempel</span> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Obj_oriented_Korex.jpg]]</div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Obj_oriented_Korex.jpg]]</div>
 
</div>
 
</div>
Rad 96: Rad 96:
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Klassbegreppet.jpg]]</div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Klassbegreppet.jpg]]</div>
 
</div>
 
</div>
 
+
-->
 
<br><br>
 
<br><br>
  
 
<div class="border-divblue">
 
<div class="border-divblue">
=== <b><span style="color:#931136">Gå vidare till: &nbsp;&nbsp;<div class="smallBox">[[Övningar 21 (C/Cpp 23)|<span style="color:blue">Övningar 21</span>]]</div> &nbsp;&nbsp;&nbsp; när du är klar med denna genomgång.</span></b> ===
+
=== <span style="color:#931136">Gå vidare till: &nbsp;&nbsp;<div class="smallBox">[[Övningar 21 (C/Cpp 23)|<span style="color:blue">Övningar 21</span>]]</div> &nbsp;&nbsp;&nbsp; när du är klar med denna genomgång.</span> ===
 
</div>
 
</div>
  

Nuvarande version från 17 januari 2026 kl. 17.50

        <<  Agenda          Genomgång 21          Övningar 21          Innehåll & struktur          Nästa lektion  >>      


5.2   Vägen till OOP

Programmet All_in_main() utan modularisering

All in main.jpg


Programmet är varken proceduralt eller objektorienterat.

Vi ska modularisera programmet på olika nivåer. Det gör vi i två steg:


Steg 1: modularisering på funktionsnivå (procedural)

Beräkningarna flyttas från main() till separata moduler area() och omkrets() och

lagras externt i en headerfil:

Procedure.jpg


Parametrisering

Parametrisering.jpg


Programmet Procedure

Procedure cpp.jpg


I den procedurala programmeringen är problemlösning den styrande synen

på hur man strukturerar koden.

En nackdel av programmet Procedure ur modelleringssynpunkt är att main():s

lokala variabel radie är separerad från funktionerna area() och omkrets().

Nackdel, därför att radie är ”ur modelleringssynpunkt” en del av cirkeln.

I den objektorienterade programmeringen är modellering av vekligheten

den styrande synen på hur man strukturerar koden.


Steg 2: modularisering på klassnivå (objektorienterad)

Vår första klass: klassen Circle

Circle cpp.jpg


Klassen Circle och programmet CircleTest utgör ETT objektorienterat program.

Programmet CircleTest

CircleTest.jpg


Körexempel

Obj oriented Korex.jpg


Klassbegreppet

Klassbegreppet.jpg

-->

Gå vidare till:        när du är klar med denna genomgång.










Copyright © 2023. All Rights Reserved.