Skillnad mellan versioner av "Kap 10 Pekare (34)"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(15 mellanliggande versioner av samma användare visas inte)
Rad 6: Rad 6:
 
| style="border-bottom:1px solid #797979" width="5px" |  
 
| style="border-bottom:1px solid #797979" width="5px" |  
 
{{Not selected tab|[[Lektion 34 (C/Cpp 23)| <<&nbsp;&nbsp;Agenda]]}}
 
{{Not selected tab|[[Lektion 34 (C/Cpp 23)| <<&nbsp;&nbsp;Agenda]]}}
{{Selected tab|[[Kap 10 Pekare (34)|Genomgång/Övningar 34]]}}
+
{{Selected tab|[[Kap 10 Pekare (34)|Genomgång 34]]}}
 +
{{Not selected tab|[[Övningar 34 (C/Cpp 23)|Övningar 34]]}}
 
{{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 35 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 35 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
Rad 17: Rad 18:
 
<div class="ovnA">
 
<div class="ovnA">
 
=== <span style="color:#931136"> &nbsp; Sträng baklänges med pekare till char</span> ===
 
=== <span style="color:#931136"> &nbsp; Sträng baklänges med pekare till char</span> ===
<!-- <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn_10_8.png]]</div> -->
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn_10_8.png]]</div>
  
  
 
=== <span style="color:#931136"> &nbsp; Platsbyte med pekare till char</span> ===
 
=== <span style="color:#931136"> &nbsp; Platsbyte med pekare till char</span> ===
<!-- <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn_10_9.png]]</div> -->
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ovn_10_9.png]]</div>
 
</div>
 
</div>
  
Rad 36: Rad 37:
  
  
 +
= <b><span style="color:#931136">Frågor om pekare</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
 
<big>
 
<big>
Besvara nedanstående frågor. Svar till alla frågor kan du  hitta i texten ovan.  
+
Besvara nedanstående frågor.
 +
 
 +
Svar till alla frågor kan du  hitta i texten och lektionerna ovan.  
  
 
Skriv gärna dina svar i ett textdokument.
 
Skriv gärna dina svar i ett textdokument.
Rad 50: Rad 54:
 
2) &nbsp; Nämn tre saker som händer när man deklarerar och initierar variabler av enkel datatyp.
 
2) &nbsp; Nämn tre saker som händer när man deklarerar och initierar variabler av enkel datatyp.
  
3) &nbsp; Är pekare-till-int en enkel eller en sammansatt datatyp? Eller inget av dem?
+
3) &nbsp; Är "pekare" en datatyp?  
  
4) &nbsp; Varför kan man kalla pekaren för ett parallellt system? Parallellt till vad?
+
4) &nbsp; Är pekare-till-int en enkel eller en sammansatt datatyp? Eller inget av dem?
  
5) &nbsp; Är pekare ett nytt koncept som har kommit till när C++ skapades?
+
5) &nbsp; Varför kan man kalla pekaren för ett parallellt system? Parallellt till vad?
  
6) &nbsp; Hur ska man tolka talesättet "p pekar på a"?
+
6) &nbsp; Är pekare ett nytt koncept som har kommit till när C++ skapades?
  
7) &nbsp; Kan pekaren ersätta namnet till en vanlig variabel?  
+
7) &nbsp; Hur ska man tolka talesättet "p pekar på a"?
  
8) &nbsp; Om 5 är värdet till en int-variabel, vad är då "värdet" av en pekare som pekar på a?
+
8) &nbsp; Kan pekaren ersätta namnet till en vanlig variabel?  
  
9) &nbsp; Kan adressoperatorn & skrivas framför en deklarerad, men oinitierad vanlig variabel?  
+
9) &nbsp; Om 5 är värdet till en int-variabel, vad är då "värdet" av en pekare som pekar på a?
  
10) &nbsp; Kan adressoperatorn & skrivas framför en pekarvariabel? Om ja, vad är resultatet?
+
10) &nbsp; Kan adressoperatorn & skrivas framför en deklarerad, men oinitierad vanlig variabel?  
  
11) &nbsp; Vad är fördelen med att använda hexadecimala tal för representation av adresser?
+
11) &nbsp; Kan adressoperatorn & skrivas framför en pekarvariabel? Om ja, vad är resultatet?
  
12) &nbsp; Hur många bytes behövs för lagring av adresser?
+
12) &nbsp; Vad är fördelen med att använda hexadecimala tal för representation av adresser?
  
