Enter 2e graad - Algoritmisch denken met Python

Page 1

MODULE ALGORITMISCH DENKEN
PYTHON
MET
2e GRAAD

Je hebt zeker al algoritmen gemaakt zonder dat je het weet. Als je algoritmen laat uitvoeren op een computer spreken we vlug van programmeren. In deze module leer je algoritmen programmeren in Python, een krachtige en eenvoudige programmeertaal die veel gebruikt wordt. Door in een bepaalde taal te programmeren krijg je heel wat mogelijkheden om de computer naar je hand te zetten. Tijd om de wereld van het programmeren te verkennen!

WAT JE LEERT IN DEZE MODULE

Wat een algoritme is

• Patronen herkennen

• Wat abstractie is Wat decompositie is Decompositie toepassen

• Wat debuggen is

• Een gestructureerde aanpak toepassen bij het oplossen van problemen Een programma starten en bewaren in Python

• De Command Line Interface van Python gebruiken

• Een programma uitvoeren in Python

Wat een variabele is Wat een expressie is

• De functies: print, input, type

• Enkele belangrijke datatypes: integer, float, string, bool, list Wat operatoren zijn

• Enkele operatoren: rekenkundige operatoren en stringoperatoren

Wat een keuze is: eenzijdig of tweezijdig

Wat een voorwaarde is

• Een keuze programmeren in Python

• Enkele operatoren: vergelijkingsoperatoren en logische operatoren

Ingebouwde functies in Python: int, float, str, abs, round, len, sqrt, random, randit

• Zelf functies maken in Python

Een voorwaardelijke herhaling programmeren in Python

• Een begrensde herhaling programmeren in Python

• De functie range

De membership operator in

FOUTEN - PROBLEMEN

Bij het schrijven van programma's maak je soms fouten. Een eerste soort fout is een logische fout. Je hebt een fout gemaakt in je algoritme of in de datatypes van je programma. Begin opnieuw bij je analyse en zoek de fout in je redenering. Een tweede soort fout is een syntaxfout. Je maakt een typefout, je vergeet een dubbelpunt ... De foutmelding helpt je op weg.

ALGORITMISCH DENKEN MET PYTHON 2
3 ENTER ALGORITMEN: WAT EN HOE? 4 HOOFDSTUKKEN 1 MIJN EERSTE PROGRAMMA 11 2 ONDER DE MOTORKAP 18 3 HET LEVEN BESTAAT UIT KIEZEN 30 4 PROGRAMMEREN IS RECYCLEREN 40 5 NOG EEN RONDJE BIJ 48 FOUTEN - PROBLEMEN 58 OEFENINGEN 60 STUDIEWIJZER 70 APPLY TEKENINGEN IN PYTHON 71

ALGORITMEN: WAT EN HOE?

Wat is een algoritme?

In het dagelijks leven kom je in aanraking met algoritmen. Overal om je heen zie je algoritmen.

Voorbeelden

Ingrediënten (4 personen) 200 g gezouten spek 4 eieren 500 g spaghetti 25 cl room 100 g Parmezaanse kaas 2 teentjes look 1 sjalot

Bereiding

1 Kook de pasta al dente.

2 Bak intussen het spek krokant, voeg sjalot en look toe.

3 Meng in een kom de room, eieren, kaas, knoflook, peper en zout en klop het mengsel met een vork tot een min of meer gladde massa.

4 Giet de pasta in een vergiet af en doe hem terug in de warme pan.

5 Meng het spek en het eimengsel onder de pasta.

6 Verwarm de pasta nu nog even heel kort (1 minuut) op een laag vuur en serveer het gerecht.

Een vetvlek verwijderen uit kleding

• Pak een doek en dep met wat afwasmiddel op de vlek.

• Wrijf met de doek over de vetvlekken.

• Laat het kledingstuk drogen.

Programma opnemen, bekijken en wissen

OPNEMEN

Tik op TV-gids > selecteer een programma en kies Opnemen. Je kan ook de instellingen van je opnames aanpassen als je dat wilt.

BEKIJKEN

Tik op Mijn TV > Opgenomen > kies een opname en tik op

WISSEN

Tik op Mijn TV > Opgenomen > kies een opname > > of Opname wissen.

Voor bijna alles wat je doet, maak je gebruik van een algoritme. Bijvoorbeeld wanneer je de hond uitlaat, een ei bakt of naar een serie kijkt via een streamingdienst. Algoritmen beheersen ons leven. Ook de info die je op het internet vindt, wordt bepaald door algoritmen

