UitwerkingopgavenlesbriefStruktograaf

14
Uitwerkingen Struktograaf jvd 31-05-07 1 Uitwerking opgaven lesbrief Struktograaf {opgave 1} schrijf "Voer drie getallen in" lees getal1, getal2, getal3 gemiddelde :=(getal1+getal2+getal3)/3 schrijf "Het gemiddelde is: ", gemiddelde {opgave 2} schrijf "Geef achtereenvolgens de breedte en " schrijf "hoogte van de balk, en daarna de lengte" schrijf "die de balk uitsteekt." lees breedte, hoogte, lengte gewicht:=(19*breedte*hoogte*hoogte)/lengte schrijf "Het maximale gewicht dat deze balk " schrijf "kan dragen is: ", gewicht {opgave 3} i:=1 som:=0 ZOLANG i<=100 som:=som+i*i i:=i+1 schrijf "De som van de eerste 100 kwadraten is;", som

Transcript of UitwerkingopgavenlesbriefStruktograaf

Page 1: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 1

Uitwerking opgaven lesbrief Struktograaf

{opgave 1}

schrijf "Voer drie getallen in"

lees getal1, getal2, getal3

gemiddelde :=(getal1+getal2+getal3)/3

schrijf "Het gemiddelde is: ", gemiddelde

{opgave 2}

schrijf "Geef achtereenvolgens de breedte en "

schrijf "hoogte van de balk, en daarna de lengte"

schrijf "die de balk uitsteekt."

lees breedte, hoogte, lengte

gewicht:=(19*breedte*hoogte*hoogte)/lengte

schrijf "Het maximale gewicht dat deze balk "

schrijf "kan dragen is: ", gewicht

{opgave 3}

i:=1

som:=0

ZOLANG i<=100

som:=som+i*i

i:=i+1

schrijf "De som van de eerste 100 kwadraten is;", som

Page 2: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 2

{opgave 4}

schrijf "voer twee getallen in"

lees a,b

a<b?

JA

som:=a+2*b

NEE

som:=b+2*a

schrijf "De som van het kleinste getal en "

schrijf "het dubbele van het grootste is: ", som

{opgave 6}

schrijf "Voer een getal in"

i:=1

lees n

produkt := 1

ZOLANG i<=n

produkt:=produkt * i

i:=i+1

schrijf "Het produkt van de getallen 1 tot en met ",n

schrijf "is gelijk aan: ", produkt

{opgave 7}

schrijf "Voer twee getallen kleiner dan 1000 in,"

schrijf "het eerste kleiner dan het tweede."

lees a,b

i:=1

ZOLANG i<=100

kwadraat:= i * i

kwadraat > a

JA

kwadraat < b

JA

schrijf kwadraat

NEE

NEE

i := i + 1

Page 3: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 3

8)

Regel X Y X<6 x>4 commentaar

1,2,3,4 1 2 True Nee

5 1 3

6 3 3 Terug naar regel 3

3,4 3 3 True Nee

5 3 6

6 5 6 Terug naar regel 3

3 5 6 True Ja

6 7 6 Terug naar regel 3

3 7 6 False Naar regel 7

7 7 6 Afdrukken: 7 6

Dus op het scherm komt: 7 6

9a)

Regel Aantal Invoer-

getal

Invoergetal>10 Invoergetal>6 commentaar

1,2,3 0 13 True

4 0 8

5 1 8 Terug naar regel 3

3 1 8 False Door naar regel 6

6 1 8 Nee

7b 4 8

8 4 8 Afdrukken: 8

Dus op het scherm komt: 8

9b)

Regel Aantal Invoer-

getal

Invoergetal>10 Invoergetal>6 commentaar

1,2,3 0 20 True

4 0 15

5 1 15 Terug naar regel 3

3 1 15 True

4 1 10

5 2 10 Terug naar regel 3

3 2 10 False Door naar regel 6

6 2 10 Ja

7a 2 10 Afdrukken: 10

8 3 10

9 3 10 Afdrukken: 3

Dus op het scherm komt: 10

3

10) Als we van drie getallen de kleinsten moeten hebben, hebben we een herhaalde

keuze nodig, bijvoorbeeld volgens onderstaand schema:

,:

,

,:

,

ja a b c dus a en bja b c

nee b c en b a dus a en ca b

ja b a c dus a en bnee a c