13) &nbsp; Kan man initiera en pekarvariabel utan att ha deklarerad en vanlig variabel?
+
13) &nbsp; Hur många bytes behövs för lagring av adresser?
  
14) &nbsp; +++Med vilken fråga hittar man datamedlemmarna i en klass?
+
14) &nbsp; Kan man initiera en pekarvariabel utan att ha deklarerad en vanlig variabel?
  
15) &nbsp; Med vilken fråga hittar man metoderna i en klass?
+
15) &nbsp; På sid 276 i kursboken (sid 5 i texten "Kap 10 Pekare") finns det skrivfel.
  
16) &nbsp; Är objekt och instans synonymer?
+
: &nbsp; Kan du hitta dem?
  
17) &nbsp; Vad betyder punktnotation?
+
16) &nbsp; Vilka två betydelser har asterisken * i pekarsammanhang?  
  
18) &nbsp; Vad betyder allokering i datasammanhang?
+
17) &nbsp; Vad är den inversa operatorn till adressoperatorn & ?
  
19) &nbsp; Vilka är de tre hörnstenarna inom objektorienterad programmering?
+
18) &nbsp; Kan värdeoperatorn * skrivas framför en vanlig variabel?
  
20) &nbsp; Pekar i ett klassdiagram pilen från subklassen till superklassen eller tvärtom?
+
19) &nbsp; Vad betyder *(&vanligVar)?
  
21) &nbsp; När en subklass ärver en superklass, vilka delar av superklassen ärver den?
+
20) &nbsp; Vad betyder &(*pekarVar)?
  
22) &nbsp; Varför är polymorfism en speciell form av överlagring av metoder?
+
21) &nbsp; Kan värdeoperatorn tillämpad på en pekare ersätta namnet på en vanlig variabel?
  
23) &nbsp; Vad skiljer polymorfism från vanlig överlagring av metoder?
+
22) &nbsp; Om svaret på frågan 21 ovan är ja, vad är förutsättningen för det?
  
24) &nbsp; Kan polymorfa metoder förekomma i en och samma klass?
+
23) &nbsp; Om adressen till platsen där en bil är parkerad, kan jämföras med pekaren till en 
  
25) &nbsp; Kan överlagrade metoder förekomma i en och samma klass?
+
: &nbsp; vanlig variabel, vilken annan information om bilen som identifierar bilen, kan jämföras
  
26) &nbsp; Kan man komma åt de privata datamedlemmarna i en superklass från en subklass?
+
: &nbsp; med den vanliga variabeln?
 +
 
 +
24) &nbsp; Vad gör satsen int *pekInt = new int; ?
 +
 
 +
25) &nbsp; Vad händer om man efter satsen i fråga 24 ovan skriver *pekInt = 78; ?
 +
 
 +
26) &nbsp; Hur kan man modifiera satsen i fråga 24, för att inkludera i den satsen i fråga 25?
 +
 
 +
27) &nbsp; Är arrayen som skapas i satsen int *no = new int[4]; redan initierad?
 +
 
 +
28) &nbsp; Vad ersätts en arrays indexering av, om den skapas av new?
 +
 
 +
29) &nbsp; Om man skickar en array av char som aktuell parameter till en funktion, kan den
 +
 
 +
: &nbsp; formella parametern vara av en annan datatyp? I så fall vilken?
 +
 
 +
30) &nbsp; Vad avgör vilken metod för parameteröverföring C++ väljer vid anrop av funktioner?
 +
 
 +
31) &nbsp; När tillämpas automatiskt värdeanrop och när referensanrop vid överföring av
 +
 
 +
: &nbsp; en funktions parametrar?
 +
 
 +
32) &nbsp; Vad är skillnaden mellan värde- och referensanrop?
 +
 
 +
33) &nbsp; Redogör för- och nackdelarna av arraynotation gentemot pekarnotation?
 +
 
 +
34) &nbsp; Kan man blanda array- och pekarnotation i ett C++ program?
 +
 
 +
35) &nbsp; Varför har man i andra universella programmeringsspråk som t.ex. C#, Java, Python, ...
 +
 
 +
: &nbsp; avskaffat pekarkonceptet?
 
</big>
 
</big>
 +
</div>
 +
 +
<br><br>
 +
 +
<div class="border-divblue">
 +