ALGORITMISCH DENKEN MET PYTHON 4

HIeronder staan enkele definities voor een algoritme.

Zijn de definities juist of fout? Kruis aan.

Een algoritme is een soort stappenplan. Het zijn instructies die in een bepaalde volgorde worden uitgevoerd.

Een algoritme is niet meer dan een aantal willekeurige stappen die je volgt om een bepaald doel te bereiken.

Een algoritme is een set regels in een niet bepaalde volgorde om een probleem op te lossen.

Een algoritme is de basis voor een computerprogramma. Het is een recept dat je aan de computer geeft om een probleem op te lossen. Als de computer het programma doorloopt, moet hij de verschillende instructies in het algoritme (= het recept) uitvoeren.

juist fout juist fout juist fout

Even doordenken

Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt.

Een algoritme is een lijstje met instructies die een vaste volgorde beschrijft en bepaalt hoe je een probleem oplost.

juist fout juist fout juist fout

In grote steden zie je vaak hoge gebouwen. Dit kunnen oude of recente gebouwen zijn. Uit esthetisch oogpunt wordt steeds gezorgd voor een zekere eenheid in een gebouw. Zo krijgt niet elke verdieping een andere indeling maar zijn de meeste verdiepingen gelijk. Er zit een patroon in het ontwerp van gebouwen.

5

Ontwerp een gebouw

Als er een patroon zit in het uiterlijk van een gebouw, dan is het mogelijk om een algoritme te maken voor dat gebouw.

Teken de voorgevel van het gebouw hiernaast in het rooster. Laat de eerste kolom leeg.

Enkele afspraken: - steen = zwart vakje - glas = wit vakje - een gebouw van 6 (gelijkvloers en 5 verdiepingen) - een glazen middenstuk van 3 vakjes voor de eerste vier verdiepingen - 3 vensters links en rechts van het glazen middenstuk

Deze oefening kan je ook online maken. Scan de QR-code.

ALGORITMISCH DENKEN MET PYTHON 6
Rooster

Abstractie

Ziet het gebouw in het rooster er ongeveer hetzelfde uit als op de foto? Bij het tekenen van het gebouw in het rooster heb je alle overbodige details weggelaten en de essentie behouden. Wanneer je iemand verschillende foto's van hoge gebouwen en jouw tekening toont, dan zal die persoon meteen de juiste foto uitkiezen. Het gebouw blijft herkenbaar ook al heb je details zoals kleur, soort gesteente, het exacte aantal verdiepingen … weggelaten. Je hebt abstractie toegepast.

Abstractie komt van het Latijnse woord 'abstráhere', wat 'weglaten' betekent. Het is een denkproces waarbij je nagaat welke onderdelen essentieel zijn en welke je kunt weglaten. Van jongs af aan heb je onbewust al abstractie toegepast. Denk maar aan tekeningen van mensen of dieren. Met slechts enkele lijnen herkent iedereen het getekende dier.

Ook kunstenaars zijn meesters in het abstraheren. De Nederlandse kunstenares Mieke van Doorn maakte verschillende abstracties van het schilderij 'Het melkmeisje' van Johannes Vermeer. In haar werk blijf je steeds het originele schilderij herkennen.

Het melkmeisje, Johannes Vermeer

© Mieke van Doorn

© Mieke van Doorn

© Mieke van Doorn Kubistisch, geometrische Met zo veel mogelijk Met zo weinig mogelijk vlakken geometrische vormen geometrische vormen, met behoud van de essentie van de compositie van het schilderij

7

Decompositie

Je kan nu een algoritme schrijven om het gebouw te laten tekenen. Dit algoritme kan op meerdere manieren opgebouwd worden. Vooraleer je hier aan begint, is het belangrijk om je tekening nog eens goed bekijken. Zie je gelijkenissen? Komen er bepaalde rijen of delen van rijen terug?

Hoeveel verschillende soorten rijen zie je in het gebouw?

Als je voor die rijen een algoritme schrijft, dan kan je dit gebruiken in het algoritme van het gebouw. Dat is decompositie. In plaats van het probleem in zijn geheel op te lossen, ga je op zoek naar deelproblemen die je oplost en dan verwerkt in de oplossing van het geheel. Je deelt een probleem op in kleinere deelproblemen.

