Skip to main content

Savvy flexboek - Hoofdstuk 1

Page 1


Savvy

informatica wetenschappen

INKIJKEXEMPLAARDIEKEURE

Inleiding

INKIJKEXEMPLAARDIEKEURE

We leven in een digitale wereld. Alles om ons heen wordt meer en meer aangestuurd, geregeld en bepaald door computers. Daarom is kennis over de werking van deze digitale wereld noodzakelijk. We noemen dat het domein van de informaticawetenschappen.

Informaticawetenschappen1 is de wetenschappelijke discipline die de basis vormt voor het ontwerpen van computers, het programmeren van computers, het verwerken van informatie, het algoritmisch oplossen van problemen, het analyseren en begrijpen van algoritmische processen en het bestuderen van de daarmee verbonden socio-technische vraagstukken. Daarmee verschaft de discipline wetenschappelijke fundamenten voor de ICTapplicaties van vandaag en morgen.

Het fundamentele, centrale concept van informaticawetenschappen is het algoritme.

Een algoritme is een stappenplan dat aangeeft welke beslissingen je moet nemen en welke handelingen je moet uitvoeren. Als je het stappenplan precies volgt, kom je altijd tot de juiste oplossing of voltooi je de taak goed.

Dit boek handelt over het maken van algoritmen. Je vertrekt van de basis en duikt onder in de boeiende wereld van algoritmen. Je leert dat er geen één-op-één relatie is tussen een probleem en een algoritme. Eenzelfde probleem kan door meerdere algoritmen opgelost worden. Afhankelijk van de situatie is soms het ene algoritme meer aangewezen dan het andere.

Een voorstelling van een algoritme in een programmeertaal, zodat het door een computer kan worden uitgevoerd, is een programma. Programma’s ontwerpen, implementeren en verbeteren, noemen we programmeren. Je gaat je algoritmen omzetten in programma’s zodat je kan testen of je denkwijze een juiste oplossing voor het gestelde probleem oplevert. In deze uitgave is er gekozen voor Python als programmeertaal.

Om inzicht te krijgen in de opbouw en werking van algoritmen is het noodzakelijk dat je vanaf het begin zelf algoritmen en programma’s maakt. Enkel op deze manier verwerf je het denkproces dat je in staat stelt om complexere algoritmen te maken en te begrijpen. Alle oefeningen in dit boek zijn ook beschikbaar op Polpo in een digitale programmeeromgeving.

Waarom Savvy? Savvy staat voor slim, snugger, doordacht, inzichtelijk, technisch vaardigprecies wat je moet zijn (en zal worden!) om met algoritmen aan de slag te gaan. Savvy is je gids op weg naar meer inzicht en digitale scherpzinnigheid.

Veel plezier met dit boek.

1 KVAB, Samaey, G. & Van Remortel, J. (2014). Informaticawetenschappen in het leerplichtonderwijs. Standpunten 27

INKIJKEXEMPLAARDIEKEURE

Hoe gebruik je

Dit boek bevat 4 hoofdstukken.

Op het einde van elk hoofdstuk staan oefeningen om de aangeleerde kennis en technieken onder de knie te krijgen en in te oefenen. De oefeningenreeks start met oefeningen Klaar voor de oefeningen? die peilen naar je inzicht in de leerstof. Daarna staan de praktische oefeningen.

Er zijn drie niveaus: gemakkelijk, gemiddeld en gevorderd. Elk hoofdstuk sluit aan op de leerstof uit de vorige hoofdstukken.

De nities en duiding vind je op een groene achtergrond.

Syntax vind je op een blauwe achtergrond.

De syntax is de grammatica van een programmeertaal. Hierbij gebruiken we volgende afspraken:

> woord ::= hierna volgt een verklaring van de betekenis van het woord dat ervoor staat.

> <getal> op de plaats van <getal> plaats je iets dat een getal oplevert.

> {<letter>} nul, één of meerdere letters.

> een|twee je hebt de keuze, je kan “een” of “twee” gebruiken.

> [ … ] hetgeen tussen [] staat is optioneel. Je kan het gebruiken maar je moet het niet gebruiken.

