Grondslagen van de beleidsinformatica
H1 Inleiding (p 1-4)
Compiler: vertaalt een volledig syntactisch correct programma naar machinetaal of naar een
andere programmeertaal.
Interpreter: lijn per lijn vertalen naar machinetaal en dan uitvoeren
H2 Installatie en eerste programma’s (p5-12)
Algoritme: een eindige reeks instructies die vanuit een gegeven begintoestand naar een
beoogd doel leidt.
Computeralgoritme: een geordende reeks ondubbelzinnige, computer-uitvoerbare stappen
die een eindig proces beschrijven
Proces: herhaalbare reeks afhankelijke activiteiten met een welbepaald eindresultaat en
startende vanaf een welbepaald beginpunt.
Programma: een uitvoerbare representatie of implementatie van een algoritme
Eerste generatie programmeertalen: Machinetaal, ontworpen voor één welbepaalde
computerarchitectuur. Programmeur moet bij programmeren in machinetaal denken zoals de
computer uitvoert. Moeilijk, onhandig, traag programmeren, niveau van complexiteit te
bereiken: laag
2e G: Assemblertalen: Programma’s kunnen geschreven worden gebruik makende van
woorden (mnemonics) die begrijpbaar zijn voor mensen maar niet voor een machine,
vandaar de nood aan vertaling, gebeurt door speciale programma’s: assemblers
3e G: Procedurele en objectgeoriënteerde talen (of hybride):
- Voordeel: machine-onafhankelijke primitieven, bv,, Java , Eiffel (OO), C++, Python
(hybride)
- Programmeer- of software ontwikkelomgeving: zelf een programma, dat het
schrijven van een programma ondersteunt, bv detecteert programmeerfouten, laat
toe om programma uit te voeren
- ~ Operating System (OS): Windows,MacOS,Android, Basisprogramma met
verschillende functies, waarbinnen andere programma’s of toepassingen kunnen
worden uitgevoerd (b.v., programmeeromgeving)
4e G: Talen met een hoger abstractieniveau:
- Voor een specifiek doel ontwikkeld vs. general purpose, i.e., bruikbaar voor alle
mogelijke programmeer-doelen
- Typisch te gebruiken binnen een specifieke context of “shellprogramma” bv HTML,
SQL, SAS, Matlab
5e G: Probleemoplossende talen: hierbij specificeert de programmeur geen algoritme maar
het probleem zelf, met een aantal bijbehorende beperkingen), vb AI
,H3 Variabelen
Variabele: geheugenplaats waar tijdelijk informatie kan opgeslagen worden
Integers: gehele getallen
Float: reële getallen
Complex: complexe getallen
String: een zin tussen “ “, of getallen maar wordt behandeld als een zin
Lijsten:index die begint vanaf 0, tussen [ ].
Tupel: in feite een immutable versie van een lijst. Staat tussen ( ).
Set: verzameling, volgorde speelt geen belang, tussen { } of set( )
Dictionary: woordenboek, kleine database waarbij 2 elementen met elkaar overeenkomen bv
apple en appel. notatie: {“...” : “...”, …..}
Commando’s voor conversie:
- int( )
- float( )
- complex( )
- list( )
- tuple( )
- set( )
- str( )
- eval( )
- ord( ) =>gehele waarde van een teken of getal in de UNICODE
- chr ( ) => omgekeerde van ^, geheel getal naar ASCII waarde
- bin( ), oct( ), hex( )
- end=” “, print dingen naast elkaar
H4 Bewerkingen
+
-
*
/
**: machtsverheffing
//: gehele deling
%: rest
==: gelijk }
!=: niet gelijk }
>: groter dan } => resultaat is een Boolean(=subtype int): True of false
<: kleiner dan }
>=: groter dan of gelijk aan }
<=: kleiner dan of gelijk aan }
een bewerking uitvoeren én toewijzen: (bewerking)= bv: +=
Logische bewerkingen: AND OR NOT XOR
Binaire bewerkingen: EN, OF EXCLUSIEVE OF: & | ^
De bewerkingen werken ook op Strings, < > etc gaan dan over alfabetische volgorde
in, not in: nagaan of een string (niet) deel uitmaakt van een andere string
sum, min, max: som minimum en maximum van een lijst berekenen.
, H5 Toetsenbord en output venster
Percent notatie:
“% [0] [totaal aantal karakters] [.aantal decimalen]type” %variabele
= nullen opvullen voor het getal indien nodig, aantal getallen na komma, type getal:
d (geheel getal met teken), E (reëel getal in wetensch. not.), f (reëel getal in dec. not.) s
(string)
Format notatie:
“{nr: [0] [totaal aantal karakters] [.aantal decimalen]type}” .format(variabele 1,...)
Aanhalingstekens:
een \ voor het percent die nu nog een tussen “” staat en een \ erna maar voor de tweede “
bbv: print(" \ "%s\" " % v1)
H6 Conditionele programmeertechnieken
lus: stukje code herhalen
geneste lus: een lus in een lus
if-clausule *conditie*: : geeft True of False, indien True dan wordt de code uitgevoerd
else *conditie*: : “indien een if niet voldaan is, voer deze code uit” (niet verplicht)
elif *conditie*: : else + if: Als de vorige (el)if niet voldaan is, ga deze if af
range(stopwaarde), range(startwaarde, stopwaarde), range(startwaarde, stopwaarde,
stapgrootte). Tellen vanaf 0!!
for constructie: itereren: for x in list: (kan ook in range etc)
while *conditie*: : zolang de conditie geldt wordt de code herhaald.
break: de lus wordt verbroken
continue: lus wordt niet verbroken maar gaat verder naar een volgende iteratie bv een
bepaald type getal overslaan, dan gebruiken we continue.
Exhaustief:
- Worden alle mogelijke gevallen afgedekt? => moet
- Steeds indien else-clausule opgenomen
- Niet noodzakelijk voor correcte werking => programma moet niet per se werken
Exclusief:
- Meerdere condities die true opleveren? => mag niet
- Niet noodzakelijk voor correcte werking => programma moet niet per se werken
- Correcte volgorde te controleren voor niet- exclusieve (overlappende) condities!
H7 Basis Algoritmen
zie ppt. en boek, meer complexe codes om bv een element te zoeken in een rij of matrix.