=== <b><span style="color:#931136">Gå vidare till: &nbsp;&nbsp;<div class="smallBox">[[Övningar 34 (C/Cpp 23)|<span style="color:blue">Övningar 34</span>]]</div> &nbsp;&nbsp;&nbsp; när du är klar med denna genomgång.</span></b> ===
 
</div>
 
</div>
  

Nuvarande version från 15 november 2023 kl. 10.24

Ons 15 nov, kl 9-12


        <<  Agenda          Genomgång 34          Övningar 34          Planering          Nästa lektion  >>      


  Genomgång av övn 10.8 & 10.9

  Sträng baklänges med pekare till char

Ovn 10 8.png


  Platsbyte med pekare till char

Ovn 10 9.png


Repetition av kap 10 Pekare

Gå igenom genomgångarna om pekare, lektionerna 29-34.
Lusläs koderna i programexemplen, experimentera med dem.
Gör övningarna du inte hunnit göra.
Läs texten:\( \qquad\qquad\;\;\, \)\( \qquad\qquad\;\;\, \)


Frågor om pekare

Besvara nedanstående frågor.

Svar till alla frågor kan du hitta i texten och lektionerna ovan.

Skriv gärna dina svar i ett textdokument.

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


1)   Med vilken kod allokeras minne för vanliga variabler?

2)   Nämn tre saker som händer när man deklarerar och initierar variabler av enkel datatyp.

3)   Är "pekare" en datatyp?

4)   Är pekare-till-int en enkel eller en sammansatt datatyp? Eller inget av dem?

5)   Varför kan man kalla pekaren för ett parallellt system? Parallellt till vad?

6)   Är pekare ett nytt koncept som har kommit till när C++ skapades?

7)   Hur ska man tolka talesättet "p pekar på a"?

8)   Kan pekaren ersätta namnet till en vanlig variabel?

9)   Om 5 är värdet till en int-variabel, vad är då "värdet" av en pekare som pekar på a?

10)   Kan adressoperatorn & skrivas framför en deklarerad, men oinitierad vanlig variabel?

11)   Kan adressoperatorn & skrivas framför en pekarvariabel? Om ja, vad är resultatet?

12)   Vad är fördelen med att använda hexadecimala tal för representation av adresser?

13)   Hur många bytes behövs för lagring av adresser?

14)   Kan man initiera en pekarvariabel utan att ha deklarerad en vanlig variabel?

15)   På sid 276 i kursboken (sid 5 i texten "Kap 10 Pekare") finns det skrivfel.

  Kan du hitta dem?

16)   Vilka två betydelser har asterisken * i pekarsammanhang?

17)   Vad är den inversa operatorn till adressoperatorn & ?

18)   Kan värdeoperatorn * skrivas framför en vanlig variabel?

19)   Vad betyder *(&vanligVar)?

20)   Vad betyder &(*pekarVar)?

21)   Kan värdeoperatorn tillämpad på en pekare ersätta namnet på en vanlig variabel?

22)   Om svaret på frågan 21 ovan är ja, vad är förutsättningen för det?

23)   Om adressen till platsen där en bil är parkerad, kan jämföras med pekaren till en

  vanlig variabel, vilken annan information om bilen som identifierar bilen, kan jämföras
  med den vanliga variabeln?

24)   Vad gör satsen int *pekInt = new int; ?

25)   Vad händer om man efter satsen i fråga 24 ovan skriver *pekInt = 78; ?

26)   Hur kan man modifiera satsen i fråga 24, för att inkludera i den satsen i fråga 25?

27)   Är arrayen som skapas i satsen int *no = new int[4]; redan initierad?

28)   Vad ersätts en arrays indexering av, om den skapas av new?

29)   Om man skickar en array av char som aktuell parameter till en funktion, kan den

  formella parametern vara av en annan datatyp? I så fall vilken?

30)   Vad avgör vilken metod för parameteröverföring C++ väljer vid anrop av funktioner?

31)   När tillämpas automatiskt värdeanrop och när referensanrop vid överföring av

  en funktions parametrar?

32)   Vad är skillnaden mellan värde- och referensanrop?

33)   Redogör för- och nackdelarna av arraynotation gentemot pekarnotation?

34)   Kan man blanda array- och pekarnotation i ett C++ program?

35)   Varför har man i andra universella programmeringsspråk som t.ex. C#, Java, Python, ...

  avskaffat pekarkonceptet?



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











Copyright © 2023. All Rights Reserved.