Voorbeeld syntax: print({<expressie>}[, sep = <seperator>][, end = <end>])

Voorbeelden gebruik: instructie resultaat print() Je krijgt een lege regel. print(“een wistjedatje”) een wistjedatje

print(5, “maart”, 2026) 5 maart 2026

print(5, “maart”, “2026, sep = “+”) 5+maart+2026

Savvy?

INKIJKEXEMPLAARDIEKEURE

In Savvy maak je algoritmen met datastructuren. Je gebruikt softwarebibliotheken om functies te implementeren. Met deze pictogrammen maken we duidelijk wat aan bod komt in een hoofdstuk:

Datastructuur

Softwarebiblitoheek

In elk hoofdstuk wordt een gestructureerde programmeertaal gebruikt en een systematiek gehanteerd bij het ontwerpen van de oplossingen voor de concrete problemen.

Interpreteer en experimenteer

Regelmatig komt deze titel aan bod. Onder deze titel staan een aantal taken om uit te voeren. Vaak wordt gevraagd om een programma te lezen en de uitvoer te achterhalen of aan te passen. Het is belangrijk dat je deze opdrachten zorgvuldig en aandachtig uitvoert, want ze vormen een goede basis voor de rest van het hoofdstuk.

In bijlage 2 vind je een overzicht van de meest voorkomende foutmeldingen bij het debuggen van een programma. bijlage

In bijlage 1, achteraan in dit boek, staat uitgelegd hoe je de ontwikkelomgeving voor Python, Thonny, installeert en gebruikt.

Inhoud

Debouwstenen DeselectieAllemaalfunctiesDeherhaling pagina9 pagina25 pagina42 pagina56

INKIJKEXEMPLAARDIEKEURE

INKIJKEXEMPLAARDIEKEURE

1 INKIJKEXEMPLAARDIEKEURE

1

De bouwstenen INKIJKEXEMPLAARDIEKEURE

Inhoudstafel

1 INKIJKEXEMPLAARDIEKEURE

1.1 Waarom Python?

Er bestaan heel wat verschillende soorten programmeertalen. In dit boek leer je programmeren in Python. Python is gemakkelijk (en zelfs leuk!) om te leren. In plaats van je in strikte syntaxisregels te storten, leest Python als Engels en is het eenvoudig te begrijpen voor iemand die nieuw is in programmeren.

In de programma’s worden vooral standaard programmeerstructuren gebruikt. Python biedt soms andere mogelijkheden, maar daar kiezen we in dit leerboek bewust niet voor, zodat je gemakkelijk naar een andere programmeertaal kan overschakelen.

Interpreteer en experimenteer

Taak

1 Lees onderstaande programma’s.

2 Wat denk je dat er gebeurt? Wat denk je dat de uitvoer is?

3 Open de programma’s in Thonny, voer ze uit en controleer of je veronderstelling juist is.

Open Begroeting1.py

print("goeiemorgen")

Open Begroeting2.py print("goeiemorgen") print("morgen")

Open Begroeting3.py

print("goeiemorgen", "morgen", "goeiedag")

Open Begroeting4.py

naam = input("Geef een naam in. ") print("goeiemorgen", naam)

Taak

1 Pas Begroeting4.py aan zodat de output wordt:

>>> %Run begroeting5.py

Geef een naam in. Piet goeiemorgen goeiemorgen Piet

2 Bewaar het programma als Begroeting5.py

Taak

1 Open Begroeting6.py en Begroeting7.py.

2 Voer beide programma’s uit. Welk programma zou je gebruiken voor een chatbot?

Begroeting6.py

INKIJKEXEMPLAARDIEKEURE

print("goeiemorgen Piet")

Begroeting7.py

naam = input("Met wie heb ik de eer?") print("Dag", naam)

1.2 Uitvoer

Als je tekst wilt laten verschijnen op het scherm, dan gebruik je de functie print(). We weten dat print een functie is door de haakjes die erachter staan. Tussen de haakjes schrijf je de tekst die je wilt laten verschijnen op het scherm. Deze tekst staat tussen aanhalingstekens (“” of ‘’). Deze geven het begin en het einde van de tekst aan.

