← RU Pythoncursus

Breuken versimpelen

In deze opdracht ga je breuken versimpelen. Bij een breuk $\frac{a}{b}$ heb je hiervoor de grootste gemene deler nodig. Dit is het grootste getal, waardoor $a$ en $b$ allebei te delen zijn. Probeer zelf te bedenken hoe dit bruikbaar is. In het Engels heet dit de greatest common divisor, afgekort de gcd. De gcd van bijvoorbeeld $24$ en $32$ is bijvoorbeeld $8$ omdat dit het grootste getal is waardoor zowel $24$ als $32$ deelbaar is. Voor het uitrekenen van de gcd kun je een ingebouwde functie in Python gebruiken als gcd(a,b). Zet hiervoor aan het begin van je programma: from math import gcd.

  1. Sla de breuk $\frac{a}{b}$ op door twee Pythonvariabelen a en b te maken. Je mag zelf twee waarden voor a en b kiezen.

Je kunt meerdere teksten en/of getallen achter elkaar printen door deze allemaal in één print-aanroep te zetten, gescheiden door een komma. Als a bijvoorbeeld 42 is, zal print('a =', a) de tekst a = 42 laten zien.

  1. Print je breuk nu volgens bovenstaande printaanroep. Probeer je twee variabelen nu zo te schrijven, dat het programma correct blijft werken als je $a$ en $b$ een andere waarde geeft, zonder dat je daarvoor de teksten in de print hoeft te veranderen.

  2. Schrijf nu een programma dat begint met twee getallen $a = 1081$ en $b = 483$. Het programma moet het volgende afdrukken: 1081 / 483 = ... met op de puntjes de versimpelde breuk. Je kunt hier de gcd(a,b)-functie gebruiken zoals aan het begin van deze opdracht is beschreven.

Ingebouwd in Python

Je kunt breuken ook automatisch door een Python-functionaliteit laten versimpelen. Gebruik hiervoor from fractions import Fraction. Door nu simpelweg Fraction(a,b) uit te rekenen krijg je automatisch een versimpelde breuk. Door deze te printen zie je de versimpelde breuk.

Toelichting: imports

Je hebt bij de opdrachten gezien dat we een paar functies nodig hadden die niet standaard toegankelijk zijn. We moesten ze eerst importeren uit andere modules. Zo kwamen de functies sqrt en gcd uit de math-module.

Met import kan je functies of variabelen uit een andere module importeren in het huidige programma. Dit is hoe in principe alle modules in Python zijn opgebouwd. Dit zorgt ervoor dat de code makkelijk herbruikbaar is. In een later stadium zullen we bespreken hoe je zelf een module kunt maken die anderen kunnen importeren.

Je kunt op twee manieren functies importeren. Zoals je hierboven zag kan je de constructie from modulenaam import functienaam gebruiken. Dan kan je de functie meteen gebruiken. Soms heb je meerdere functies met dezelfde naam uit verschillende modules. In dat geval kan je de module in z'n geheel importeren met import modulenaam, en een functie gebruiken door eerst de modulenaam te noemen. De gcd-functie uit de math-module zou je dan importeren met import math. Vervolgens kun je de gcd-functie dan als volgt gebruiken: math.gcd(12, 32).

Als je een bepaalde functie zoekt is het handig om de Python-documentatie te bekijken, maar als je al ongeveer weet waar je moet zoeken kan het ook sneller. Na de module te importeren met import modulenaam, kun je met de functie dir(modulenaam) bekijken wat je er zoal uit kan gebruiken. Voor de bekendste modules is zelfs een handleiding ingebouwd. Deze kun je aanroepen met de help-functie (bij de math module zou dat help(math) worden). Probeer bijvoorbeeld eens de math-module te importeren en met dir te printen wat er allemaal voor functies inzitten.