nee a b en a c dus b en c

® < <<

® > ><

® < <<

® > >

Page 4: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 4

Een andere mogelijkheid is:

{opgave 10, alternatief}

schrijf "Voer drie getallen in"

lees a,b,c

a<b

JA

b<c

JA

som:=a*a+b*b

NEE

som:=a*a+c*c

NEE

a<c

JA

som:=a*a+b*b

NEE

som:=b*b+c*c

schrijf "De som van de kwadraten van de kleinste twee"

schrijf "getallen is: ",som

{opgave 11}

schrijf "Geef het beginkapitaal"

lees kapitaal

schrijf "Hoeveel procent rente krijg je?"

lees rente

schrijf "In welk jaar beginnen?"

lees beginjaar

i:=0

schrijf "jaar kapitaal"

ZOLANG i<=20

kapitaal:=kapitaal*(1+rente/100){bij bv 5% rente moet je met 1.05 vermenig-vuldigen om de nieuwe waarde te krijgen}

schrijf beginjaar+i," ", kapitaal{de tussengevoegde spaties voorkomen dat degetallen 'aan elkaar geplakt' worden}

i:=i+1

{opgave 10}

schrijf "Voer drie getallen in"

lees a,b,c

a<b

JA

kleinste1:=a

b<c

JA

kleinste2:=b

NEE

kleinste2:=c

NEE

kleinste1:=b

a<c

JA

kleinste2:=a

NEE

kleinste2:=c

som:=kleinste1*kleinste1 + kleinste2*kleinste2

schrijf "De som van de kwadraten van de kleinste twee"

schrijf "getallen is: ",som

Page 5: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 5

{opgave 12}

schrijf "Wat is de prijs van het artikel?"

lees prijs

prijs >150

JA

prijs:=prijs *1.19

NEE

prijs<55

JA

prijs:=prijs*1.11

NEE

prijs:=prijs*1.16

schrijf "De nieuwe prijs wordt: ", prijs

{opgave 13}

kapitaal := 100000

n:=0

rente:=4{door het rentepercentage als eenvariabele in te voeren is het latermakkelijk te veranderen!}

ZOLANG kapitaal*(1+rente/100)>=5000{als kapitaal+rente in komend jaar nogboven 5000 komt, is er nog geld genoeg}

kapitaal:=kapitaal*(1+rente/100)-5000{rente erbij geteld, opname eraf}

n:=n+1

n>50

JA

schrijf "Dit kan je doen ","tot aan je pensioen."

NEE

schrijf "Dit kan je ",n," jaar doen"

{opgave 14}

schrijf "Geef het aantal gescoorde punten"

lees score

score>=0 en score<=99

JA

prijs:=500+score*3

score>46

JA

prijs:=prijs+(score-46)*2

NEE

schrijf "Het prijzengeld is ", prijs, " euro"{let op het gebruik van spaties!!}

NEE

schrijf "Deze score is niet mogelijk!"

Page 6: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 6

{opgave 15}

schrijf "Geef achtereenvolgens de lengte, de breedte en de hoogte"

lees lengte, breedte, hoogte

breedte>=10 en lengte>=15

JA

lengte+breedte+hoogte<=120 en lengte<=70

JA

schrijf "Het pakket heeft toegestane maten"

NEE

schrijf "Het pakket is te groot"

NEE

schrijf "Het pakket is te klein"

{opgave 16}

{Er moet steeds een groepje van (10+1) opdrachtenherhaald worden.Vandaar een herhaling in een herhaling.}

i:=0 {teller voor het aantal groepjes}

j:=1 {teller voor opdrachten binnen een groepje}

schrijf "getal kwadraat" {kolomtitels}

ZOLANG i<=190 {20 groepjesvan 10 berekeningen,begin bij 0}

ZOLANG j<=10

schrijf i+j, " ",(i+j)*(i+j) {spaties tussenvoegen!}

j:=j+1

schrijf "" {de lege regel na 10 regels van de tabel}

j:=1 {teller binnen het groepje weer beginwaarde geven}

i:=i+10 {na het groepje van 10+1 opdrachten wordt aan hetvolgende groepje begonnen.}

Page 7: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 7

{opgave 17}