Dit komt ook voor in andere vakken en disciplines.

Geschiedenis

In de lessen geschiedenis bestudeer je verschillende periodes: de prehistorie, het oude Nabije Oosten, de klassieke oudheid, de middeleeuwen, de nieuwe tijd … Omdat er over die periodes heel veel te vertellen is, worden de geschiedkundige periodes onderverdeeld in een aantal domeinen.

Geschiedkundige periode

het economische domein het politieke domein het sociale domein het culturele domein

Decompositie kom je heel vaak tegen.

Scan de code voor nog meer voorbeelden …

ALGORITMISCH DENKEN MET PYTHON 8

Maak een algoritme voor het ontworpen gebouw

Maak voor elke soort rij een algoritme. Gebruik hiervoor de onderstaande symbolen. Je start telkens in het eerste vakje van een rij. Zoek ook naar de gelijkenissen in een rij. Probeer een kort algoritme te maken. Start onderaan.

Ga één blokje naar rechts.

Ga één blokje naar links.

Ga één blokje naar beneden.

Ga één blokje naar boven.

Vul het blokje met deze kleur.

Ga 'n' keer één blokje naar rechts. Je kan dit ook doen met de andere pijltjes. n ( )

n 

Algoritme

Voer 'n' keer de combinatie tussen de haakjes uit.

> rij 1: > rij 2: > rij 3: > rij 4: Gebouw in het rooster

9
rij 3 rij 4 rij 2 rij 1

Gebruik de algoritmen van de rijen om het algoritme van het gebouw te maken. De eerste regels van het algoritme staan er al. We bouwen het gebouw rij voor rij op. Houd er rekening mee dat alle deelalgoritmen gemaakt zijn voor een rij van links naar rechts. Vul het algoritme verder aan in de eerste tabel.

bovenlaag bovenlaag 5e verdieping 5e verdieping 4e verdieping 4e verdieping 3e verdieping 3e verdieping 2e verdieping 2e verdieping 1e verdieping 1e verdieping gelijkvloerse verdieping  20  rij 2 gelijkvloerse verdieping terug rij 2  20  rij 2 terug rij 2 rij 1 rij 1

We maken ook een deelalgoritme om terug te keren naar het begin van de volgende rij: het deelalgoritme terug

terug

Vul het deelalgoritme aan.

Herschrijf het algoritme in de tweede tabel. Maak nu gebruik van het deelalgoritme 'terug'.

Bestudeer het gemaakte algoritme. Worden sommige regels herhaald? Vind je een patroon?

Omcirkel in verschillende kleuren de herhalingen die je ziet. Noteer hieronder het algoritme zo compact mogelijk. >

Wil je meer lezen over algoritmen en gebouwen? Scan de QR-codes.

ALGORITMISCH DENKEN MET PYTHON 10

De meeste algoritmen worden geschreven om door een digitaal toestel zoals een computer, tablet, smartphone, smartwatch, robot, slimme koelkast of camera … uitgevoerd te worden.

Om een algoritme door een digitaal toestel te laten uitvoeren, heb je een programmeertaal nodig. Je maakt een (computer)programma van het algoritme. Misschien heb je al eens gewerkt met een grafische programmeertaal zoals Scratch. Via het slepen van voorgeprogrammeerde blokken maak je een programma. De meeste programmeertalen zijn echter tekstueel. Ze bieden je meer mogelijkheden om de computer juist aan te sturen.

In deze module leer je algoritmen uitwerken in de programmataal Python. Waar komt de naam Python vandaan?

11
> 1 MIJN EERSTE PROGRAMMA I N V O E R U I T V O E R V E R W E R K I N G >>> print("Mijn eerste programma!") Mijn eerste programma!

1.1 Van Scratch naar Python

Mijn eerste programma!

1.2 Mijn eerste commando in Python

Als je tekst wilt laten verschijnen op het scherm 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. Tekst staat altijd tussen dubbele of enkele aanhalingstekens ("" of ''). Ze geven het begin en het einde van een tekst aan. print("tekst") Tekst: sliert van tekens tussen aanhalingstekens Commando

ALGORITMISCH DENKEN MET PYTHON 12
I N V O E R
V E R W E R K I N G U I T V O E R
Scratch Python
>>> print("Mijn eerste programma!")
(invoer)
Resultaat (uitvoer) print("Mijn eerste commando!") Mijn eerste commando! print("1-AXE-212") 1-AXE-212 print("3 + 5") 3 + 5

