Python Cursus. Hoofdstuk 12c - Geneste Lijsten
Afsluitende Opgaven
Terug naar de uitleg en gewone opgaven over Geneste LijstenTerug naar de cursus pagina
Afsluitende Opgave 12c.1 Stok kaarten afdrukken
Een speelkaart heeft- een kleur ("Harten", "Schoppen", "Klaveren", "Ruiten") en
- een waarde (2, 3, 4, 5, 6, 7, 8, 9, 10, "Boer", "Vrouw", "Heer", "Aas").
Harten 4
...
Ruiten Aas
Tips:
- Maak twee lijsten, een voor de kleur, en een voor de waarde.
- Druk alle mogelijke speelkaarten af (wat ook wel een stok wordt genoemd) door een dubbele `for` loop te gebruiken. Zo maak je alle combinaties van kleur en waarde.
Afsluitende opgave 12c.1b Feestinkopen (met for)
Voor een feestje wil je samen met je vrienden wat inkopen doen: cola, chips en chocola.Maar:
- van ieder wil je er wel minstens 1
- elk artikel kost 1 euro, en jullie willen precies de 12euro die jullie hebben uitgeven
- (voor de een of ander reden) wil een van jullie niet evenveel cola als chips als chocola
- het aantal flessen cola moet even zijn
Tips:
- Druk eerst alle mogelijke permutaties af, dat wil zeggen, alle mogelijkheden van 1 t/m 12 cola en 1 t/m 12 chips en 1 t/m 12 chocola.
- Maak een teller om het aantal mogelijkheden bij te houden en deze af te drukken.
- Zorg dat alleen een mogelijkheid afgedrukt en meegeteld wordt als de drie opgeteld samen 12 zijn.
- Je kunt niet controleren of drie dingen aan elkaar gelijk zijn (dus
a==b==c
werkt niet), hier zul je iets slims voor moeten bedenken. - Om te controleren of iets even is kun je modulo gebruiken. Als
(getal%2==0)
waar is, dan weten we dat getal even is.
Afsluitende opgave 12c.2 Staafdiagram (met for)
Schrijf een functiestaafdiagramAfdrukken()
die een lijst met gehele getallen als parameter binnenkrijgt en een
“staafdiagram” van sterretjes afdrukt. Maak gebruik van twee for loops.
Bijvoorbeeld:
staafdiagramAfdrukken( [4, 8, 5] )
zou de volgende afdrukken:****
********
*****
#FUNCTIE DEFINITIE #schrijf hier je staafdiagramAfdruk functie: #HOOFD VAN PROGRAMMA getallen_lijst = [4,8,5] #roep hier je functie aan met getallen_lijst als parameterDeze opdracht wordt nog niet automatisch gecontroleerd. Klik hier om je eigen oplossing te vergelijken met een model oplossing.
Afsluitende opgave 12c.3 Alle mogelijkheden (met for)
Je wilt je kast verven. In de garage staan nog 4 potten verf: rood, blauw, groen en paars.Schrijf een programma dat alle verschillende combinaties afdrukt, en ook hoeveel combinaties het er zijn.
Tips:
- Voor 4 kleuren heb je vast meer dan 2 for-loops nodig.
- Er zijn 256 combinaties
kleurenLijst = ["Rood", "Blauw", "Groen", "Paars"]Klik hier voor een model oplossing.
Afsluitende opgave 12.3 Spelbord Boter-Kaas-Eieren
DEEL A: Druk het bord netjes af.,br> Gebruik hiervoor een for-loop in een for-loop:Voor elke rij en voor elke kolom druk je de waarde af.
Tip:
print(…)
drukt steeds af op een nieuwe regel. Met end = “ “
druk je op zelfde regel verder af. Dat gebruik je zo: print("iets", end = " ")
DEEL B:Gebruik coördinaten om links onder een 'X te plaatsen.
bord = [ ["X","-","-"], ["-","O","-"], ["-","-","-"] ]Klik hier voor een model oplossing.
Afsluitende Opgave 12c.5 Mijnenveger
Voor het spel mijnenveger heb je een spelbord nodig waarbij er willekeurig een aantal bommen liggen.
Dit pakken we stapsgewijs aan.
- Maak een leeg bord met 10 kolommen en 5 rijen. Op elk vakje zetten we een "-" neer.
Stap 1A. Schrijf een functiemaakLeegBord()
, die twee getallen meekrijgt, een voor het aantal rijen en een voor het aantal kolommen, en met een return een bord oplevert.#FUNCTIEDEFINITIES def maakLeegBord(aantal_rijen, aantal_kolommen): bord = [] #maak eerst een leeg bord return bord
Stap 1B: In je functie begin je met het maken van 1 rij met de juiste aantal kolommen. Deze voeg je aan je bord toe.rij = [] #maak een lege rij for y in range (aantal_kolommen): #vul die rij met het juist aantal kolommen rij.append("-") bord.append(rij) #plak rij aan bord
Stap 1C: print je bord om te controleren of je nu 1 rij goed hebt gemaaktprint("controle rij goed geprint: ", bord)
Stap 1D: Breid je code met een for loop uit zodat dit nu niet voor 1 rij gebeurt, maar voor het aantal rijen dat gegeven is. Tip: De code uit stap 1B wordt door jouw for-loop nu 10 keer uitgevoerd.
Stap 1E: Zet je controle print uit stap 1C in commentaar. - Schrijf een functie om je bord af te drukken. Deze krijg een bord mee als parameter. Ook dit doe je met een geneste for loop.
- Schrijf een functie om je bord te vullen met bommen. Deze krijgt als parameter een bord mee, en levert met een return de gevulde bord op. Voeg op willekeurige plekken 5 bommen toe door gebruik van random.randint().
Terug naar de uitleg en gewone opgaven over Geneste Lijsten
Terug naar de cursus pagina