Skillnad mellan versioner av "Kap 1 Introduktion till programmering (1a)"

Från Mathonline
Hoppa till: navigering, sök
(Skapade sidan med '__NOTOC__ <big>Tis 19 sep, kl 9-12</big> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" | &nbsp...')
 
 
(13 mellanliggande versioner av samma användare visas inte)
Rad 8: Rad 8:
 
{{Selected tab|[[Kap 1 Introduktion till programmering (1a)|Genomgång 1a]]}}
 
{{Selected tab|[[Kap 1 Introduktion till programmering (1a)|Genomgång 1a]]}}
 
{{Not selected tab|[[Övningar 1a (C/Cpp 23)|Övningar 1a]]}}
 
{{Not selected tab|[[Övningar 1a (C/Cpp 23)|Övningar 1a]]}}
{{Not selected tab|[http://www.mathonline.se/Cpp_innehall_strukt.pdf Innehåll & struktur]}}
+
<!-- {{Not selected tab|[http://www.mathonline.se/Cpp_innehall_strukt.pdf 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 2 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 2 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
| style="border-bottom:1px solid #797979"  width="100%"| &nbsp;
 
| style="border-bottom:1px solid #797979"  width="100%"| &nbsp;
Rad 16: Rad 16:
 
<br>
 
<br>
  
= <b><span style="color:#931136">1.1 &nbsp;&nbsp; Vad är programmering?</span></b> =
+
= <b><span style="color:#931136">1.3 &nbsp;&nbsp; Algoritmer och deras beskrivning</span></b> =
 +
= <b><span style="color:#931136">Algoritmbegreppet</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
<big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vagbeskrivning.jpg]]</div>
Var och en har ett intuitivt svar på denna fråga. Vi vill precisera svaret genom att:
+
</div>
  
Sätta begreppet i rätt sammanhang, avgränsa det från andra, närbesläktade ämnen.
 
  
Låt oss börja med att ge <i>negativa</i> svar:
+
<div class="ovnC">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_1a.jpg]]</div>
  
Vi vill diskutera vad programmering <i>inte</i> är för att närma oss det positiva svaret.
 
</big>
 
  
== <b><span style="color:#931136">Tre negativa svar</span></b> ==
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_2d.jpg]]</div></div>
<div class="ovnC">
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Progr_1b.jpg]]</div>
+
  
  
===== <b><span style="color:#931136">Slutsats från punkt 2) <math> \dots </math> ingen vetenskap:</span></b> =====
+
= <b><span style="color:#931136">Definition av algoritm</span></b> =
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_Praktiskt_650.jpg]]</div>
+
<div class="ovnE">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Definition_Alg.jpg]]</div>
 +
 
 +
 
 +
<big>
 +
Det finns olika sätt att <b>beskriva</b> algoritmer:
 +
* &nbsp;&nbsp; Vanligt språk
 +
* &nbsp;&nbsp; Pseudokod
 +
* &nbsp;&nbsp; Flödesschema
 +
* &nbsp;&nbsp; Programkod
 +
* &nbsp;&nbsp; Andra sätt (Mind maps, Pattern designs, Strukturdiagram, Beslutstabeller, UML, ...)
 +
</big>
 
</div>
 
</div>
  
  
== <b><span style="color:#931136">Två positiva svar</span></b> ==
+
= <b><span style="color:#931136">1.4 &nbsp;&nbsp; Pseudokod och flödesschema</span></b> =
<div class="ovnC">
+
=== <b><span style="color:#931136">1. Programmering som problemlösning</span></b> ===
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Progr_2a.jpg]]</div>
+
  
  
=== <b><span style="color:#931136">2. Programmering som modellering</span></b> ===
+
= <b><span style="color:#931136">Pseudokod till algoritmen Hårtvätt</span></b> =
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Program_Modell_650a.jpg]]</div>
+
<div class="ovnA">
</div>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Hartvatt_1.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">1.2 &nbsp;&nbsp; Kompilering och exekvering</span></b> =
+
<big>
<div class="ovnA">
+
== <b><span style="color:#931136">Algoritmen Morgonsyssla i textform</span></b> ==
<big>  
+
<div class="border-divblue">
Hur hamnar programkoden i datorn? Det handlar om samspelet mellan mjukvaran och hårdvaran.
+
<big>Kalle går upp kl. 6 på morgonen. Han duschar tills kroppen känns fräsch.  
  
För att besvara frågan går vi tillbaka till de första datorerna.
+
Sedan torkar Kalle sig, tar på sig kläderna och äter frukost.
</big>
+
  
== <b><span style="color:#931136">John von Neumann-modellen</span></b> ==
+
Vid frukosten lyssnar Kalle på radions trafikinformation.
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: John_Neuman_Datora.jpg]]</div>
+
  
 +
