BLOK 3 HOOFDSTUK 8 PARAGRAAF 2 4-BITS DEMOCOMPUTER IN 1000 STO R0 0000 opdracht tot opslaan 0000 waar moet het worden opgeslagen IN 1000 LD R1 0011 opdracht tot kopiëren 0000 welk adres moet gekopieerd worden ADD R1 1101 OUT 1011 PROGRAMMEREN IN ASSEMBLEERTAAL Optimaliseren van programmalussen Opstarten van het OS Kraken van software ASSEMBLER a invoeren = load (inladen) onthouden = move (plaats in geheugen) optellen = add (tel op) uitvoeren = load (uitladen) vergelijken = compare (vergelijk) kiezen = jump (spring) herhalen = repeat (herhaal) b Ja, elke basisinstructie komt in principe in elke assembleertaal voor. PARAGRAAF 2 WAT DOET EEN COMPILER? Een compiler voert het geprogrammeerde programma ui, controleert of de syntaxis in orde is en maakt een uitvoerbaar bestand. Nadat het programma gecompileerd is, kun je het resultaat van jouw noeste arbeid aanschouwen door de executeble uit te voeren.
PARAGRAAF 3 EEN BASICPROGRAMMA AANVULLEN a Nee, want er verschijnt slechts een vraagteken op het beeldscherm. b - c 5 PRINT "Ik bereken voor u het drievoud van een getal." 6 PRINT "Type achter het vraagteken een getal." 25 PRINT "Het drievoud van het ingevoerde getal is:" d De toe te voegen regel is: 1 REM Dit programma berekent het drievoud van een ingevoerd getal. EEN BASICPROGRAMMA WIJZIGEN a 10 REM Dit programma berekent het kwadraat van een getal. 20 PRINT Ik bereken voor u het kwadraat van een getal. 30 PRINT Typ achter het vraagteken een getal. 40 INPUT Getal 50 LET Kwadraat = Getal * Getal 60 PRINT Het kwadraat van het getal is: 70 PRINT Kwadraat 80 END b De schermafdruk ziet er als volgt uit: Ik bereken voor u het kwadraat van een getal. Typ achter het vraagteken een getal.? 5 Het kwadraat van het ingevoerde getal is: 25 EEN PASCALPROGRAMMA WIJZIGEN a b program BerekenKwadraat (input, output); {Dit programma berekent het kwadraat van een ingevoerd getal} var: getal, kwadraat : real; writeln("ik bereken voor u het kwadraat van een getal."); writeln("voer nu een getal in:"); read (getal); kwadraat := getal * getal; writeln("het kwadraat van het ingevoerde getal is:"); write (kwadraat); De schermafdruk ziet er bijvoorbeeld als volgt uit: Ik bereken voor u het kwadraat van een getal. Voer nu een getal in: 6 Het kwadraat van het ingevoerde getal is: 36
EEN PASCALPROGRAMMA CODEREN Je moet een programma schrijven dat de wortel van een ingevoerd getal berekent. De opdracht eindigt met Maak ook een PSD. De volgorde van deze opdrachten is natuurlijk verkeerd. Je moet eerst een PSD maken en daarna het programma schrijven. Eigenlijk moet je nadat de gebruiker een getal heeft ingevoerd, eerst testen of het een positief getal is. De wortel van een negatief getal heeft geen reële uitkomst. a. program BerekenWortel (input, output); {Dit programma berekent de Wortel van een ingevoerd getal} var getal, wortel: real; writeln("ik bereken voor u de wortel van een getal."); writeln("voer nu een getal in:"); read (getal); wortel := sqrt(getal); write("de wortel van het ingevoerde getal is:"); writeln (wortel); De schermafdruk ziet er bijvoorbeeld als volgt uit: Ik bereken voor u de wortel van een getal. Voer nu een getal in: 49 De wortel van het ingevoerde getal is: 7 b. - PARAGRAAF 4 EEN BASICPROGRAMMA DRUKMACHTEN De opdracht eindigt met Maak ook een PSD. De volgorde van deze opdrachten is natuurlijk verkeerd. Je moet eerst een PSD maken en daarna het programma schrijven. a 10 REM Dit programma berekent de machten van 2. 20 PRINT Ik bereken voor u de machten van 2. 30 LET Macht = 1 40 FOR Teller = 1 TO 10 50 LET Macht = Macht * 2 60 PRINT 2; tot de macht"; Teller; " = " Macht 70 NEXT Teller 80 END
b 10 REM Dit programma berekent de machten van een grondtal. 20 PRINT Ik bereken voor u de machten van een grondtal. 30 PRINT Typ achter het vraagteken het grondtal. 40 INPUT Grondtal 50 LET Macht = 1 60 FOR Teller = 1 TO 10 70 LET Macht = Macht * Grondtal 80 PRINT Grondtal; tot de macht"; Teller; " = "; Macht 90 NEXT Teller 100 END c Wijzig in de uitwerking van opdracht b regel 60 en regel 70 als volgt: 60 FOR Teller = 10 TO 1 STEP -1 70 LET Macht = Grondtal ^ Teller Regel 50 kan bovendien vervallen. d - EEN PASCALPROGRAMMA DRUKMACHTEN program DrukMachten (input,output); var i, macht, grondtal : integer; writeln( Ik bereken voor u machten van een getal. ); writeln( Geef een getal kleiner dan 10: ); read(grondtal); writeln( De machten van, grondtal, zijn: ); macht := 1; for i:=1 to 20 do macht := macht * grondtal; writeln(grondtal, tot de macht, i, =, macht); end;
PARAGRAAF 5 EEN VARIABELE VOLGEN a program MINIMUM (input, output); var getal1, getal2, getal3, getal4, kleinste : real; 1. kleinste = 0 {inlezen van vier getallen} readln(getal1); readln(getal2); readln(getal3); readln(getal4); end {minimum bepalen} if(getal1 < getal2) 2. kleinste = 0 then kleinste := getal1; else kleinste := getal2; if(getal3 < kleinste) 3. kleinste = 4 then kleinste := getal3; if(getal4 < kleinste) 4. kleinste = 2 then kleinste := getal4; write(kleinste); 5. kleinste = 2 EEN PASCALPROGRAMMA WIJZIGEN a program MINIMUM (input, output); var getal1, getal2, getal3, getal4,getal5,kleinste : real; {inlezen van vijf getallen} readln(getal1); readln(getal2); readln(getal3);readln(getal4);readln(getal5); {minimum bepalen} if(getal1 < getal2) then kleinste := getal1; else kleinste := getal2; if(getal3 < kleinste) then kleinste := getal3; if(getal4 < kleinste) then kleinste := getal4; if(getal5 < kleinste) then kleinste := getal5; write(kleinste); b -
c program MAXIMUM (input, output); var getal1, getal2, getal3, getal4,getal5,grootste : real; {inlezen van vijf getallen} writeln( Voer achtereenvolgens vijf getallen in. Het programma bepaalt het grootste getal. ); readln(getal1); readln(getal2); readln(getal3);readln(getal4);readln(getal5); {maximum bepalen} if(getal1 > getal2) then grootste := getal1; else grootste := getal2; if(getal3 > grootste) then grootste:= getal3; if(getal4 > grootste) then grootste:= getal4; if(getal5 > grootste) then grootste := getal5; writeln( Het grootste getal is :,grootste); d
PARAGRAAF 6 PROCEDURES IN PASCAL a program MINIMUM2 (input, output); var getal1, getal2, getal3, getal4,kleinste : real; GetallenInvoeren; MinimumBepalen; UitvoerAfdrukken; b - procedure GetallenInvoeren() {inlezen van vier getallen} writeln( Geef achtereenvolgens vier getallen. Het programma bepaalt het kleinste getal. ); readln(getal1); readln(getal2); readln(getal3);readln(getal4); end; proceure MinimumBepalen() {minimum bepalen} if(getal1 < getal2) then kleinste := getal1; else kleinste := getal2; if(getal3 < kleinste) then kleinste := getal3; if(getal4 < kleinste) then kleinste := getal4; end; procedure UitvoerAfdrukken() writeln( Het kleinste getal dat u invoerde was :,kelinste); writeln( Bedank voor het gestelde vertouwen en tot ziens. ); end;
PARAGRAAF 8 VIER TORENS h=1..7 d=1,5 b=1,5 bouw b,d,h PIRAMIDE BOUWEN t=1..5 b=0+t..11-t d=0+t..11-t h=2*t-1..2*t bouw b,d,h Toelichting t is een teller voor het aantal keer dat twee lagen worden gebouwd. b is de breedte. eerste rij van 1 tot en met 10 tweede rij van 2 tot en met 9 derde rij van 3 tot en met 8 etc. Steeds dus zowel aan het als aan het einde één minder. Dat realiseer je door t ervan af te trekken. d is de diepte. Daarvoor geldt hetzelfde als voor b. h is de hoogte. eerste rij 1 en 2 tweede rij 3 en 4 derde rij 5 en 6. Steeds nen met het volgende oneven getal. 2*t-1 levert de oneven getallen. KUBUS BOUWEN Een mogelijkheid met drie bouwopdrachten is deze. b=1..10 d=1,10 h=1,10 bouw b,d,h bouw d,b,h bouw h,d,b