1.3 Een programma uitvoeren in Python

1.3.1 Starten met Python

1 Surf naar https://www.python.org

2 op Downloads en installeer de laatste versie van Python.

3 Na de installatie vind je deze map terug in het startmenu van Windows. 4 Start de Python-omgeving. op

13

De Command Line Interface (CLI) wordt geopend.

Na de drie pijltjes (>>>) kan je commando's invoeren om ze daarna te laten uitvoeren.

5 een Pythoncommando en druk op Enter .

Je ziet meteen de uitvoer van het commando. Zo kan je Pythoncommando's testen.

ALGORITMISCH DENKEN MET PYTHON 14

1.3.2 Een programma maken en bewaren

Als je een programma schrijft, bewaar je dit best eerst in een bestand.

1 Open de Command Line Interface (CLI) van Python.

2 Maak een nieuw bestand aan. op File - New File

3 het programma uit.

Tijdens het intypen van een commando krijg je hulp. Ook de kleuren helpen je om te controleren of je goed bezig bent.

15

4 Bewaar het programma.

Kies de juiste map om het programma in te bewaren en geef het bestand een passende naam.

Na de bestandsnaam staat het pad naar het bestand. Een Pythonprogramma heeft altijd de bestandsextensie .py

ALGORITMISCH DENKEN MET PYTHON 16

1.3.3 Een programma uitvoeren

1 op Run - Run Module of op

2 Het programma wordt uitgevoerd en de uitvoer verschijnt in de Python Shell.

17

MOTORKAP

Nu je weet hoe je een programma moet bewaren en uitvoeren, is het tijd om te leren programmeren. Bij programmeren komt steeds dezelfde werkwijze terug:

Probleemstelling

Dit is een duidelijke omschrijving van het 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 schrijft het algoritme uit. Kan je het probleem opsplitsen in deelproblemen?

Programma

Je zet het algoritme om in een programma. Je schrijft het programma in een programmeertaal.

Testen

Je controleert of je programma werkt door het te testen.

2.1 Een nieuwe touch

Probleemstelling

Je wilt de muren van je slaapkamer een nieuwe look geven door ze te verven in een ander kleur. De verf heb je al gekozen. Met 1 liter verf kan je 7 vierkante meter verven. Voor een ideale dekking heb je 2 lagen nodig. Bereken hoeveel liter verf je nodig hebt om een muur van je kamer te verven.

ALGORITMISCH DENKEN MET PYTHON 18
2
1 > 6
ONDER DE
5 m 2 m

Analyse

Lees de probleemstelling aandachtig en denk na wat je nodig heb om dit probleem op te lossen. Wat weet je al? Wat is er gegeven? Je maakt een analyse van de probleemstelling.

Hoeveel m² is de muur?

- Wat moet je hier berekenen?

- Wat heb je nodig voor deze berekening?

Hoeveel liter verf heb je nodig voor één laag?

Hoeveel lagen moet ik verven?

Algoritme

De oplossing is vrij eenvoudig: - Bereken de oppervlakte van de muur.

- Deel de oppervlakte door 7 om het aantal liter verf voor één laag te bekomen.

- Vermenigvuldig het aantal liter verf met het aantal lagen dat je moet verven.

Programma

De breedte van de muur is 5 m en de hoogte ervan is 2 m. Het programma kan er dan zo uitzien:

Testen

Je test altijd of je programma goed werkt. Dit programma bestaat hier uit één regel en kan je meteen in de CLI uittesten:

Je hebt ongeveer 3 liter verf nodig om de muur twee lagen te geven.

Vind je dit een goede oplossing? Welke verbeteringen zou je aan het programma willen aanbrengen?

19
> >>> print((5*2)/7) * 2 >>> print((5*2)/7) * 2 2.85714285714 >>>

2.1.1 Variabelen

Het programma gebruikt de afmetingen van je slaapkamer. Dit programma kan je dus enkel gebruiken voor deze kamer. Het zou efficiënter zijn als je in het programma de breedte en de hoogte van een kamer kan ingeven.

Soms wil je in een programma een getal of een resultaat van een berekening kunnen opslaan. Dit kan door een variabele te gebruiken. Een variabele is een verwijzing naar een stukje geheugen waarin een waarde wordt bewaard.

Variabele: plaats in het geheugen met een naam waarin een waarde wordt bewaard die je later nog nodig hebt