Om det är mycket biltrafik, går Kalle ut, väntar tills ingen bil kommer,
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: John_Neuman_Texta.jpg]]</div>
+
går över gatan och tar bussen till jobbet. Annars tar Kalle bilen till jobbet.
 +
</big>
 +
</div>
 +
 
 +
 
 +
== <b><span style="color:#931136">Pseudokod till algoritmen Morgonsyssla</span></b> ==
 +
<div class="ovnE">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Morgosysslaa.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Kompilering = översättning av källkod till maskinkod</span></b> =
+
== <b><span style="color:#931136">Kartläggning och analys av pseudokoden</span></b> ==
 
<div class="ovnC">
 
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Kompilering.jpg]]</div>
+
==== <b><span style="color:#931136">Fem huvudinstruktioner:</span></b> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fem_Huvudinstruktioner.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Editorer & IDE</span></b> =
+
<!-- == <b><span style="color:#931136">Fyra underinstruktioner, alla indragna:</span></b> == -->
<div class="ovnE">
+
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Editorer_IDE.jpg]]</div>
+
==== <b><span style="color:#931136">Fyra underinstruktioner, alla indragna:</span></b> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fyra_Underinstruktioner.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Regler för filändelser</span></b> =
+
== <b><span style="color:#931136">Kontrollstrukturer i algoritmer</span></b> ==
 
<div class="ovnC">
 
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Regler_Filandelser_Cpp.jpg]]</div>
+
==== <b><span style="color:#931136">Tre villkor, i tre kontrollstrukturer:</span></b> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Tre_Villkor_Kontrollstrukturer.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Att hantera filändelser</span></b> =
+
<big>Villkoren är i <b><span style="color:red">röd text</span></b>. De är inbakade i och delar av:
 +
 
 +
Kontrollstrukturerna <b>TILLS</b> (loop) och <b>OM-ANNARS</b> (tvåvägsval).
 +
 
 +
<b>TILLS</b> är den <i>efter-testade</i> varianten av den <i>för-testade</i> kontrollstrukturen <b>WHILE</b>.
 +
</big>
 +
</big>
 +
 
 +
 
 +
= <b><span style="color:#931136">Flödesschemasymbolik</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Hantering_Filandelser.jpg]]</div>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Hartvatt_2a.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Olika typer av fel</span></b> =
+
= <b><span style="color:#931136">Flödesschema till algoritmen Morgonsyssla</span></b> =
<div class="ovnE">
+
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Olika_typer_fel.jpg]]</div>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Flodesplan_Morgonsysslac.jpg]]</div>
 
</div>
 
</div>
  

Nuvarande version från 19 september 2023 kl. 07.35

Tis 19 sep, kl 9-12


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


1.3    Algoritmer och deras beskrivning

Algoritmbegreppet

Vagbeskrivning.jpg


Vad Algoritm 1a.jpg


Vad Algoritm 2d.jpg


Definition av algoritm

Definition Alg.jpg


Det finns olika sätt att beskriva algoritmer:

  •    Vanligt språk
  •    Pseudokod
  •    Flödesschema
  •    Programkod
  •    Andra sätt (Mind maps, Pattern designs, Strukturdiagram, Beslutstabeller, UML, ...)


1.4    Pseudokod och flödesschema

Pseudokod till algoritmen Hårtvätt

Pseudokod Hartvatt 1.jpg


Algoritmen Morgonsyssla i textform

Kalle går upp kl. 6 på morgonen. Han duschar tills kroppen känns fräsch.

Sedan torkar Kalle sig, tar på sig kläderna och äter frukost.

Vid frukosten lyssnar Kalle på radions trafikinformation.

Om det är mycket biltrafik, går Kalle ut, väntar tills ingen bil kommer,

går över gatan och tar bussen till jobbet. Annars tar Kalle bilen till jobbet.


Pseudokod till algoritmen Morgonsyssla

Pseudokod Morgosysslaa.jpg


Kartläggning och analys av pseudokoden

Fem huvudinstruktioner:

Fem Huvudinstruktioner.jpg


Fyra underinstruktioner, alla indragna:

Fyra Underinstruktioner.jpg


Kontrollstrukturer i algoritmer

Tre villkor, i tre kontrollstrukturer:

Tre Villkor Kontrollstrukturer.jpg


Villkoren är i röd text. De är inbakade i och delar av:

Kontrollstrukturerna TILLS (loop) och OM-ANNARS (tvåvägsval).

TILLS är den efter-testade varianten av den för-testade kontrollstrukturen WHILE.


Flödesschemasymbolik

Pseudokod Hartvatt 2a.jpg


Flödesschema till algoritmen Morgonsyssla

Flodesplan Morgonsysslac.jpg


Gå vidare med Dagens övningar när du är klar med genomgången ovan.






Copyright © 2023. All Rights Reserved.