Programmeren
op alle niveaus
Wat is programmeren?
Instrueren van een programmeerbare computer
Wat is een computer?
Een apparaat dat geprogrammeerd kan worden om
wiskundige of logische berekeningen uit te voeren
Computer
Charles Babbage (1791-1871)
Ada Lovelace (1815-1852)

Elektronische computer
ENIAC (1946)
Ponskaarten (1960-1980)
Muis, scherm, toetsenbord
Basis blijft hetzelfde
Computer rekent met stroom
0 = geen stroom
1 = wel stroom
Mensen rekenen met vingers
0 1 2 3 4 5 6 7 8 9


Code
0001 =1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
01000001 = a
01000011 = b
01000100 = c
01000101 = d
01000110 = e
01000111 = f
01001000 = g
01001001 = h
01001010 = i
01001011 = j
01001100 = k
01000011 = b
01000100 = c
01000101 = d
01000110 = e
01000111 = f
01001000 = g
01001001 = h
01001010 = i
01001011 = j
01001100 = k
Rekenen in code
3 + 4 = ?
0011 (3)
0100 (4) +
0111 (7)
Programmeren
= Instrueren van een programmeerbare computer
Behalve data (cijfers, letters) ook instructies (opdrachten)
10011000 00000011 00000100
=
add 3, 4
Wat een gedoe!
3 + 4
==>
add 3, 4
==>
10011000 00000011 00000100
==>
00000111
==>
7
Programmeertalen
Steeds simpeler en abstracter
ALGOL (jaren 60)
main:(
INT default upb := 3;
MODE INTARRAY = [default upb]INT;
INTARRAY array = (1,2,3,4,5,6,7,8,9,10);
INT sum := 0;
FOR i FROM LWB array TO UPB array DO
sum +:= array[i]
OD;
# Define the product function #
PROC int product = (INTARRAY item)INT:
(
INT prod :=1;
FOR i FROM LWB item TO UPB item DO
prod *:= item[i]
OD;
prod
) # int product # ;
printf(($" Sum: "g(0)$,sum,$", Product:"g(0)";"l$,int product(array)))
)
C (jaren 70)
int arg[] = { 1,2,3,4,5 };
int arg_length = sizeof(arg)/sizeof(arg[0]);
int *end = arg+arg_length;
int sum = 0, prod = 1;
int *p;
for (p = arg; p!=end; ++p) {
sum += *p;
prod *= *p;
}
Perl (jaren 80)
my @list = ( 1, 2, 3 );
my ( $sum, $prod ) = ( 0, 1 );
$sum += $_ foreach @list;
$prod *= $_ foreach @list;
Python (jaren 90)
numbers = [1, 2, 3]
total = sum(numbers)
product = 1
for i in numbers:
product *= i
Haskell
JavaScript
Programmeren in je browser!
Rekenen
3 + 4
5 * 6
12 / 2
(3 + 5) / 4 Tekst ("strings")
"hallo"
"strings" + "plakken"
"hoepla".length Logica
3 < 5
4 > 10
8 <= 8
9 >= 1
"dit" == "dat"
"iets" != "niets" Meer logica
true && false
false || true
false == !true Variabelen
var x; var y; x = 3; y = 4; x + y;x != y
Functies
alert("Hallo!");
confirm("Weet je het zeker?");
prompt("Groente of fruit?");Structuur
if (3 < 4) {alert("Links");}else {alert("Rechts");}
Zelf functies maken
var dubbel = function(x) { alert(x * 2); }dubbel(6);
Functies
var getal_raden = function(x) {var gok = prompt("Welk getal heb ik in mijn hoofd?");if (gok == x) {alert("Gefeliciteerd, je hebt het geraden! Knapperd");}else {if (gok < x) {alert("Nee joh, veel meer!");}else {alert("Oh, nee, dat is wel erg veel...");}getal_raden(x);}}
Programmeren
By maarten
Programmeren
- 233