print({<tekst>}) tekst ::= sliert van tekens tussen aanhalingstekens.

Aandachtspunten:

> Na het uitvoeren van de print-functie volgt een Enter

> Meerdere teksten worden gescheiden door een komma. De komma wordt in de uitvoer vervangen door een spatie.

Afspraak:

We gebruiken in dit boek “ ” en geen ‘ ’.

Voorbeelden: instructie resultaat

print(“2-FYS-212”) 2-FYS-212 print(“een”, “twee”) een twee print(“een”, “twee”, “drie”, “vier”) print(“hoedje van papier”)

een twee drie vier hoedje van papier

1.3 Variabelen

Een programma schrijf je niet voor één reeks waarden. Je wilt dat je programma breed toepasbaar is. Daarom verkiezen we Begroeting7.py boven Begroeting6.py. Iedereen die contact legt met de chatbot, wordt persoonlijk aangesproken. Je kan dit vergelijken met formules in een rekenblad, waarin je celadressen noteert in plaats van de waarden die in de cellen staan.

Wil je een probleem algemeen oplossen, gebruik dan variabelen om waarden in op te slaan. Naam in Begroeting7.py is een variabele. Je past abstractie toe. Het programma werkt voor elke waarde die je ingeeft.

Tijdens het verloop van een programma zal je ook waarden creëren die je tijdelijk moet opslaan om later te kunnen gebruiken. Gebruik ook hiervoor variabelen.

variabele ::= plaats in het geheugen met een naam waarin een waarde wordt bewaard. Je verwijst naar die plaats met de naam van de variabele.

Om een variabele aan te maken en een waarde te geven, gebruik je de toekenning

toekenning ::= <naam variabele> = <expressie>

INKIJKEXEMPLAARDIEKEURE

Noah variabele

naam = "Noah"

toekenning

naam

naam variabele

waarde variabele

De eerste keer dat je in je programma een waarde toekent aan een speci eke variabele naam, wordt de bijhorende variabele gecreëerd. Als je later een andere waarde aan dezelfde variabele toekent, wordt de eerste waarde overschreven, de oorspronkelijke waarde geraakt verloren. In de metafoor van de doos: je maakt de doos leeg en stopt er iets nieuws in, de doos kan maar één inhoud bevatten. Een variabele bevat altijd de laatst verkregen waarde.

Je kan aan een variabele een waarde toekennen of het resultaat van een berekening. Zo een berekening noemen we een expressie.

expressie ::= een combinatie van één of meerdere waarden, variabelen en functies gescheiden door operatoren die als resultaat één waarde oplevert.

Voorbeelden:

naam variabele waarde toekenning

weekdag donderdag

breedte 5

btw 0.21

getal1 10

getal2 7

som 17

Aandachtspunten:

weekdag = “donderdag”

breedte = 5

btw = 0.21

getal1 = 10

getal2 = 7

som = getal1 + getal2

INKIJKEXEMPLAARDIEKEURE

> Variabelen moeten geïnitialiseerd zijn voor je ze kan gebruiken.

>>> som = 0

> Onderstaande expressie geeft een foutmelding (NameError) als de variabele som niet werd geïnitialiseerd.

>>> som = som + 1

initialiseren van een variabele ::= een startwaarde toekennen aan de variabele.

Afspraken:

> Geef betekenisvolle namen aan variabelen. Een uitzondering hierop zijn wegwerpvariabelen. Dit zijn variabelen die slechts in een klein deel van de code gebruikt worden en daarna niet meer, bijvoorbeeld als teller.

> Gebruik enkel kleine letters in de naam van een variabele, geen hoofdletters.

> Een naam van een variabele bevat geen spaties.

> Een naam van een variabele begint met een letter

> Als je een naam voor een variabele wilt maken die uit meerdere woorden bestaat, gebruik dan het onderstrepingsteken (underscore) om de woorden te scheiden, bijvoorbeeld: beginwaarde_loon, straat_nr.

> Gebruik geen gereserveerde woorden als naam voor variabelen, dit zijn woorden met een speciale betekenis voor Python. Zie hieronder:

False

None

