Skillnad mellan versioner av "Övningar 1 (OOP)"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(21 mellanliggande versioner av samma användare visas inte)
Rad 5: Rad 5:
 
{{Not selected tab|[[Kap 1 Objektorienterad programmering (OOP)|Dagens genomgång]]}}
 
{{Not selected tab|[[Kap 1 Objektorienterad programmering (OOP)|Dagens genomgång]]}}
 
{{Selected tab|[[Övningar 1 (OOP)|Dagens övningar]]}}
 
{{Selected tab|[[Övningar 1 (OOP)|Dagens övningar]]}}
{{Not selected tab|[[Media: Innehall_OOP_design.pdf|Innehåll & struktur]]}}
+
{{Not selected tab|[[Innehåll och struktur av kursen OOP & design|Innehåll & struktur]]}}
 
<!-- {{Not selected tab|[[Planering Algoritmer, datastrukturer och design patterns|Kursens planering]]}} -->
 
<!-- {{Not selected tab|[[Planering Algoritmer, datastrukturer och design patterns|Kursens planering]]}} -->
 
{{Not selected tab|[[Lektion 2 (OOP)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 2 (OOP)|Nästa lektion&nbsp;&nbsp;>> ]]}}
Rad 13: Rad 13:
  
 
= <b><span style="color:#931136">Dagens övningar</span></b> =
 
= <b><span style="color:#931136">Dagens övningar</span></b> =
<div class="ovnE">
+
<div class="ovnC">
<big>Läs texten [[Media: Vad_OOP.pdf|<b><span style="color:blue">Vad är objektorienterad programmering?</span></b>]].
+
<big>
 +
Läs texten [[Media: Vad_OOP.pdf|<b><span style="color:blue">Vad är objektorienterad programmering?</span></b>]]
  
Besvara frågorna nedan.
+
Besvara frågorna nedan. Skriv dina svar i ett textdokument.
  
Skriv dina svar i ett textdokument.
+
Ingen inlämning krävs. Arbeta gärna gruppvis.
  
Ingen inlämning krävs.
+
----
  
Arbeta gärna gruppvis.
+
1) &nbsp; Kan man skriva i C# ett program utan att deklarera en klass?
</big>
+
</div>
+
  
 +
2) &nbsp; Vad är definitionen på program i C#?
  
== <b><span style="color:#931136">Frågor om [[1.1 Programmeringens historia|<span style="color:#931136">Programmeringens historia</span>]]</span></b> ==
+
3) &nbsp; Är det korrekt att pepparkakor är klasser och pepparkaksformen objekt?
<div class="ovnC">
+
<big>
+
1) &nbsp; Vad är innovationen i <i>John von Neumann-modellen</i>?
+
  
2) &nbsp; Är <i>Assembler</i> källkod eller maskinkod?
+
4) &nbsp; Kan man via abstraktion komma från objekt till klass eller är det tvärtom?  
  
3) &nbsp; Vad är en <i>assemblator</i>?.
+
5) &nbsp; Om pennor är objekt var kan man hitta klassen penna?
  
4) &nbsp; Förstår datorn källkod?  
+
6) &nbsp; Av vilka två huvudingredienser består en klass i regel?
  
5) &nbsp; Förstår människan maskinkod?
+
7) &nbsp; Anta att Tal är en klass. Är addition() en metod eller en datamedlem i klassen Tal?
  
6) &nbsp; Vad heter programvaran vom översätter källkod till maskinkod?
+
8) &nbsp; Anta att Bil är en klass. Är Motor en metod eller en datamedlem i klassen Bil?
  
7) &nbsp; Ge exempel på <i>lågnivåspråk</i>. Vad är anledningen till beteckningen?
+
9) &nbsp; Är  +  en metod, en datamedlem eller en operator i klassen String? Vad heter den?
  
8) &nbsp; Vilket är historiens första (kända) <i>högnivåspråk</i>?
+
10) &nbsp; Med vilken fråga hittar man datamedlemmarna i en klass?
  
9) &nbsp; Varför finns det idag många applikationer som ä programmerade i språk från 50/60-talet?
+
11) &nbsp; Med vilken fråga hittar man metoderna i en klass?  
  
10) &nbsp; I vilket gammalt språk är många program kodade inom bank- och försäkringsbranchen?
+
12) &nbsp; Är objekt och instans synonymer?
  
11) &nbsp; Vilket är det första algoritmbaserade programmeringsspråket?  
+
13) &nbsp; Vad betyder punktnotation?
  
