Skillnad mellan versioner av "Kap 1 Algoritmer och programmering (forts.)"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(32 mellanliggande versioner av samma användare visas inte)
Rad 1: Rad 1:
__TOC__
+
__NOTOC__
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
| style="border-bottom:1px solid #797979" width="5px" |  
 
| style="border-bottom:1px solid #797979" width="5px" |  
 
{{Not selected tab|[[Lektion 2 (Algoritmer)| <<&nbsp;&nbsp;Agenda]]}}
 
{{Not selected tab|[[Lektion 2 (Algoritmer)| <<&nbsp;&nbsp;Agenda]]}}
 
{{Not selected tab|[[Media: Innehall_Alg_Datastr_DP.pdf|<span style="color:blue">Innehåll & struktur</span>]]}}
 
{{Not selected tab|[[Media: Innehall_Alg_Datastr_DP.pdf|<span style="color:blue">Innehåll & struktur</span>]]}}
{{Selected tab|[[Kap 1 Algoritmer och programmering (forts.)|Dagens genomgång]]}}
+
{{Selected tab|[[Kap 1 Algoritmer och programmering (forts.)|<span style="font-weight:lighter">Genomgång 2</span>]]}}
{{Not selected tab|[[Övningar 2 (Algoritmer)|Dagens övningar]]}}
+
{{Not selected tab|[[Övningar 2 (Algoritmer)|Övningar 2]]}}
 
<!-- {{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 3 (Algoritmer)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 3 (Algoritmer)|Nästa lektion&nbsp;&nbsp;>> ]]}}
Rad 14: Rad 14:
  
 
= <b><span style="color:#931136">1.3 &nbsp;&nbsp; Algoritmer och deras beskrivning</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> =
 
= <b><span style="color:#931136">Algoritmbegreppet</span></b> =
 +
<div class="ovnE">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vagbeskrivning.jpg]]</div>
 +
</div>
  
  
<div class="ovnE">
+
<div class="ovnC">
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_1a.jpg]]</div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_1a.jpg]]</div>
  
Rad 26: Rad 26:
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_2d.jpg]]</div></div>
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Vad_Algoritm_2d.jpg]]</div></div>
  
= <b><span style="color:#931136">+++Från vävstolarna till John von Neumann</span></b> =
+
 
 +
= <b><span style="color:#931136">Definition av algoritm</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_1.jpg]]</div>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Definition_Alg.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Från maskinkod till Assembler</span></b> =
+
= <b><span style="color:#931136">Olika sätt att beskriva en algoritm</span></b> =
 +
<div class="ovnC">
 +
<big>
 +
Det finns följande 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>
 +
 
 +
 
 +
= <b><span style="color:#931136">1.4 &nbsp;&nbsp; Pseudokod och flödesschema</span></b> =
 +
 
 +
 
 +
= <b><span style="color:#931136">Exempel på pseudokod</span></b> =
 +
<div class="ovnA">
 +
==== Algoritmen Hårtvätt ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Hartvatt_1.jpg]]</div>
 +
</div>
 +
 
 +
 
 +
<big>
 +
== <b><span style="color:#931136">Exempel på algoritm i textform</span></b> ==
 +
<div class="border-divblue">
 +
==== Algoritmen Morgonsyssla ====
 +
<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.
 +
 
 +
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.
 +
</big>
 +
</div>
 +
 
 +
 
 +
== <b><span style="color:#931136">Pseudokod till algoritmen Morgonsyssla</span></b> ==
 
<div class="ovnE">
 
<div class="ovnE">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_2.jpg]]</div>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Morgosysslaa.jpg]]</div>
 +
</div>
  
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_2a.jpg]]</div>
+
== <b><span style="color:#931136">Kartläggning och analys av pseudokoden</span></b> ==
 +
<div class="ovnC">
 +
==== <span style="color:#931136">Fem huvudinstruktioner:</span> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fem_Huvudinstruktioner.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">De första högnivåspråken</span></b> =
+
<!-- == <b><span style="color:#931136">Fyra underinstruktioner, alla indragna:</span></b> == -->
 
<div class="ovnC">
 
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_3.jpg]]</div>
+
==== <span style="color:#931136">Fyra underinstruktioner, alla indragna:</span> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fyra_Underinstruktioner.jpg]]</div>
 +
</div>
  
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_3a.jpg]]</div>
+
== <b><span style="color:#931136">Kontrollstrukturer i algoritmer</span></b> ==
 +
<div class="ovnC">
 +
==== <span style="color:#931136">Tre villkor, i tre kontrollstrukturer:</span> ====
 +
<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">Från procedural till objektorienterad programmering</span></b> =
+
<big>Villkoren är i <b><span style="color:red">röd text</span></b>. De är inbakade i och delar av:
<div class="ovnA">
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_4.jpg]]</div>
+
  
 +
Kontrollstrukturerna <b>TILLS</b> (loop) och <b>OM-ANNARS</b> (tvåvägsval).
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_4b.jpg]]</div>
+
<b>TILLS</b> är den <i>efter-testade</i> varianten av den <i>för-testade</i> kontrollstrukturen <b>WHILE</b>.
 +
</big>
 +
</big>
  
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Progr_historia_4c.jpg]]</div>
+
= <b><span style="color:#931136">Flödesschemasymbolik</span></b> =
 +
<div class="ovnA">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Pseudokod_Hartvatt_2a.jpg]]</div>
 +
</div>
 +
 
 +
 
 +
= <b><span style="color:#931136">Exempel på flödesschema</span></b> =
 +
<div class="ovnA">
 +
==== <span style="color:#931136">Flödesschema till algoritmen Morgonsyssla</span> ====
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Flodesplan_Morgonsysslac.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Gå vidare med [[Övningar 1 (Algoritmer)|<span style="color:blue">Dagens övningar</span>]] när du är klar med all läsning ovan.</span></b> =
+
= <b><span style="color:#931136">Gå vidare med [[Övningar 2 (Algoritmer)|<span style="color:blue">Övningar 2</span>]] när du är klar med all läsning ovan.</span></b> =
  
  

Nuvarande version från 2 augusti 2025 kl. 17.13

        <<  Agenda          Innehåll & struktur          Genomgång 2          Övningar 2          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


Olika sätt att beskriva en algoritm

Det finns följande 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

Exempel på pseudokod

Algoritmen Hårtvätt

Pseudokod Hartvatt 1.jpg


Exempel på algoritm i textform

Algoritmen Morgonsyssla

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


Exempel på flödesschema

Flödesschema till algoritmen Morgonsyssla

Flodesplan Morgonsysslac.jpg


Gå vidare med Övningar 2 när du är klar med all läsning ovan.










Copyright © 2022 TechPages AB. All Rights Reserved.