True and as assert break class continue def del elif else except nally for from global if import in is lambda nonlocal not or pass raise return try while with yield

Interpreteer en experimenteer

Taak

1 Open Som1.py

2 Voer het programma uit. Kan je uitleggen wat er aan de hand is?

getal1 = input("Geef een getal in.") getal2 = input("Geef een getal in.") som = getal1 + getal2 print("De som is", som)

1.4 Datatypes: integer, oat en string

Er bestaan verschillende soorten waarden, bijvoorbeeld een getal of tekst. Als je voor de eerste keer een waarde aan een variabele toekent, dan maak je de variabele aan en geef je die ook een (data)type. Het type wordt bepaald door de waarde die je erin plaatst. Wat je kan doen met de variabele is afhankelijk van het type.

type betekenis

integer (int)

oat

string (str)

Afspraak:

Dit is een geheel getal, een getal zonder cijfers na de komma dat positief, negatief of nul kan zijn.

Dit is een reëel getal, m.a.w. een decimaal getal. Als decimaal teken wordt een punt gebruikt.

voorbeelden

1000 -5

0

5.0 3.658 -153.26

Dit is tekst die bestaat uit geen of meerdere tekens, omsloten door dubbele of enkele aanhalingstekens. “ ” “Hallo” “9000”

We gebruiken steeds dubbele aanhalingstekens om een string aan te duiden.

Een betere de nitie van een variabele is:

variabele ::= plaats in het geheugen met een naam waarin een waarde van een bepaald type wordt bewaard.

Je verwijst naar die plaats met de naam van de variabele.

Aandachtspunt:

Een variabele krijgt het type van de waarde die je eraan toekent. Dit heet “soft typing”. Plaats je een waarde van een ander type in de variabele, dan zal het type van deze variabele veranderen. Dit proberen we uiteraard te vermijden, behalve bij standaardaanpassingen die zich voordoen bij het delen van twee integers. Het resultaat is dan van het type oat. In de volgende instructies krijgt de variabele “getal” telkens een ander type.

instructie

getal = “twee” getal = 5 getal = getal / 2

INKIJKEXEMPLAARDIEKEURE

type variabele “getal”

string integer oat

1.5 Rekenkundige operatoren

Voor het uitvoeren van een berekening, heb je operatoren nodig. De betekenis van de operator en het soort operator is afhankelijk van het type van de variabele.

Met rekenkundige operatoren kan je bewerkingen op getallen uitvoeren. De rekenkundige operatoren staan in stijgende prioriteit:

INKIJKEXEMPLAARDIEKEURE

% rest berekenen na een integer of gehele deling

of restberekening)

Haakjes in een expressie krijgen de hoogste prioriteit.

Als een getal van het type oat in een expressie staat, dan heeft de waarde van de expressie ook het type oat.

1.6 Invoer

De functie print() voor uitvoer ken je. Er bestaat een analoge functie om gegevens in te voeren:

<variabele>= input([<tekst>])Bij de uitvoering van het programma wordt een invoer van de gebruiker gevraagd. Hetgeen de gebruiker invoert wordt in de <variabele> opgeslagen. De <tekst> gebruik je om de gebruiker van het programma duidelijk te maken welke input je wilt. Het resultaat, de terugkeerwaarde van de functie input() is van het type string

Voorbeelden: invoer uitvoer naam = input(“Met wie heb ik de eer? ”)

Met wie heb ik de eer? |

1.7 De functie type()

type(<expressie>) geeft als resultaat het type van de waarde van de <expressie>.

Voorbeelden:

INKIJKEXEMPLAARDIEKEURE

>>> type(5)

<class ‘int’>

>>> type(6.2)

<class ‘float’>

>>> type("Hallo")

<class ‘str’>

>>> type(input("Geef een getal in."))

Geef een getal in. 5

<class 'str'>

>>> type(10 / 2)

<class ‘float’>

>>> type("10 / 2")

<class ‘str’>