Het geheugen kan je vergelijken met een opbergsysteem voor smartphones in de klas of met een pakjesautomaat.

waarde

Dit opbergsysteem voor smartphones heeft 30 genummerde vakken. In elk vakje kan je één smartphone opbergen. Elk vakje heeft een nummer zodat een leerling goed kan onthouden in welk vak zijn smartphone zit en die zo makkelijk kan terugvinden. Er bestaan geen twee vakjes met hetzelfde nummer.

naam variabele

waarde

In elke locker zit er één pakje. De inhoud van de pakjes verschillen van elkaar. Elke locker heeft een nummer zodat je jouw pakje vlot in ontvangst kan nemen. Er bestaan geen twee lockers met hetzelfde nummer. naam variabele

Een variabele heeft een naam zodat je meteen de waarde terugvindt. Er bestaan geen twee variabelen met dezelfde naam.

ALGORITMISCH DENKEN MET PYTHON 20
Vakje in een opbergsysteem of locker in een pakjesautomaat Variabele nummer naam inhoud waarde © Deschuyffeleer

De naam van een variabele: - begint altijd met een letter, - bevat geen spaties.

Als de naam van een variabele uit meerdere woorden bestaat, dan gebruik je een laag streepje of underscore om de woorden van elkaar te scheiden.

Bijvoorbeeld: beginwaarde_loon en straat_nr

De toekenning

Aan een variabele ken je een waarde toe door een gelijkheidsteken (=) te gebruiken. Die waarde kan tekst, een getal of een resultaat van een bewerking zijn.

Toekenning: naam variabele = expressie

Voorbeelden

Naam variabele Waarde Toekenning weekdag donderdag weekdag = "donderdag" breedte 5 breedte = 5 btw 0.21 btw = 0.21 getal1 10 getal1 = 10 getal2 7 getal2 = 7 som 17 som = getal1 + getal2

2.1.2 Datatypes: integer, float en string

Er bestaan verschillende soorten waarden, bv. 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 een (data)type. Het type wordt bepaald door de waarde die je erin plaatst. Wat je kan doen met die variabele is afhankelijk van het type.

Type Betekenis

Voorbeelden integer (int)

Dit is een geheel getal, een getal zonder cijfers na de komma dat positief, negatief, of nul kan zijn. 1000 -5 0 float (float)

Dit is een reëel getal. Met andere woorden, een decimaal getal Een ander woord voor een decimaal getal is een kommagetal. Als komma wordt een punt gebruikt.

Dit is tekst die bestaat uit geen of meerdere tekens en staat altijd tussen dubbele aanhalingstekens.

"" "Hallo" "9000"

5.0 3.658 -153.26 string (str)

21
! TIP

2.1.3 Expressie

Aan een variabele kan je een waarde toekennen of een resultaat van een berekening. Zo'n berekening of bewerking die tot een resultaat leidt, heet een expressie of uitdrukking.

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

2.1.4

Operatoren

Rekenkundige operatoren

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

Operator

Expressie Waarde + optellen 5 + 6 2.5 + 3.8 11 6.3 - aftrekken 5 – 6 -1 * vermenigvuldigen 5 * 6 30 / delen 15 / 3 20 / 3 5.0 6.6666666667 ** machtsverheffing of exponent 2**3 8 // het quotiënt na een integer of gehele deling 15 // 3 20 // 3 5 6

Betekenis

% de rest na een integer of gehele deling (= modulo of restberekening) 15 % 3 20 % 3 0 2

Haakjes in een expressie krijgen de hoogste prioriteit. Dit wil zeggen dat bewerkingen die tussen haakjes staan eerst worden uitgerekend.

Open de CLI en geef de expressies in. Welke waarde krijg je? Vul aan in de tabel. Gaat het om het datatype integer of float? Omcirkel het juiste antwoord.

Expressie

Waarde

Type 100 / 5 integer/float 5 * 8 integer/float 32 // 5 integer/float 2.0 * 6 integer/float 36 % 5.0 integer/float 100 + 25 integer/float 100.0 - 25 integer/float (100 + 50) / 5 integer/float 100 + 50 / 5 integer/float

ALGORITMISCH DENKEN MET PYTHON 22

Wat kun je besluiten? Vul aan met het juiste type.

Als een getal van het type float in een expressie staat, dan heeft de waarde van de expressie ook het type . Het resultaat van een deling heeft steeds een waarde van het type .

