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...')
 
m
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: Vad_Algoritm_1a.jpg]]</div>
Var och en har ett intuitivt svar på denna fråga. Vi vill precisera svaret genom att:
+
  
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 style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_2d.jpg]]</div></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> ==
+
= <b><span style="color:#931136">Pseudokod till algoritmen Hårtvätt</span></b> =
<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> =====
+
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_Praktiskt_650.jpg]]</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">Två positiva svar</span></b> ==
+
= <b><span style="color:#931136">1.4 &nbsp;&nbsp; Traditionell design pattern med flödesschema</span></b> =
<div class="ovnC">
+
<big>
=== <b><span style="color:#931136">1. Programmering som problemlösning</span></b> ===
+
== <b><span style="color:#931136">Algoritmen Morgonsyssla i textform</span></b> ==
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Progr_2a.jpg]]</div>
+
<div class="border-divblue">
 +
<big>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.
  
=== <b><span style="color:#931136">2. Programmering som modellering</span></b> ===
+
Vid frukosten lyssnar Kalle på radions trafikinformation.
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Program_Modell_650a.jpg]]</div>
+
</div>
+
</div>
+
  
 +
Om det är mycket biltrafik, går Kalle ut, väntar tills ingen bil kommer,
  
= <b><span style="color:#931136">1.2 &nbsp;&nbsp; Kompilering och exekvering</span></b> =
+
går över gatan och tar bussen till jobbet. Annars tar Kalle bilen till jobbet.</big>
<div class="ovnA">
+
</div>
<big>
+
Hur hamnar programkoden i datorn? Det handlar om samspelet mellan mjukvaran och hårdvaran.
+
  
För att besvara frågan går vi tillbaka till de första datorerna.
 
</big>
 
  
== <b><span style="color:#931136">John von Neumann-modellen</span></b> ==
+
== <b><span style="color:#931136">Pseudokod till algoritmen Morgonsyssla</span></b> ==
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: John_Neuman_Datora.jpg]]</div>
+
<div class="ovnE">
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Morgosysslaa.jpg]]</div>
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: John_Neuman_Texta.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>
  

Versionen från 16 september 2023 kl. 14.25

Tis 19 sep, kl 9-12


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


1.3    Algoritmer och deras beskrivning

Algoritmbegreppet

Vad Algoritm 1a.jpg


Vad Algoritm 2d.jpg


Pseudokod till algoritmen Hårtvätt

Pseudokod Hartvatt 1.jpg


1.4    Traditionell design pattern med flödesschema

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.