{Vanwege onderhoud of wijzigingen aan het programma is hetverstandig om in de code van het programma zo weinig mogelijkconstanten (vaste getallen) op te nemen. Vandaar dat dewaarden voor de kapitalen en de rentes apart wordenopgegeven in de eerste regels. Als je dezelfde vraag vooreen ander kapitaal wil oplossen hoef je alleen in de eersteregel dat kapitaal te veranderen!)

kapitaal1:=2000

rente1:=7

kapitaal2:=3000

rente2:=5

n:=0

ZOLANG kapitaal1<kapitaal2

kapitaal1:=kapitaal1*(1+rente1/100)

kapitaal2:=kapitaal2*(1+rente2/100)

n:=n+1

schrijf "Na ",n, " jaar is het eerste kapitaal groter"

schrijf "dan het tweede."

{opgave 18}

kapitaal:=100000

schrijf "Geef het op te nemen bedrag"

lees bedrag

schrijf "Wat is het rentepercentage?"

lees rente

n:=0

jaar:=2002

schrijf "jaar waarde kapitaal"

ZOLANG kapitaal*(1+rente/100)>=bedrag en n<=51

kapitaal:=kapitaal*(1+rente/100)-bedrag

schrijf jaar+n, " ",INT(kapitaal)

n:=n+1

n>50

JA

schrijf "Dit kun je dus ","doen tot aan je pensioen"

NEE

schrijf "Dit kan je dus ",n, " jaar doen"

Page 8: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 8

{opgave 19}

schrijf "Geef een geheel getal"

lees getal

hulpwaarde := INT(getal/10)

cijfer:=getal-10*hulpwaarde

schrijf "Het laatste cijfer is: ",cijfer

{opgave 20}

schrijf "Geef een geheel getal"

lees getal

hulpwaarde := INT(getal/100)

cijfers:=getal-100*hulpwaarde

cijfers=0

JA

schrijf "De laatste twee ","cijfers zijn 00"

NEE

schrijf "De laatste twee","cijfers zijn: ", cijfers

{opgave 21}

voor i:=1 tm 10

dobbelsteen(i):=1+INT(6*random)

schrijf "worp ", i, ": ",dobbelsteen(i)

{opgave 22}

schrijf "aantal gemiddeld aantal ogen"

aantal:=10

som:=0

ZOLANG aantal<=100

voor i:=1 tm aantal

ogen:=1+INT(6*random) {werpen}

som:=som+ogen {totaal aantal ogen}

gemiddelde:=som/aantal

schrijf aantal, " ", gemiddelde

aantal:=aantal+10

som:=0 {anders wordt het vorige totaal onthouden!}

Page 9: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 9

{opgave 23}

aantal:=100

{we maken een array "frequentie" waarinwe de frequenties gaan bijhouden}

voor i:=1 tm 16

frequentie(i):=0

t:=1

ZOLANG t<=aantal

dobbel1:=1+INT(6*random)

dobbel2:=1+INT(6*random)

dobbel3:=1+INT(6*random)

ogen:=dobbel1+dobbel2+dobbel3

frequentie(ogen-2):=frequentie(ogen-2)+1{bv: aantal ogen 7, wordt opgeslagen in frequentie(5)door de waarde met 1 te verhogen}

t:=t+1

schrijf "aantal ogen frequentie"

voor i:=1 tm 16

schrijf i+2, " ", frequentie(i)

{opgave 24}

schrijf "Voer de eerste zin in"

lees zin1

schrijf "Voer de tweede zin in"

lees zin2

len(zin1)>len(zin2)

JA

schrijf "De tweede ","zin is ",len(zin1)-len(zin2)," karakters korter dan"," de eerste zin."

NEE

len(zin1)=len(zin2)

JA

schrijf "De ","zinnen zijn ","even lang."

NEE

schrijf "De tweede ","zin is ",len(zin2)-len(zin1)," karakters langer dan"," de eerste zin."

Page 10: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 10

{opgave 25}

schrijf "Voer een woord in van minimaal 8 karakters"

lees woord

lengte:=len(woord)

lengte<8

JA

schrijf "Het woord is te kort!"

NEE

schrijf woord[lengte-4:lengte]

{opgave 26}

schrijf "Typ een woord"

lees woord

lengte:=len(woord)

i:=lengte

droow:=""

ZOLANG i>=1

droow:=droow+woord[i]

i:=i-1

schrijf "Als je het door jou ingetypte ","woord omdraait, krijg je: ", droow