Stringoperatoren

Met stringoperatoren kan je bewerkingen uitvoeren met teksten. Je kan stukjes tekst bij elkaar optellen. Ze worden dan aan elkaar geplakt. Strings kan je ook vermenigvuldigen.

Voorbeelden

Operator Betekenis Expressie Waarde

+ het samenvoegen van twee teksten tot één tekst "kerst" + "vakantie" "kerstvakantie"

* het maken van een string die bestaat uit een herhaling van de originele tekst "K" * 3 2 * "pa" "KKK" "papa"

Nog voorbeelden

Expressie Variabele Waarde Type

prijs = 100.0 aantal = 5 totaalprijs = prijs * aantal

prijs aantal totaalprijs

100.0 5 500.0

float integer float getal = 5 getal = getal + 1 getal getal 5 6 integer integer

De expressie en de variabele zijn gegeven. Vul de waarde en het type verder aan in de tabel.

Expressie

Variabele Waarde Type

verbruik = 8 prijs_benzine = 1.73 afstand = 500 kostprijs = (prijs_benzine * verbruik * afstand) / 100

verbruik prijs_benzine afstand kostprijs

8 integer teller = 1 teller = teller + 1 teller teller som = 0 som = som + 30 som = som + 50

som som som aantal = 30 aantal = aantal / 2 aantal aantal woord1 = "programmeren" woord2 = "is" woord3 = "fijn" zin = woord1 + " " + woord2 + " " + woord3

woord1 woord2 woord3 zin

23

2.1.5

Invoer en uitvoer

In een programma voer je eerst de gegevens of de waarden in.

Het programma voert vervolgens de verschillende bewerkingen uit.

Hierna verschijnt het resultaat op het scherm.

INVOER VERWERKING

UITVOER

De functie print() (uitvoer) ken je al, maar je kunt er meer dan enkel tekst mee schrijven.

print([expressie[, expressie …]])

[]: hetgeen tussen rechthoekige haakjes staat, mag maar moet niet gebruikt worden.

Voorbeelden

Opdracht (invoer)

Resultaat (uitvoer)

print() Je krijgt een lege regel. print("leve het leven!") leve het leven! print(2, "februari", 2023) 2 februari 2023

naam = "Mathilde" print("Naam: " + naam)

naam = "Filip" print("Naam:", naam)

Naam: Mathilde

Naam: Filip

De functie input() vraagt de gebruiker om gegevens in te voeren. Deze functie heeft een waarde van het type string, een stukje tekst.

input("tekst") type string

Voorbeelden

Programma

voornaam = input("Geef je voornaam in: ") familienaam = input("Geef je familienaam in: ") print(voornaam, familienaam)

korting = input("Wat is de korting? ") print("De korting bedraagt", korting, "%.")

Uitvoer

Geef je voornaam in: Ben Geef je familienaam in: Verdickt Ben Verdickt

Wat is de korting? 5 De korting bedraagt 5 %.

Je ziet dat de verschillende waarden in de print-functie gescheiden worden door een spatie.

2.1.6 De functie type

Maak dit programma dat twee ingegeven getallen met elkaar optelt in de CLI van Python. getal1 = input("Geef een getal in: ") getal2 = input("Geef een getal in: ") som = getal1 + getal2 print ("het resultaat =", som)

ALGORITMISCH DENKEN MET PYTHON 24

Test het programma uit met de volgende waarden. Vul het resultaat aan in de tabel.

getal1 getal2 resultaat (uitvoer) 5 7

Klopt het resultaat? ja nee

Zo niet, wat is er hier gebeurd?

Merk je dat je programma niet helemaal doet wat je vraagt, dan kan de functie type je helpen. Deze functie wordt gebruikt om het datatype van een expressie te tonen.

type(expressie) type van de waarde van de expressie

Voorbeelden

>>> 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'>

De waarde die de functie input() oplevert, heeft het type string. Of je nu tekst of een getal invoert het type zal altijd een string zijn, een stukje tekst.

int(expressie) type integer float(expressie) type float str(expressie) type string

Voorbeelden

Opdracht (invoer) Resultaat (uitvoer)

int(7.5) 7 int(8.1) 8 int("15") 15 int("20.5") foutmelding float(10) 10.0 float("3.1415") 3.1415 str(5) "5" str(12.6) "12.6"

Int("20.5") geeft een foutmelding omdat wat tussen de aanhalingstekens een float is en geen integer.

