Informatica 5BCW (2024–2025)
Niels Guillaume · Arteveldehogeschool
Oefeningen en voorbeelden die horen bij de cursus Informatica De oefeningen zijn gebaseerd op de programmeursleerling en op de videoreeks van de UHasselt.
Je bent niet geregistreerd voor deze cursus.
RegistrerenIn dit hoofdstuk bespreek ik expressies, die je kunt beschouwen als berekeningen die je ook kunt uitvoeren met een simpele rekenmachine. Het is een klein begin, maar deze expressies ga je nodig hebben in alle volgende hoofdstukken.
Titel | Voortgang groep | |||
---|---|---|---|---|
Boeken bestellen | ||||
Syntaxfouten | ||||
ZeroDivisionError | ||||
Runtime-fouten | ||||
Alarm instellen | ||||
Kladblok |
Als je met code werkt, ben je vaak bezig met het ontwerpen van een procedure (of “algoritme”) dat een probleem op een algemeen toepasbare manier oplost. Bijvoorbeeld, in opgave 3.1 moest je de prijs van 60 boeken uitrekenen. De code die je schreef lost het probleem alleen op voor precies 60 boeken voor een bepaalde prijs. Als je een dergelijk probleem algemener wilt oplossen, moet je variabelen gebruiken om waardes in op te slaan.
Titel | Voortgang groep | |||
---|---|---|---|---|
Gemiddelde van drie waarden | ||||
Oppervlakte van een cirkel | ||||
Aantal muntjes | ||||
Variabelen omwisselen | ||||
Kladblok |
Ik heb in de voorgaande hoofdstukken al gesproken over een aantal basis
“functies,” zoals print()
en int()
. In dit hoofdstuk worden deze
functies in meer detail besproken, en zal ik een aantal nieuwe functies
introduceren die nuttig gaan zijn in de volgende hoofdstukken. In
hoofdstuk
8
ga ik bespreken hoe je je eigen functies kunt maken.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Lengte van een string | |||||
Stelling van Pythagoras | |||||
Minimum, maximum en gemiddelde | |||||
Gehele toevalsgetallen | |||||
Twee laatste cijfers | |||||
Appels verdelen | |||||
Tiental isoleren | |||||
Cijfers omwisselen | |||||
Eerste cijfer na de komma | |||||
Kladblok |
In een programma zijn er vaak regels code die je alleen wilt uitvoeren onder bepaalde omstandigheden. Om dat te regelen, bieden alle programmeertalen zogeheten “conditionele statements” of “condities.” In dit hoofdstuk leg ik uit hoe condities werken in Python.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Letterscores | |||||
Letterscores | |||||
Verschillende klinkers | |||||
Even of oneven | |||||
Kwadratische vergelijkingen | |||||
Getal van 3 cijfers | |||||
Schaakspel - donker veld | |||||
Cijfers in volgorde | |||||
1 van 2 is positief | |||||
Schrikkeljaar | |||||
Het zwarte schaap | |||||
Sorteer 3 getallen | |||||
Kladblok |
Computers raken niet verveeld. Als een computer een taak honderdduizenden malen moet herhalen, protesteert hij niet. Mensen daarentegen houden niet van teveel herhaling. Daarom moeten herhalende taken aan een computer worden overgelaten. Alle programmeertalen ondersteunen herhalingen. De klasse programmeerconstructies die herhalingen mogelijk maken heten “iteraties.” Een veelgebruikte term is “loops” (Engels, spreek uit: “loeps” – dit woord kun je netjes vertalen als “lussen,” maar dat zeggen programmeurs nooit).
Dit hoofdstuk legt uit wat je moet weten over loops in Python. Als programmeren helemaal nieuw voor je is, zul je wellicht het gevoel krijgen dat loops een lastig onderwerp zijn. Als dat zo is, neem dan de tijd voor dit hoofdstuk, en werk eraan totdat je zeker weet dat je alles snapt. Loops zijn zo’n basaal programmeerconcept dat je ze goed moet begrijpen. Elk hoofdstuk dat hierna komt maakt gebruik van loops.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Faculteit berekenen | |||||
Som van 5 getallen | |||||
Som van onbepaalde reeks getallen | |||||
Aftellen | |||||
Tafels van vermenigvuldiging | |||||
Tafels van vermenigvuldiging | |||||
Grootste, kleinste en drievouden | |||||
Rij van Fibonacci | |||||
Gemeenschappelijke karakters | |||||
Benadering van pi | |||||
Priemgetallen | |||||
Vijf dobbelstenen | |||||
Driehoekkruipers | |||||
Serie van kwadraten | |||||
Kleinste gehele deler | |||||
Positie van maximum waarde | |||||
Groter dan voorgaande in reeks | |||||
Op één-na-hoogste waarde in de reeks | |||||
Aantal maal hoogste waarde in de reeks | |||||
De verloren kaart | |||||
Kladblok |
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Oppervlakte van een cirkel | |||||
Som getallen kleiner dan 100 deelbaar door 3 | |||||
Eerste 100 Fibonacci getallen | |||||
Legende van het schaakspel | |||||
Palindroom van 4 cijfers | |||||
Grootste, kleinste en gemiddelde van onbepaalde reeks getallen | |||||
Hoger lager | |||||
Tekenprogramma | |||||
Perfect getal | |||||
Harshad getallen afprinten |
In hoofdstuk 5 beschreef ik hoe je eenvoudige functies kunt gebruiken, en hoe je functies kunt importeren uit modules. Dit hoofdstuk beschrijft hoe je je eigen functies en modules kunt creëren. Als je niet meer weet wat hoofdstuk 5 over functies zei, doe je er goed aan om dat hoofdstuk nogmaals door te nemen.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Tafels van vermenigvuldiging | |||||
Gemeenschappelijke karakters | |||||
Grerory-Leibnitz reeks | |||||
Kwadratische vergelijkingen | |||||
Wat is er fout? | |||||
Hoofdstuk 1.4 - Opgave 7 | |||||
Hoofdstuk 1.4 - Opgave 8 | |||||
Hoofdstuk 1.4 - Opgave 9 | |||||
Hoofdstuk 1.4 - Opgave 10 | |||||
Hoofdstuk 1.4 - Opgave 11 |
Tot nu toe gebruikten de meeste voorbeelden en opgaves getallen. Je hebt je misschien afgevraagd of programmeren vooral bedoeld is voor het manipuleren van getallen. In het dagelijks leven is het veel gebruikelijker om met tekstuele informatie om te gaan.
De reden dat de omgang met teksten was uitgesteld tot nu, is dat in programmeertalen het veel gemakkelijker is om met getallen om te gaan dan met teksten. Maar in dit hoofdstuk leg ik uit hoe je teksten kunt manipuleren met programma’s.
In programmeeromgevingen worden teksten weergegeven door strings. Dit hoofdstuk geeft details over strings, en over functies die beschikbaar zijn om strings aan te pakken.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Klinkers tellen | |||||
Tussen haakjes | |||||
Roteer een circulair alfabet | |||||
Woorden tellen | |||||
Autocorrectie | |||||
Slicing basics | |||||
Wis elk 3de teken | |||||
Aantal woorden | |||||
Woorden omwisselen | |||||
Tweede verschijning | |||||
Verwijder het tussenstuk |
Eén van de belangrijkste toepassingen van Python voor dataverwerking is het lezen, wijzigen, en schrijven van tekstbestanden. Data wordt vaak opgeslagen in tekstbestanden, omdat dit soort bestanden gemakkelijk tussen verschillende programma’s overgedragen kan worden. Er zijn meerdere standaard bestandsformaten voor tekstbestanden, zoals “comma-separated values” (CSV) bestanden. Python ondersteunt een aantal van die formaten via modules, waarvan ik sommige later zal bespreken. Dit hoofdstuk focust op het openen, lezen, schrijven, en sluiten van willekeurige bestanden, ongeacht het formaat.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Voorbeelden uit cursus | |||||
Woorden tellen | |||||
Woorden tellen | |||||
Zonder klinkers | |||||
Gemeenschappelijke woorden | |||||
Letterfrequenties |
Extra oefeningen die je kan maken als voorbereidingen voor de toetsen of examens
Variabelen: 1-13
Condities: 14-24
Iteraties: 25-39
Eigen functies: 40-49 (Dodelijk virus en 6174 zijn (te) moeilijk)
Strings: 50-56
Lists: 57
Dictionaries: 58-60
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Som van 3 getallen | |||||
Oppervlak van een driehoek | |||||
Tijd tussen 2 tijdstippen | |||||
Hallo, Harry! | |||||
Vorig en volgend getal | |||||
Som van de cijfers | |||||
Aankomstdag | |||||
Welke eeuw | |||||
Welke weekdag | |||||
Nieuwe schoolbanken | |||||
Digitale naar analoge klok | |||||
Getal splitsen | |||||
Koekjes kopen | |||||
Palindroom van 4 cijfers | |||||
Kleinste van 5 getallen | |||||
Aantal gelijke getallen | |||||
Groter, kleiner, gelijk aan 0 | |||||
Schaakspel - zelfde kleur | |||||
Schaakspel - Toren aan zet | |||||
Schaakspel - Koningin aan zet | |||||
Schaakspel - Koning aan zet | |||||
Schaakspel - Loper aan zet | |||||
Schaakspel - paardensprong | |||||
Het 4de hoekpunt | |||||
99 bottles of beer | |||||
Tafels van vermenigvuldiging | |||||
Som van twee kwadraten | |||||
Driehoekkruipers | |||||
Gemiddelde van onbepaalde reeks getallen | |||||
Maximum van onbepaalde reeks getallen | |||||
Aantal even getallen in reeks | |||||
Som van faculteiten | |||||
De getalladder | |||||
Print de getallen x tem y | |||||
Som van N getallen | |||||
Bazel-probleem | |||||
Draakkromme | |||||
Kerstboom | |||||
Legende van het schaakspel | |||||
Binomiaalcoëfficiënt | |||||
Afstand tussen 2 punten (functie) | |||||
is_schrikkeljaar | |||||
Pythagoras | |||||
Ruimtefiguren | |||||
Kleinste getal functie | |||||
Dodelijk virus | |||||
Vermoeden van Collatz | |||||
6174 | |||||
Keer op keer | |||||
Twee halve strings | |||||
Eerste en laatste verschijning | |||||
Keer het tussenstuk om | |||||
Vervang substring | |||||
Vervang binnen fragment | |||||
maak_login | |||||
tel_klinkers | |||||
Schaal toepassen | |||||
Quiz | |||||
Synoniemen | |||||
Warmste week |
Sets zijn ongeordende data structuren die alleen unieke elementen kunnen bevatten. Slechts weinig programmeertalen ondersteunen het gebruik van sets, maar Python doet het wel. Sets worden niet vaak gebruikt, maar kunnen soms een leuke oplossing geven voor een probleem.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Inleiding | |||||
Basis van sets | |||||
Set methodes | |||||
Frozensets | |||||
Wat je geleerd hebt | |||||
Socrates | |||||
Deelbaar |
Soms treden runtime errors op niet omdat je een programmeerfout hebt gemaakt, maar omdat er een probleem optreedt dat je niet kon voorzien toen je het programma schreef. Dit is buitengewoon relevant als je met bestanden werkt: bijvoorbeeld, als je een bestand verwerkt dat op een USB-stick staat, en de gebruiker verwijdert de USB-stick tijdens de verwerking, krijg je uiteraard een fout die je niet echt zou kunnen voorzien in je code. Iedere runtime error genereert in de code een zogenaamde “exception” (“uitzondering”) die je kunt “afvangen.” Het afvangen van een exception betekent dat je in je programma code opneemt die ervoor zorgt dat de opgetreden fout zoveel mogelijk netjes wordt afgehandeld, in plaats van je programma abrupt af te breken.
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Inleiding | |||||
Errors en exceptions | |||||
Afhandelen van exceptions | |||||
Exceptions bij bestandsmanipulatie | |||||
Genereren van exceptions | |||||
Wat je geleerd hebt | |||||
Controleren |
Als je een probleem moet oplossen met tekstanalyse, data verwerking, het zoeken van patronen in grote data verzamelingen, of het filteren van data uit webpagina’s, en je zoekt op het Internet naar een oplossing voor het probleem, dan zul je zien dat het eerste antwoord dat meestal op vragen hierover gegeven wordt is “Waarom gebruik je geen reguliere expressies?” of zelfs “Gebruik gewoon regex,” zonder verdere uitleg. Dat zijn nogal zelfingenomen antwoorden, aangezien maar weinig mensen de term reguliere expressies kennen, en zelfs als ze hem kennen, ze reguliere expressies vaak eng en onbegrijpelijk vinden. En het is waar dat op het eerste gezicht reguliere expressies zo esoterisch en verwarrend zijn dat de meeste mensen liever besmuikt wegsluipen dan er tijd aan te besteden. Wat jammer is, daar reguliere expressies een krachtig hulpmiddel zijn dat niet mag ontbreken in de gereedschapskist van eenieder die regelmatig moet omgaan met tekstuele data.
In dit hoofdstuk leg ik uit hoe je basale reguliere expressies schrijft en gebruikt met Python. Je zult ontdekken dat ze een krachtige manier bieden om snel complexe patronen in data te identificeren, en toegang geven tot functionaliteiten die in gewoon Python lastig te implementeren zijn. Hoewel dit hoofdstuk geen compleet overzicht verschaft over reguliere expressies, zul je aan het einde ervan voldoende begrijpen om de meeste, zo niet alle problemen rondom het identificeren van patronen in teksten op te kunnen lossen, en je kunt beginnelingen toespreken met de woorden: “Je moet reguliere expressies gebruiken om je problemen op te lossen.” Nu kun jij ook zelfingenomen zijn!
Titel | Voortgang groep | Status | |||
---|---|---|---|---|---|
Inleiding | |||||
Reguliere expressies met Python | |||||
Reguliere expressies schrijven | |||||
Groeperen | |||||
Vervangen | |||||
Wat je geleerd hebt | |||||
Woorden | |||||
De | |||||
Tweeledige namen | |||||
Meervoudige namen | |||||
Citaten | |||||
Webscraper |