{opgave 27}

schrijf "Voer een woord in"

lees woord

hulpwoord:=""

i:=len(woord)

ZOLANG i>=1

hulpwoord:=hulpwoord+woord[i]

i:=i-1

woord=hulpwoord

JA

schrijf "Dit woord ","is een palindroom."

NEE

schrijf "Dit woord is ","geen palindroom"

Page 11: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 11

{opgave 28}

schrijf "Typ een zin, bestaande uit (hoofd-)letters ","en spaties, afgesloten met een punt."

lees zin

lengte:=len(zin)-1 {laatste karakter is een punt!}

{we gaan de ASCII-waarden van de karakters uit de zinopzoeken en in een array ascirij gaan we de frequentiesbijhouden. We geven ascirij lengte 122, hoewel we nietalle variabelen van die rij nodig zullen hebben.Het indexnummer van de variabele is tevens de ASCII-waarde van het karakter.

voor i:=1 tm 122

ascirij(i):=0 {frequenties worden op 0 gezet}

voor i:=1 tm lengte

nummer:=asc(zin[i]) {ASCII-nummer karakter bepalen}

ascirij(nummer):=ascirij(nummer)+1 {de frequentie van het ASCII-nummer wordt 1 verhoogd}

schrijf zin

voor i:=65 tm 90 {ASCII-nummers hoofdletters}

ascirij(i)=0

JA

{als frequentie=0 hoefter niets afgedrukt}

NEE

schrijf chr(i), " ",ascirij(i)

voor i:=97 tm 122 {ASCII-nummers kleine letters}

ascirij(i)=0

JA NEE

schrijf chr(i), " ",ascirij(i)

Page 12: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 12

{opgave 29}

schrijf "Voer een woord in"

lees woord

code:=4 {dit is het aantal letters waarmee gecodeerd wordt}

lengte:=len(woord)

i:=1

codering:=""{dit wordt het gedodeerde woord}

ZOLANG i<=lengte

ascicode:=asc(woord[i])

ascicode+code>122

JA

ascicode:=ascicode-26{ascicode moet een letter opleveren,dus een ascicode van 97 t/m 122}

NEE

codering:=codering+chr(ascicode+code)

i:=i+1

schrijf "Het gecodeerde woord is: ", codering

Page 13: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 13

{opgave 30}

schrijf "Voer een zin in, zonder ","hoofdletters of punt"

lees zin

code:=4

i:=1

codering:=""

lengte:=len(zin)

ZOLANG i<=lengte

ascicode:=asc(zin[i])

ascicode = 32{spatie?}

JA

codering:=codering + " "{tussenvoegen van de spatie}

NEE

ascicode+code>122

JA

ascicode:=ascicode-26

NEE

codering:=codering+chr(ascicode+code)

i:=i+1

schrijf "De gecodeerde zin is: ",codering

Page 14: UitwerkingopgavenlesbriefStruktograaf

Uitwerkingen Struktograaf jvd 31-05-07 14

{opgave 31}

schrijf "Typ een zin"

lees zin

lengte:=len(zin)

nieuwe_zin:="" {Dit wordt de nieuwezin zonder klinkers, nu nog leeg}

{We gaan nu een array met de klinkers maken. Om te controleren of een karakter in de zin een klinker is kunnen we dan dezearray gebruiken}

klinkers(1):="a"

klinkers(2):="e"

klinkers(3):="i"

klinkers(4):="o"

klinkers(5):="u"

klinkers(6):="A"

klinkers(7):="E"

klinkers(8):="I"

klinkers(9):="O"

klinkers(10):="U"

{We gaan nu elk karakter in de zin bekijken}

i:=1

raak:=0 {hiermee onthouden we straks of er een klinker staat}

ZOLANG i<=lengte

voor j:=1 tm 10

zin[i]=klinkers(j)

JA

raak:=1 {als het i-de karakter eenklinker is, wordt dat door de variabele'raak' onthouden

NEE

raak=1

JA

raak:=0 {raak weer op 0 zetten, anderszijn de volgende klinkers niet te ontdekken}

NEE

nieuwe_zin:=nieuwe_zin+zin[i]

i:=i+1

schrijf nieuwe_zin

{Opmerking: als je de zin(nen) langer maakt dan anderhalve regel is er (blijkbaar)te weinig ruimte, en wordt de zin afgekapt.}