25

Wijzig het programma zodat het de twee ingegeven getallen nu wel correct optelt.

getal1 = int(input("Geef een getal in: ")) getal2 = int(input("Geef een getal in: ")) som = getal1 + getal2 print ("het resultaat =", som)

Test het programma uit met de volgende waarden. Vul het resultaat aan in de tabel.

getal1 getal2 resultaat (uitvoer) 5 7

Klopt het resultaat? ja nee

In deze illustratie staan de datatypes en functies die je al kent in Python.

TIP

2.2 Juist genoeg verfpotten

Het programma dat het aantal liter verf berekent om de muur van je kamer te verven kan efficiënter geschreven worden. In dit programma gaan we nu een abstractie maken van de echte afmetingen van je kamer en van de eigenschappen van de verf. Alle gegevens die nodig zijn om dit op te lossen, geven we in. We berekenen hoeveel verfpotten we nodig hebben om de muur te verven.

Het is een goede gewoonte om in je programma enkele regels commentaar toe te voegen. Je noteert in enkele regels wat een stukje code precies inhoudt. Bij moeilijkere stukken in je programma voeg je best wat uitleg toe zodat je het beter begrijpt. Als je het programma later wilt aanpassen, dan weet je weer meteen de betekenis van de code.

ALGORITMISCH DENKEN MET PYTHON 26

Met het hekje (#) schrijf je een regel commentaar. Python zal dit negeren en doet hier niets mee.

Programma

Als je het aantal liter verf deelt door het aantal liter per pot krijg je meestal een kommagetal. Je kunt geen halve potten verf kopen. De functie int(liter_verf / liter_pot) geeft je het cijfer voor de komma van deze deling. Dat is meestal één pot te weinig. Door er 0.99 bij op te tellen krijg je het juiste aantal potten.

Aan de kleur van het programma kan je zien of je goed bezig bent: Kleur Betekenis in Python rood commentaar paars functies (print, input, type, int, float, str) groen tekst (= string) zwart variabele oranje gereserveerd woord van Python

Een gereserveerd woord is een woord dat een speciale betekenis heeft in Python. Je mag deze woorden niet gebruiken als namen voor variabelen zoals de woorden import, and, for, in …

Testen

Test het programma uit met de volgende waarden. Vul de tabel verder aan. breedte_ kamer hoogte_ kamer dekking lagen liter_pot aantal_potten

Zit er nog een fout in, pas je programma aan tot het werkt. Dat is debuggen Een (computer)bug is een fout in een programma. Debuggen betekent het testen en bijsturen van een programma totdat het foutloos werkt.

27
10
5 2
2 7 6 3 9 2 7

2.3 Zoveel snoepen

Probleemstelling

Je organiseert een verjaardagsfeestje en wilt de aanwezigen overladen met snoepen. De snoepen worden eerlijk verdeeld onder de aanwezigen.

Maak een programma waarin je berekent hoeveel snoepen iedereen krijgt en hoeveel er nog over zijn.

Analyse

Wat moet je invoeren?

Waarde Type

aanwezigen integer aantal_gekocht integer

Wat moet je berekenen? - hoeveel snoepen iedereen krijgt - hoeveel snoepen er over zijn, de rest

Je kan dit op twee manieren oplossen: met een gewone deling of met een gehele deling. Beide oplossingen worden hier uitgewerkt zodat je goed weet hoe een gehele deling met rest werkt.

Wat moet je uitvoeren?

Waarde Type

per_persoon integer rest_snoepen integer

Algoritme

We zetten het algoritme in een Nassi-Shneiderman diagram (NSD) om het makkelijk leesbaar te maken.

Gewone deling

lees aanwezigen lees aantal_gekocht per_persoon = int(aantal_gekocht / aanwezigen) rest_snoepen = aantal_gekocht – per_persoon * aanwezigen schrijf per_persoon schrijf rest_snoepen

Gehele deling

lees aanwezigen lees aantal_gekocht per_persoon = aantal_gekocht // aanwezigen rest_snoepen = aantal_gekocht % aanwezigen schrijf per_persoon schrijf rest_snoepen

ALGORITMISCH DENKEN MET PYTHON 28

Programma

Gewone deling

Gehele deling

Testen

Wat is het resultaat bij de volgende ingevoerde waarden? aanwezigen aantal_gekocht per_persoon rest_snoepen 10 65 7 103

29

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.