PROGRAMMEREN THEORIE H1: Pseudo code
Het Geheugen
Structuur van het geheugen
Het geheugen is opgebouwd uit specifieke elementen:
• Het bestaat uit een adres (bepaald door x aantal bits adressering).
• In de locatie van dit geheugenadres kan een waarde worden bijgehouden.
Visuele weergave van geheugenallocatie: De slide toont een lijst van geheugenadressen en
hun inhoud:
• 001: Bevat Waarde 1
• 002: Bevat Waarde 2
• 003: Bevat Waarde 3
• ... (reeks loopt door)
• 999: (Laatste adres)
Doel van een programmeertaal
Wat is de bedoeling van een programmeertaal?
• Het inlezen, bewerken en wegschrijven van waarden die in een geheugencel zijn opgeslagen.
• Een programmeertaal bestaat uit:
1. Instructies om geheugencellen op de juiste manier in te lezen
2. Instructies die bepalen welke bewerkingen worden uitgevoerd
3. De mogelijkheid om (tussentijdse) oplossingen bij te houden in een geheugencel
Het Maken van een Pseudocode
Begrenzing en Formaat
Er zijn specifieke begrenzingen vastgesteld voor deze pseudocode:
• 10 digits (cijfers).
• 2000 woorden.
Bepaling van digits en adressen:
• Aantal digits per adres:
o 2 digits is te weinig.
o 4 digits is te veel.
o Er is gekozen voor 3 digits.
• Aantal adressen per instructie:
o 2 adressen (bijv. x+y gaat naar x): Te beperkt.
o 3 adressen (bijv. x+y gaat naar z): Gekozen optie.
o 4 adressen (bijv. x+y-z gaat naar w): Te complex.
De Instructiestructuur: De opbouw van een instructie bestaat uit 10 digits in totaal:
• 1 digit: Operant (operatie code)
1
, • 3 digits: Adres 1
• 3 digits: Adres 2
• 3 digits: Bestemming (Adres 3)
Voorbeeldweergave:
Het Programma Geheugen
Opslag van Instructies
• Instructies zitten in een logische volgorde.
• Elke instructie is afzonderlijk geadresseerd.
• Instructies worden 1 per 1 uitgevoerd.
Visuele weergave geheugeninhoud:
• 001: Waarde 1
• 002: Waarde 2
• ...
• 999: (Einde data)
• 001: Instructie 1 (Let op: hier lijkt het geheugen voor data en instructies conceptueel gescheiden of
hergebruikt in de visualisatie).
• 002: Instructie 2
• 003: Instructie 3
• ...
• 999: (Einde instructies)
Instructies en Operatoren
Rekenkundige Operatoren (Nodige instructies a)
De basis rekenkundige operatoren zijn:
• +, -, *, /, kwadraat, vierkantswortel.
De Tekenbit
De eerste digit (de operant) bevat ook informatie over de aard van de bewerking, vaak via een
tekenbit of specifieke nummering:
• + is het tegenovergestelde van -.
• * is het tegenovergestelde van /.
• Kwadraat is het tegenovergestelde van vierkantswortel.
Voorbeeld instructie:
2
,Instructietabel (Deel 1) & Voorbeeld
De tabel wordt stap voor stap opgebouwd.
• 1: + (Optellen)
• 2: - (Aftrekken)
• 3: x (Vermenigvuldigen)
• 4: / (Delen) - Let op: de slide toont hier wat
inconsistenties in de nummering bij de opbouw, latere
slides tonen de definitieve tabel.
• Kwadraat / Vierkantswortel: Worden genoemd maar nog geen definitief nummer in dit stadium.
• Voorbeeld van een instructie: +1 001 002 003
• Betekenis: De waarde in geheugencel 001 wordt opgeteld bij de waarde van geheugencel 002 en
weggeschreven in geheugencel 003.
Visuele simulatie:
• Adres 001 bevat: 10
• Adres 002 bevat: 15
• Instructie wordt uitgevoerd.
• Adres 003 bevat nu: 25
Logische Operatoren (Nodige instructies b)
Gebruikt voor vergelijkingen:
• < (kleiner dan)
• > (groter dan)
• = (gelijk aan)
• =< (kleiner of gelijk aan)
• >= (groter of gelijk aan)
• != (niet gelijk aan)
Tekenbit bij Logica
De logica van de tekenbit/operant wordt doorgetrokken:
• < is het tegenovergestelde van >=.
• > is het tegenovergestelde van <=.
• = is het tegenovergestelde van !=.
Belangrijk: Bij het omdraaien van de operandi zijn instructies soms uitwisselbaar.
• Voorbeeld: a < b is hetzelfde als b > a.
3
, Instructietabel (Deel 2 - Sprongen) (examen)
De tabel wordt uitgebreid met conditionele sprongen
Het Programma Geheugen (Sprong Voorbeeld)
Voorbeeld van conditionele instructies met operant +5 (If = goto):
1. Instructie: +5 001 002 003
• Werking: Als de waarde in 001 gelijk is aan de waarde in 002, springt het programma naar instructie die
staat in adres 003 (in dit geval Instructie 3).
• Visueel voorbeeld:
• Adres 001: 10
• Adres 002: 5
• Adres 003: 15
• Omdat 10 != 5, zal het programma gewoon verder lopen (geen sprong).
2. Alternatief scenario:
• Als de voorwaarde wel waar is, wordt de programmaloop onderbroken en gaat men naar het opgegeven
instructie-adres.
+5 001 002 003 zal het programma doen springen naar instructie 3
+5 002 003 001 zal het programma gewoon doen verder lopen
Move Instructies (Nodige instructies c)
Move: Het verplaatsen van de inhoud van geheugencel x naar geheugencel y.
4
Het Geheugen
Structuur van het geheugen
Het geheugen is opgebouwd uit specifieke elementen:
• Het bestaat uit een adres (bepaald door x aantal bits adressering).
• In de locatie van dit geheugenadres kan een waarde worden bijgehouden.
Visuele weergave van geheugenallocatie: De slide toont een lijst van geheugenadressen en
hun inhoud:
• 001: Bevat Waarde 1
• 002: Bevat Waarde 2
• 003: Bevat Waarde 3
• ... (reeks loopt door)
• 999: (Laatste adres)
Doel van een programmeertaal
Wat is de bedoeling van een programmeertaal?
• Het inlezen, bewerken en wegschrijven van waarden die in een geheugencel zijn opgeslagen.
• Een programmeertaal bestaat uit:
1. Instructies om geheugencellen op de juiste manier in te lezen
2. Instructies die bepalen welke bewerkingen worden uitgevoerd
3. De mogelijkheid om (tussentijdse) oplossingen bij te houden in een geheugencel
Het Maken van een Pseudocode
Begrenzing en Formaat
Er zijn specifieke begrenzingen vastgesteld voor deze pseudocode:
• 10 digits (cijfers).
• 2000 woorden.
Bepaling van digits en adressen:
• Aantal digits per adres:
o 2 digits is te weinig.
o 4 digits is te veel.
o Er is gekozen voor 3 digits.
• Aantal adressen per instructie:
o 2 adressen (bijv. x+y gaat naar x): Te beperkt.
o 3 adressen (bijv. x+y gaat naar z): Gekozen optie.
o 4 adressen (bijv. x+y-z gaat naar w): Te complex.
De Instructiestructuur: De opbouw van een instructie bestaat uit 10 digits in totaal:
• 1 digit: Operant (operatie code)
1
, • 3 digits: Adres 1
• 3 digits: Adres 2
• 3 digits: Bestemming (Adres 3)
Voorbeeldweergave:
Het Programma Geheugen
Opslag van Instructies
• Instructies zitten in een logische volgorde.
• Elke instructie is afzonderlijk geadresseerd.
• Instructies worden 1 per 1 uitgevoerd.
Visuele weergave geheugeninhoud:
• 001: Waarde 1
• 002: Waarde 2
• ...
• 999: (Einde data)
• 001: Instructie 1 (Let op: hier lijkt het geheugen voor data en instructies conceptueel gescheiden of
hergebruikt in de visualisatie).
• 002: Instructie 2
• 003: Instructie 3
• ...
• 999: (Einde instructies)
Instructies en Operatoren
Rekenkundige Operatoren (Nodige instructies a)
De basis rekenkundige operatoren zijn:
• +, -, *, /, kwadraat, vierkantswortel.
De Tekenbit
De eerste digit (de operant) bevat ook informatie over de aard van de bewerking, vaak via een
tekenbit of specifieke nummering:
• + is het tegenovergestelde van -.
• * is het tegenovergestelde van /.
• Kwadraat is het tegenovergestelde van vierkantswortel.
Voorbeeld instructie:
2
,Instructietabel (Deel 1) & Voorbeeld
De tabel wordt stap voor stap opgebouwd.
• 1: + (Optellen)
• 2: - (Aftrekken)
• 3: x (Vermenigvuldigen)
• 4: / (Delen) - Let op: de slide toont hier wat
inconsistenties in de nummering bij de opbouw, latere
slides tonen de definitieve tabel.
• Kwadraat / Vierkantswortel: Worden genoemd maar nog geen definitief nummer in dit stadium.
• Voorbeeld van een instructie: +1 001 002 003
• Betekenis: De waarde in geheugencel 001 wordt opgeteld bij de waarde van geheugencel 002 en
weggeschreven in geheugencel 003.
Visuele simulatie:
• Adres 001 bevat: 10
• Adres 002 bevat: 15
• Instructie wordt uitgevoerd.
• Adres 003 bevat nu: 25
Logische Operatoren (Nodige instructies b)
Gebruikt voor vergelijkingen:
• < (kleiner dan)
• > (groter dan)
• = (gelijk aan)
• =< (kleiner of gelijk aan)
• >= (groter of gelijk aan)
• != (niet gelijk aan)
Tekenbit bij Logica
De logica van de tekenbit/operant wordt doorgetrokken:
• < is het tegenovergestelde van >=.
• > is het tegenovergestelde van <=.
• = is het tegenovergestelde van !=.
Belangrijk: Bij het omdraaien van de operandi zijn instructies soms uitwisselbaar.
• Voorbeeld: a < b is hetzelfde als b > a.
3
, Instructietabel (Deel 2 - Sprongen) (examen)
De tabel wordt uitgebreid met conditionele sprongen
Het Programma Geheugen (Sprong Voorbeeld)
Voorbeeld van conditionele instructies met operant +5 (If = goto):
1. Instructie: +5 001 002 003
• Werking: Als de waarde in 001 gelijk is aan de waarde in 002, springt het programma naar instructie die
staat in adres 003 (in dit geval Instructie 3).
• Visueel voorbeeld:
• Adres 001: 10
• Adres 002: 5
• Adres 003: 15
• Omdat 10 != 5, zal het programma gewoon verder lopen (geen sprong).
2. Alternatief scenario:
• Als de voorwaarde wel waar is, wordt de programmaloop onderbroken en gaat men naar het opgegeven
instructie-adres.
+5 001 002 003 zal het programma doen springen naar instructie 3
+5 002 003 001 zal het programma gewoon doen verder lopen
Move Instructies (Nodige instructies c)
Move: Het verplaatsen van de inhoud van geheugencel x naar geheugencel y.
4