>>> type(10 // 2)

<class ‘int’>

>>> type(9 // 2)

<class ‘int’>

>>> type(10 // 2.0)

<class ‘float’>

1.8 Typeconversie functies

Met de typeconversie functies kan je het type van een waarde wijzigen, indien dit mogelijk is.

int(<expressie>) De waarde van de <expressie> wordt, indien mogelijk, omgezet naar het type integer, anders verschijnt er een foutmelding.

oat(<expressie>) De waarde van de <expressie> wordt, indien mogelijk, omgezet naar het type oat, anders verschijnt er een foutmelding.

str(<expressie>) De waarde van de <expressie> wordt, indien mogelijk, omgezet naar het type string, anders verschijnt er een foutmelding.

Voorbeelden:

int(7.5)

int(“20.5”) foutmelding

INKIJKEXEMPLAARDIEKEURE

int("20.5") geeft een foutmelding omdat wat tussen de aanhalingstekens staat een oat is en geen integer.

Interpreteer en experimenteer

Taak

1 Open Som1.py

2 Pas het programma aan zodat het de som berekent van de ingevoerde getallen. Er worden gehele getallen ingevoerd.

3 Bewaar het programma als Som2.py

case-sensitive ::= de programmertaal Python is case-sensitive, m.a.w. er wordt een onderscheid gemaakt tussen hoofdletters en kleine letters.

1.9 De systematiek van het programmeren

Bij programmeren komt steeds dezelfde werkwijze terug:

> Probleemstelling

Dit is een duidelijke omschrijving van het concrete probleem.

Wat is het probleem? Welk resultaat wil je?

> Analyse

Je maakt een analyse van het probleem.

Wat heb je nodig om het probleem op te lossen?

> Algoritme

Je ontwerpt een algoritme om het probleem op te lossen en schrijft het uit aan de hand van bijvoorbeeld een pseudocode, een Nassi-Schneiderman diagram of een owchart.

Kan je het probleem opsplitsen in deelproblemen?

> Programma

Je zet het algoritme om in de gekozen programmeertaal.

> Testen

Je controleert of je programma werkt door het te testen. Vooraf bepaal je enkele testwaarden zodat alle uitzonderingsgevallen in je programma getest worden.

INKIJKEXEMPLAARDIEKEURE

Theater

Probleemstelling

Jeugdtheater Ondersteboven laat voor de jaarlijkse toneelvoorstelling programmaboekjes drukken om de kas te spijzen. Ze kiezen voor een A5-brochure met een gekleurde kaft en 12 pagina’s. De drukkosten bedragen €50,00 voor de opmaak van het boekje en €1,25 per exemplaar. De btw bedraagt 6%. Maak een programma dat het aantal gewenste programmaboekjes inleest en de kostprijs inclusief btw berekent.

Analyse

Invoer

waarde type aantal integer

Verwerking

Wat moet je berekenen, wat doet het programma?

> Hoeveel kosten de programmaboekjes exclusief btw?

> Hoeveel kosten de programmaboekjes inclusief btw?

Uitvoer

waarde type prijs_incl oat

Algoritme

Voor het noteren van het algoritme gebruiken we een soort pseudocode. We noteren kort wat er moet gebeuren.

lees aantal bereken prijs_excl bereken prijs_incl schrijf prijs_incl

Programma

# Bereken de prijs inclusief btw voor de programmaboekjes #

# Lees het gewenste aantal programmaboekjes in aantal = int(input("Hoeveel programmaboekjes wens je? "))

# Bereken de prijs exclusief btw en de prijs inclusief btw prijs_excl = 50.00 + aantal * 1.25 prijs_incl = prijs_excl * 1.06

# Schrijf de prijs inclusief btw uit print("De programmaboekjes kosten", prijs_incl,"euro inclusief btw.")

Bewaar het programma onder de naam Programmaboekjes.py

Testen

Kies testwaarden om je programma te testen.

Bijvoorbeeld

INKIJKEXEMPLAARDIEKEURE

Gewonnen!

Probleemstelling

Je klas heeft deelgenomen aan een wedstrijd en gewonnen. Jullie krijgen een heleboel lmtickets om gratis naar de cinema te gaan. Maak een programma waarin berekend wordt hoeveel tickets elke leerling krijgt en hoeveel tickets er nog overblijven.

Analyse

Invoer

waarde

aantal_lln_klas

aantal_tickets

Verwerking

Wat moet je berekenen? Wat doet het programma?

> Hoeveel tickets krijgt elke leerling?

> Hoeveel tickets blijven er over?

Uitvoer

waarde

tickets_per_lln integer tickets_over integer

Algoritme

lees aantal_lln_klas

lees aantal_tickets

bereken tickets_per_leerling met integer deling bereken tickets_over met restoperator schrijf tickets_per_lln schrijf tickets_over

Programma

# Bereken het aantal filmtickets per leerling en de overschot #

# Lees het aantal lln in de klas en het aantal gewonnen tickets in aantal_lln_klas = int(input("Hoeveel leerlingen zitten er in de klas? ")) aantal_tickets = int(input("Hoeveel filmtickets heb je gewonnen? "))

# Bereken het aantal tickets per lln en de overschot tickets_per_lln = aantal_tickets // aantal_lln_klas tickets_over = aantal_tickets % aantal_lln_klas # Schrijf het aantal tickets per lln en de overschot uit print("Elke leerling krijgt", tickets_per_lln, "filmtickets.") print("Er blijven", tickets_over, "filmtickets over.")

Bewaar het programma onder de naam Filmtickets.py

Testen

Kies testwaarden zodat je wel en geen rest hebt. Bijvoorbeeld: aantal_lln_klasaantal_tickets tickets_per_llntickets_over

Maak er een gewoonte van om je programma te voorzien van commentaar. Zo wordt het programma leesbaarder voor anderen. Als je het programma later wilt aanpassen, zie je zelf ook wat de verschillende blokken programmacode doen. Een commentaarregel begint met ‘#’. Python negeert deze regel.

INKIJKEXEMPLAARDIEKEURE

Klaar voor de oefeningen?

1.10 Klaar voor de oefeningen?

1 Wat is het resultaat van de expressie? Bepaal de waarde en het type (integer of oat) van het resultaat. expressie

100 + 5

200/10

6*7

33 // 5

2.0 * 6

33 % 5.0

100 – 5.0

20 + 5 / 5

(20 + 5) / 5

15 * 8 – 7 // 2 + 12 % 8 * 10

3 * 6 // 9 * 2

(3 * 6 // 9) * 2

2 De expressie en de variabele zijn gegeven. Bepaal de waarde en het type van de variabelen.

expressie

prijs = 5.0

aantal = 20 korting = 10

totaal = prijs * aantal * (100 – korting) / 100

getal = 1

getal = getal + 1

som = 0

INKIJKEXEMPLAARDIEKEURE

Variabele

prijs aantal korting totaal

getal getal

som = som + 10 som som product = 0 product = product * 5 product product aantal = 20

aantal = aantal / 5 aantal aantal

3

Bij het programmeren kan je fouten maken. We onderscheiden 3 types fouten:

• Syntaxisfout: je maakt een fout tegen de structuur of de grammatica van de programmeertaal.

• Logische fout: je hebt een inzichtelijke fout gemaakt bij het programmeren.

• Runtime fout: er loopt iets fout bij het uitvoeren van het programma, bijvoorbeeld delen door 0.

INKIJKEXEMPLAARDIEKEURE

Volgende codefragmenten bevatten een fout. Kan je ze verbeteren? Noteer de verbeterde instructie(s) en het type fout. Bij een runtime fout moet je meestal een stuk code toevoegen om het uitzonderingsgeval en de mogelijke fout op te vangen. Je hoeft dit hier niet te doen, je noteert enkel runtimefout en het nummer van de regel waarin de fout voorkomt.

codefragmenten

getal1 = 5

getal2 = 7

print("De som is:"getal + getal2)

# De populatie stijgt met 10% populatie = 1000

populatie_volgend_jaar = populatie * 0.1

print(populatie)

print(populatie_volgend_jaar)

getal1 = 6

getal2 = 4

getal3 = 15

print(getal3 / (getal1 % getal2) )

getal1 = getal1 + 1

print(getal3 / (getal1 % getal2) )

getal1 = getal1 + 1

print(getal3 / (getal1 % getal2) )

getal1 = getal1 + 1

print(getal3 / (getal1 % getal2) )

4 Noteer de uitvoer van volgende codefragmenten. codefragmenten

getal1 = 100

getal2 = 20

print(getal1 * getal2)

getal1 = 5

getal2 = 6

getal1 = getal2 + 4

getal2 = getal2 % 4

print(getal1, getal2)

1.11 Oefeningen

Gemakkelijk

1 Je vader wil een rechthoekig stuk tuin afboorden en er een bloemenweide van maken. Om te bepalen hoeveel bloemenzaad en borderrand hij nodig heeft, moet hij de oppervlakte en omtrek van dat stuk gras weten. Maak een programma dat de omtrek en oppervlakte van een rechthoek berekent. Bepaal zelf wat moet worden ingegeven. Verzorg de uitvoer.

Bewaar het programma onder de naam Rechthoek.py.

INKIJKEXEMPLAARDIEKEURE

2 De bank geeft kasbonnen uit met een vaste rentevoet en een vaste looptijd met enkelvoudige intrest. Maak een programma voor de bank dat de intrest berekent die een kasbon opbrengt. De waarde van de kasbon, de rentevoet en de looptijd worden ingegeven.

Je kan de enkelvoudige intrest berekenen via de formule I = k · i · n met I = intrest, k = beginkapitaal, i = rentevoet (in de vorm 0,045) en n = looptijd in jaar.

Bewaar het programma onder de naam Intrest1.py

3 Je bent geboeid door Amerika en wilt er graag naartoe. Maar hoe warm is het er nu juist? In België wordt de temperatuur weergegeven in graden Celsius, in Amerika in graden Fahrenheit. Maak een programma dat een ingegeven temperatuur in graden Celsius (C) omzet in het equivalent in graden Fahrenheit (F).

formule: F = C · 9 / 5 + 32

Bewaar het programma onder de naam Fahrenheit1.py

4 Je vindt je oude spaarpot terug. Nu wil je graag weten hoeveel euro er precies in zit. Maak een programma dat een geheel aantal eurocenten omzet naar twee hoeveelheden: het aantal euro’s en de resterende eurocenten.

Bewaar het programma onder de naam Geld.py

5 De toegangsprijs voor Technopolis is:

> jongeren tussen 0 en 18 jaar: € 22

> volwassenen: € 27

> 65+: € 25,50

Maak een programma dat de aantallen per categorie opvraagt en berekent hoeveel de toegangsprijs is voor de groep.

Bewaar het programma onder de naam Technopolis.py

6 Veel mensen dromen ervan om 100 jaar te worden. Maak een programma dat vraagt welk jaar het is en hoe oud iemand dit jaar wordt. Het programma berekent in welk jaar deze persoon 100 jaar wordt.

Wat is het huidige jaar? 2026

100 jaar: 2102 vb.

Hoe oud word je dit jaar? 24

Bewaar het programma onder de naam Honderd.py

Gemiddeld

7 Maak een programma dat de inhoud en oppervlakte van een balk berekent. Bepaal zelf wat moet worden ingegeven. Verzorg de uitvoer.

Bewaar het programma onder de naam Balk.py.

INKIJKEXEMPLAARDIEKEURE

8 In Amerika is de munteenheid de Amerikaanse dollar. Maak een programma waarmee je een ingevoerd bedrag in euro kan omrekenen naar Amerikaanse dollar. Zoek de wisselkoers op het internet. Je hoeft niet af te ronden. Het resultaat wordt als volgt weergegeven: “X euro is gelijk aan Y USD” met X het bedrag in euro en Y het bedrag in dollar.

Bewaar het programma onder de naam Wissel1.py

9 Je gaat elke dag joggen. Je weet welke afstand je a egt en hoelang je erover doet, maar hoe snel loop je nu eigenlijk? Als je een verplaatsing maakt, is de afgelegde weg afhankelijk van je snelheid en de tijd van je verplaatsing.

De formule is s = v · t met s = afstand, v = snelheid en t = tijd.

Maak een programma om te berekenen hoe snel je loopt. Geef het aantal km in dat je hebt gejogd en de tijd in minuten. Bereken je snelheid in km/u.

Bewaar het programma onder de naam Snelheid1.py.

10 Maak een programma om de inhoud van twee getalvariabelen te wisselen. Maak gebruik van gehele getallen. Noem de variabelen getal1 en getal2 en zorg dat in de uitvoer eerst de waarde van getal1 (na wisseling) en daarna de waarde van getal2 wordt getoond.

Bijvoorbeeld:

bij de start van het programma bij het einde van het programma getal1 7 getal1 10 getal2 10 getal2 7

Bewaar het programma onder de naam WisselVar.py.

11 Maak een programma om de oppervlakte van een driehoek te berekenen als de lengte van de drie zijden gekend zijn.

formule:

Bewaar het programma onder de naam Driehoek1.py

12 In een bedrijf dat stofzuigers verkoopt, wordt het loon van een vertegenwoordiger als volgt berekend: het bestaat uit een vast gedeelte van 958,36 euro en een variabel gedeelte. Het variabel gedeelte bedraagt 8,25% van het omzetcijfer van deze vertegenwoordiger. Maak een programma om het loon te berekenen. Lees de naam van de vertegenwoordiger en het omzetcijfer in. Verwerk de naam en het loon in de uitvoer.

Bewaar het programma onder de naam Loon.py.

Gevorderd

13 De digitale tijdsaanduiding (bijvoorbeeld 10:51) is ingeburgerd. Ze wordt genoteerd als u:m met u = uren en m = minuten.

Maak een programma dat berekent hoeveel uren en minuten er tussen twee tijdstippen zitten. Voor de invoer geldt het volgende:

> De tijdstippen worden met een digitale tijdsaanduiding ingegeven;

> Je geeft voor beide tijdstippen apart de uren en minuten in;

> Het tweede tijdstip valt later dan het eerste tijdstip;

> Het tweede tijdstip valt in dezelfde dag als het eerste tijdstip.

Geef het uur van het eerste tijdstip in. 10

INKIJKEXEMPLAARDIEKEURE

vb.

Geef de minuten van het eerste tijdstip in. 50

Geef het uur van het tweede tijdstip in. 15

Geef de minuten van het tweede tijdstip in. 30

Tussen de twee tijdstippen zit 4 uren en 40 minuten.

Bewaar het programma onder de naam Tijd.py.

14 Een eeuw begint bij het jaar waarvan het jaartal eindigt op 01, bijvoorbeeld 2001. Het jaar 2001 is het eerste jaar van de 21ste eeuw. De 21ste eeuw duurt van 2001 tot en met 2100. Maak een programma dat bepaalt tot welke eeuw een jaartal behoort. We starten de jaartelling bij het jaar 1.

Geef het jaartal in. 1901 jaartal: 1901 – eeuw: 20 vb.

Bewaar het programma onder de naam Eeuw.py

15 Maak een programma dat een ingegeven aantal seconden omrekent naar dagen, uren, minuten en overblijvende seconden.

Geef het aantal seconden in. 125200 125200 seconden = 1 dag(en), 10 uren, 46 minuten en 40 seconden vb.

Bewaar het programma onder de naam Seconden.py.

16 Maak een programma dat een getal tussen 1000 en 9999 inleest en de twee laatste cijfers van het getal omwisselt. M.a.w. de eenheid en het tiental worden van plaatst gewisseld. Je moet geen controle uitvoeren op de invoer.

Geef een getal in tussen 1000 en 9999? 8564 Nieuw getal: 8546 vb.

Bewaar het programma onder de naam Eenheid_tiental.py.

17

Maak een programma dat berekent op welke dag (maandag, dinsdag …) de n-de dag (1 <= n <= 365) van het jaar valt, als 1 januari (n = 1) op een donderdag valt. Je leest het dagnummer in en geeft als resultaat het nummer van de weekdag. Je gebruikt volgende afspraken:

INKIJKEXEMPLAARDIEKEURE

Maak een tabel voor de eerste 15 dagen en probeer het patroon (verband tussen invoer en uitvoer) te vinden.

Bewaar de oefening onder de naam Weekdag.py

Turn static files into dynamic content formats.

Create a flipbook
Savvy flexboek - Hoofdstuk 1 by die Keure - Issuu