12) &nbsp; Ge två exempel på <i>interpreterande</i> språk.
+
14) &nbsp; Vad betyder allokering i datasammanhang?
  
13) &nbsp; Vilka språk introducerade den <i>procedurala</i> programmeringen?
+
15) &nbsp; Vilka är de tre hörnstenarna inom objektorienterad programmering?
  
14) &nbsp; Är C ett proceduralt eller ett objektorienterat programmeringsspråk?
+
16) &nbsp; Pekar i ett klassdiagram pilen från subklassen till superklassen eller tvärtom?
  
15) &nbsp; Varför kan en C++ kompilator kompilera även C-kod, men inte tvärt om?
+
17) &nbsp; När en subklass ärver en superklass ärver den superklassens alla datamedlemmar och metoder?
  
16) &nbsp; Varför blev det nödvändigt att utveckla objektorienterade programmeringsspråk?
+
18) &nbsp; Varför är polymorfism en speciell form av överlagring av metoder?
  
17) &nbsp; Nämn ett tidigt exempel för objektorienterade programmeringsspråk som inte längre används idag.
+
19) &nbsp; Vad skiljer polymorfism från vanlig överlagring av metoder?
  
18) &nbsp; Är Java ett interpreterande eller kompilerande språk?
+
20) &nbsp; Kan polymorfa metoder förekomma i en och samma klass?
  
19) &nbsp; Är Python ett interpreterande eller kompilerande språk?
+
21) &nbsp; Kan överlagrade metoder förekomma i en och samma klass?
  
20) &nbsp; Nämn tre fördelar av Python.
+
22) &nbsp; Kan man komma åt de privata datamedlemmarna i en superklass från en subklass?
 
</big>
 
</big>
 
</div>
 
</div>
Rad 74: Rad 71:
  
 
<div class="ovnE">
 
<div class="ovnE">
<big>Läs om [[Media: 1_2 Olika paradigm inom programmeringa.pdf|<span style="color:#931136"><b>olika paradigm & paradigmskifte</b></span>]].
+
<big>
 
+
* &nbsp; Mata in programmet [[Kap_1_Objektorienterad_programmering_(OOP)#1.3_.C2.A0_Modulariseringsprocessen|<b><span style="color:blue">All_in_Main</span></b>]] i en Console Application. Kompilera och kör.
Besvara frågorna nedan.
+
* &nbsp; Mata in programmet [[Kap_1_Objektorienterad_programmering_(OOP)#Modularisering_p.C3.A5_metodniv.C3.A5|<b><span style="color:blue">Method</span></b>]]. Kompilera och kör.
 
+
* &nbsp; Mata in klasserna [[Kap_1_Objektorienterad_programmering_(OOP)#Klassen_Password|<b><span style="color:blue">Password</span></b>]] och [[Kap_1_Objektorienterad_programmering_(OOP)#Klassen_PasswordUse|<b><span style="color:blue">PasswordUse</span></b>]] i samma projekt. Kompilera och kör.
Rekommendation: Öppna ett textdokument. Skriv ned dina svar.
+
* &nbsp; Läs om <b><span style="color:red">Klassbegreppet</span></b> i [[Kursboken i YH-kursen Objektorienterad programmering och design|<b><span style="color:blue">kursboken</span></b>]], sid 13-17.
 
+
* &nbsp; Läs om <b><span style="color:red">Modulariseringsprocessen</span></b> i [[Kursboken i YH-kursen Objektorienterad programmering och design|<b><span style="color:blue">kursboken</span></b>]], sid 18-21.
Ingen inlämning krävs.
+
 
+
Det är tillåtet att arbeta gruppvis.
+
 
</big>
 
</big>
 
</div>
 
</div>
  
  
== <b><span style="color:#931136">Frågor om <span style="color:#931136">olika paradigm & paradigmskifte</span></span></b> ==
 
 
<div class="ovnA">
 
<div class="ovnA">
<big>
+
=== <b><span style="color:#931136">Lös uppgifterna nedan:</span></b> ===
1) &nbsp; Försök att formulera med egna ord vad <i>paradigm</i> betyder.
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn 1_1_3.jpg]]</div>
 +
<big><big>
  
2) &nbsp; Vad är det som ofta leder till ett <i>paradigmskifte</i>?
 
  
3) &nbsp; Vad är för- och nackdelar med <i>maskinorienterad programmering</i>?.
+
&nbsp; Jämför dina lösningar med lösningsförslagen i slutet av [[Kursboken i YH-kursen Objektorienterad programmering och design|<b><span style="color:blue">kursboken</span></b>]], sid 171-173.
 +
</big></big>
 +
</div>
  
4) &nbsp; Vilket paradigm inom programmering kan jämföras med att beställa mat på en restaurang?
 
 
5) &nbsp; Med vilket paradigm inom programmering är <i>Lambdakalkyl</i> relaterad?
 
 
6) &nbsp; Vilket paradigm inom programmering baseras på ett axiomsystem?
 
 
7) &nbsp; I vilka typer av applikationer tillämpas i regel händelsestyrd programmering?
 
 
8) &nbsp; Är <i>Spaghettiprogrammering</i> ett paradigm inom programmering?
 
 
9) &nbsp; Vilka typer av satser är karakteristiska för <i>Spaghettiprogrammering</i>?
 
 
10) &nbsp; Med vilken programmeringsteknisk konstruktion ersattes satser som ledde till <i>Spaghettiprogrammering</i>?
 
 
11) &nbsp; Vilket reserverat ord i C# är en kvarleva från och påminner om <i>Spaghettiprogrammering</i>?
 
 
12) &nbsp; Ge två historiska exempel på språk som introducerade <i>procedural programmering</i>.
 
 
13) &nbsp; Hur definieras <i>program</i> inom den procedurala programmeringen?
 
 
14) &nbsp; På vilken del av definitionen i fråga 13 ligger huvudvikten i den procedurala programmeringen?
 
 
15) &nbsp; Vilken förskjutning av huvudvikten ligger bakom övergången från procedural till objektorienterad programmering?
 
 
16) &nbsp; Hur definieras <i>program</i> inom den objektorienterade programmeringen?
 
 
17) &nbsp; Varför kan man i C# inte skriva kod (utom using-satser) utanför klasser?
 
 
18) &nbsp; Vad är den minsta modulen i ett proceduralt program?
 
 
19) &nbsp; Vad är den minsta modulen i ett objektorienterat program?
 
 
20) &nbsp; Beskriv med egna ord orsakerna för paradigmskiftet från procedural till objektorienterad programmering.
 
</big>
 
</div>
 
  
  

Nuvarande version från 24 november 2022 kl. 20.02

        <<  Agenda          Dagens genomgång          Dagens övningar          Innehåll & struktur          Nästa lektion  >>      


Dagens övningar

Läs texten Vad är objektorienterad programmering?

Besvara frågorna nedan. Skriv dina svar i ett textdokument.

Ingen inlämning krävs. Arbeta gärna gruppvis.


1)   Kan man skriva i C# ett program utan att deklarera en klass?

2)   Vad är definitionen på program i C#?

3)   Är det korrekt att pepparkakor är klasser och pepparkaksformen objekt?

4)   Kan man via abstraktion komma från objekt till klass eller är det tvärtom?

5)   Om pennor är objekt var kan man hitta klassen penna?

6)   Av vilka två huvudingredienser består en klass i regel?

7)   Anta att Tal är en klass. Är addition() en metod eller en datamedlem i klassen Tal?

8)   Anta att Bil är en klass. Är Motor en metod eller en datamedlem i klassen Bil?

9)   Är + en metod, en datamedlem eller en operator i klassen String? Vad heter den?

10)   Med vilken fråga hittar man datamedlemmarna i en klass?

11)   Med vilken fråga hittar man metoderna i en klass?

12)   Är objekt och instans synonymer?

13)   Vad betyder punktnotation?

14)   Vad betyder allokering i datasammanhang?

15)   Vilka är de tre hörnstenarna inom objektorienterad programmering?

16)   Pekar i ett klassdiagram pilen från subklassen till superklassen eller tvärtom?

17)   När en subklass ärver en superklass ärver den superklassens alla datamedlemmar och metoder?

18)   Varför är polymorfism en speciell form av överlagring av metoder?

19)   Vad skiljer polymorfism från vanlig överlagring av metoder?

20)   Kan polymorfa metoder förekomma i en och samma klass?

21)   Kan överlagrade metoder förekomma i en och samma klass?

22)   Kan man komma åt de privata datamedlemmarna i en superklass från en subklass?


  •   Mata in programmet All_in_Main i en Console Application. Kompilera och kör.
  •   Mata in programmet Method. Kompilera och kör.
  •   Mata in klasserna Password och PasswordUse i samma projekt. Kompilera och kör.
  •   Läs om Klassbegreppet i kursboken, sid 13-17.
  •   Läs om Modulariseringsprocessen i kursboken, sid 18-21.


Lös uppgifterna nedan:

Ovn 1 1 3.jpg


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







Copyright © 2022 TechPages AB. All Rights Reserved.