[G_PRO] Basis Programmeren en OO Programmeren
DigitAP
  • Welkom
  • Inleiding
    • Benodigdheden
    • Afspraken code
    • Afspraken oefeningen
    • Nuttige extras
    • Dankwoord
    • Mee helpen?
  • Semester 1: Programming Principles
    • H1: Werken met Visual Studio
      • Introductie tot C#
      • Visual Studio en .NET Core installeren
      • Een C# project maken in Visual Studio
      • Fouten in je code
      • Je eerste stappen in C#
      • Input/Output: ReadLine/WriteLine
      • Kleuren in Console
      • Oefeningen
    • H2: Variabelen en datatypes
      • De syntaxis van C#
      • Datatypes
      • Variabelen
      • Expressies en operators
      • Oefeningen
    • H3: Strings en hun methoden
      • Strings
      • Strings samenvoegen
      • Omzetten van en naar strings
      • Functionaliteit van strings
      • Oefeningen
    • H4: Beslissingen
      • Beslissingen intro
      • Enkelvoudige booleaanse expressies
      • If, else, else if
      • Samengestelde booleaanse expressies
      • Scope van variabelen
      • Switch
      • Oefeningen
    • H5: Loops
      • Loops intro
      • While en Do While
      • For
      • Debuggen
      • Oefeningen
    • H6: Arrays
      • Array principes
      • Alternatieve syntax
      • Werken met arrays
      • Defaultwaarden
      • List<T>
      • Oefeningen
    • H7: Methoden
      • Methoden intro
      • Parameters
      • Return waarden
      • Geavanceerde methoden
      • Oefeningen
    • Intermezzo: TextCell
    • H8: Numerieke data
      • De Math klasse
      • Random
      • Casting en conversie
      • Oefeningen
    • H9: Meerdimensionaal werken
      • N-dimensionale arrays
      • Geneste iteratie
      • Oefeningen
    • H10: Gevorderde tekstverwerking
      • Voorstelling van tekst
      • Interpolatie met formattering
      • Werken met arrays van strings
      • Input en output van tekstbestanden
      • Oefeningen
    • Afsluiter: TextCell2D
  • Semester 2 : OOP
    • H10: Klassen en objecten
      • OOP Intro
      • Klassen en objecten aanmaken
      • DateTime: leren werken met objecten
      • Enumeraties: nog een eigen datatype
      • Klassen en objecten weergeven deel 1
      • Attributen
      • Methoden
      • Access modifiers
      • Properties
      • Oefeningen
    • H11: Objecten (al dan niet) aanmaken
      • Constructors
      • Spelen met strings
      • Oefeningen
    • H12: Geheugenmanagement bij klassen
      • value en reference met eigen objecten
      • nullable value types
      • NullReference exception
      • Oefeningen
    • H13: Datastructuren
      • Foreach en var
      • List
      • Dictionary
      • Immutable datastructuren
      • Verdere datastructuren
      • Oefeningen
    • H14: Overerving
      • Overerving intro
      • Virtual en override
      • Abstract
      • Constructors bij overerving
      • Oefeningen
    • H15: Geavanceerde overerving
      • protected access modifier
      • Base keyword
      • System.Object
      • Oefeningen
    • H16: Exception handling
      • Werken met exceptions
      • Zelf uitzonderingen maken
      • Wanneer exceptions en handling gebruiken
      • Oefeningen
    • H17: Polymorfisme en interfaces
      • Polymorfisme
      • Polymorfisme in de praktijk
      • Interfaces
      • Losse koppeling
      • Oefeningen
    • H18: Testing
      • Intro Testing
      • Wat is Unit Testing
      • Waarom Unit Testing?
      • Wanneer Unit Testing?
      • Schrijven van een unit test: AAA methode
      • Eerste voorbeeld: Sum
      • Assert
      • Oefening even of oneven getal
      • TestInitialize en DataRows
      • Oefening BMI
      • Exception testing
      • Oefening BMI exception
      • Oefening SchoolAdmin test null-waarden en TestCleanup
      • Oefening SchoolAdmin test equals
      • Oefening SchoolAdmin test cursus zoeken met id
      • Dependencies bij Unit Testing
      • Mocking
      • Oefeningen Mocking
      • Test Driven Development
      • Class Library
      • Oefeningen TDD
    • H19: SOLID
      • Single Responsibility Principle (SRP)
      • Open/Closed Principle (OCP)
      • Liskov Substitution Principle (LSP)
      • Interface Segregation Principle (ISP)
      • Dependency Inversion Principle (DIP)
  • Appendix
    • Visual Studio Tips & Tricks
    • Ea-ict coding guidelines
    • Oefeningen kerkhof
  • Semester 1 appendix
    • Nice to know stuff
      • Out en Ref parameters
      • Jagged arrays
    • All-In-Projecten
      • Overzicht
      • Console Matrix
      • Ascii filmpjes maken met loops
      • Ascii filmpjes maken met methoden
      • Fun with methods: een verhaalgenerator
      • Tekst-gebaseerd Maze game
      • Conway game of life
  • Semester 2 appendix
    • Operator overloading
    • Object Initializer Syntax
    • Compositie en aggregatie
    • Nice to know stuff
      • Klassen herbruiken
      • Expression bodied members
    • All-In-Projecten
      • Overzicht
      • OO Textbased Game
      • War Simulator
      • Map Maker
      • Magic The Gathering API
      • SchoolAdmin
  • Pro (geen leerstof en/of in opbouw)
    • Bitwise operators
    • Generics en collections
      • Generics methoden en types
      • Generic classes en constraints
      • Collections
      • Labo-oefeningen
    • Events
      • Events
      • Chat server
    • Software engineering
      • SOLID
Powered by GitBook
On this page
  • Oefeningen WHILE en DO WHILE
  • Oefening: H5-CountDown
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Password
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Average
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Party
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-NumberOfDigits
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Lions
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Voorbeeldinteractie(s)
  • Oefening: H5-SumOfEvenNumbers
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Factors
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-RNATranscription
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Accountant
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefeningen FOR
  • Oefening: H5-Minus100Plus100
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-AMultiplicationTable
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-Multiples6And8
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening H5-Fibonacci
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Voorbeeldinteractie
  • Oefening: H5-PrimeNumberChecker
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Oefening: H5-PrimeNumberGenerator
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
Export as PDF
  1. Semester 1: Programming Principles
  2. H5: Loops

Oefeningen

PreviousDebuggenNextH6: Arrays

Last updated 7 months ago

Al deze oefeningen maak je in een klasse Loops

Oefeningen WHILE en DO WHILE

Oefening: H5-CountDown

Leerdoelen

  • flowchart omzetten naar code

  • gebruik van een while-lus

Functionele analyse

Je vraagt de gebruiker een positief geheel getal en vervolgens ga je aftellen. Alle getallen vanaf dat getal tot 1 worden getoond onder elkaar. Na het tonen van het laatste getal toon je “Start!”.

Technische analyse

Maak een methode met de naam CountDown

Zet volgende flowchart om in code:

Voorbeeldinteractie(s)

Testscenario's

Voer een negatief getal in.

Oefening: H5-Password

Leerdoelen

  • Gebruik van een do while-lus

Functionele analyse

De gebruiker wordt gevraagd om een wachtwoord in te geven totdat het juiste antwoord (“AP”) wordt gegeven. Toon daarna “Wachtwoord in orde!”.

Tel ook het aantal pogingen dat de gebruiker nodig had om het juiste antwoord te geven en toon het aantal pogingen.

Technische analyse

Maak een methode met de naam Password

Zet volgende flowchart om in code:

Voorbeeldinteractie(s)

Testscenario's

· Duw meteen op ENTER

Oefening: H5-Average

Leerdoelen

  • Gebruik van een while of do while lus.

Functionele analyse

Bereken het gemiddelde van een aantal ingegeven getallen. De invoer van de getallen stopt met ingeven van de waarde 0.

Technische analyse

Maak een methode met de naam Average. Het gemiddelde bereken je door de ingegeven getallen te delen door het aantal ingegeven getallen. De 0 die de reeks getallen stopt, wordt niet meegeteld als ingegeven getal.

Werk een oplossing uit met gebruik van een while lus of een do while lus. Zorg ervoor dat je gemiddelde ook de cijfers na de komma bevat.

Voorbeeldinteractie(s

Testscenario's

  • Test met negatieve waarden

  • Geef dadelijk een 0 in. Wat wordt er dan getoond als waarde van het gemiddelde en wat betekent dit?

Oefening: H5-Party

Leerdoelen

· Gebruik van een while met samengestelde booleaanse expressie

Functionele analyse

Je organiseert een feestje en met een programma ga je de inschrijvingen noteren. Je kan echter maximaal 20 personen inschrijven én je kan elk moment beslissen dat je geen volgende persoon meer wil inschrijven. Op het einde toon je alle namen van de ingeschrevenen.

Technische analyse

Maak een methode met de naam Party

Werk een oplossing uit met gebruik van een while lus.

Voorbeeldinteractie(s)

Testscenario's

  • Geef dadelijk “nee” in.

  • Probeer meer dan 20 personen in te schrijven.

Oefening: H5-NumberOfDigits

Leerdoelen

  • Gebruik van een do while

Functionele analyse

Schrijf een programma dat het aantal cijfers in een getal telt (het getal 12348 heeft bijvoorbeeld 5 cijfers). Het is de bedoeling dat je dit doet met een loop, dus niet door het getal als tekst te behandelen.

Technische analyse

Maak een methode met de naam NumberOfDigits

Het is de bedoeling dat je het aantal digits telt met een do while loop, dus niet door het getal als tekst te behandelen.

Voorbeeldinteractie(s)

Oefening: H5-Lions

Leerdoelen

Gebruik van een while of do while lus.

Functionele analyse

In een natuurpark zijn er 50 leeuwen. Het aantal groeit elk jaar met 15%. Hoe lang duurt het tot er 100 leeuwen zijn?

Technische analyse

Maak een methode met de naam Lions.

Voorbeeldinteractie(s)

Oefening: H5-SumOfEvenNumbers

Leerdoelen

  • Gebruik van een while met een geneste if.

  • Flowchart omzetten in code

Functionele analyse

Schrijf een programma dat de som maakt van alle even getallen van 1 tot een waarde n. Toon niet enkel de eindsom maar ook alle even getallen met de tussentijdse sommen.

Technische analyse

Maak een methode met de naam SumOfEvenNumbers

Zet volgende flowchart om in code:

Voorbeeldinteractie(s)

Testscenario's

  • Druk dadelijk op ENTER.

  • Geef 0 in.

  • Geef 1 in.

Oefening: H5-Factors

Leerdoelen

  • Gebruik van een while met geneste if’s.

Functionele analyse

Technische analyse

Maak een methode met de naam Factors

Gebruik een while loop. Gebruik een extra if om ervoor te zorgen dat er op het einde van de factoren geen komma teveel staat.

Voorbeeldinteractie(s)

Testscenario's

  • Geef 0 in.

  • Geef 1 in.

  • Geef een negatief getal in.

  • Geef een priemgetal in.

Oefening: H5-RNATranscription

Leerdoelen

· Gebruik van een do while met geneste if.

Functionele analyse

DNA heeft steeds een RNA-complement (DNA is het gevolg van RNA transscriptie). Schrijf een programma dat een ingevoerde DNA-string omzet naar een RNA-string. De gebruiker voert steeds 1 DNA-nucleotide (m.a.w. één letter) in per keer en duwt op enter, de RNA string wordt steeds groter. De omzetting is als volgt:

· G wordt C

· C wordt G

· T wordt A

· A wordt U

· “stop” dan stopt de gebruiker met letters ingeven en wordt het resultaat getoond.

· Andere letters of meer dan één letter worden genegeerd

Technische analyse

Noem de methode voor deze oefening RNATranscription.

Voorbeeldinteractie(s)

Testscenario's

  • Geef andere letters in dan G, T, C of A.

  • Geef meerdere letters in.

  • Geef een getal in.

  • Druk op ENTER.

Oefening: H5-Accountant

Leerdoelen

  • Gebruik van een do while met geneste if

  • Gebruik van een oneindige lus

Functionele analyse

Maak een 'boekhoudprogramma': de gebruiker kan continu positieve en negatieve getallen invoeren. Dit programma houdt volgende zaken bij:

· de totale balans

· de som van de positieve getallen

· de som van de negatieve getallen

· het gemiddelde

Technische analyse

Maak een methode met de naam Accountant

Voor de eerste drie zaken kom je toe met een variabele. Voor de laatste is dit lastiger, omdat elk nieuw getal een kleiner effect heeft op het gemiddelde dan het vorige. Je houdt beter een teller bij met het aantal ingevoerde getallen. Dan is het gemiddelde de totale balans gedeeld door het aantal ingevoerde getallen.

voorbeeldinteractie(s)

(Dit programma kan blijven verder lopen zo lang je wil.)

Testscenario's

· Druk dadelijke op ENTER.

Oefeningen FOR

Oefening: H5-Minus100Plus100

Leerdoelen

  • Gebruiken van een for-lus

  • Aanpassen 'update'

  • Flowchart omzetten in code

Functionele analyse

Basis: Toon alle natuurlijke getallen van -100 tot 100.

Uitbreiding: Toon alle even natuurlijke getallen van -100 tot 100.

Technische analyse

Maak een methode met de naam Minus100Plus100.

Zet volgende flowcharts om in code: (als er geen update vermeld is, wordt de wachtervariabele verhoogd met 1)

Basis:

Uitbreiding:

voorbeeldinteractie(s)

Basis

Uitbreiding:

Oefening: H5-AMultiplicationTable

Leerdoelen

  • Gebruiken van een for-lus

Functionele analyse

Vraag aan de gebruiker van welk getal de tafel van vermenigvuldiging tot 10 moet getoond worden. Toon elke vermenigvuldiging onder elkaar.

Technische analyse

Maak een methode met de naam AMultiplicationTable.

voorbeeldinteractie(s)

Testscenario's

Geef 0 in.

Oefening: H5-Multiples6And8

Leerdoelen

  • Gebruiken van een for-lus met een geneste if met een samengestelde booleaanse expressie

Functionele analyse

Toon alle getallen van 1 tot en met 100 die een veelvoud zijn 6 en die een veelvoud zijn van 8.

Technische analyse

Maak een methode met de naam Multiples6And8.

voorbeeldinteractie(s)

Oefening H5-Fibonacci

Leerdoelen

Gebruik For.

Functionele analyse

Dit is een van de beroemdste getallenreeksen in de wiskunde. De rij van Fibonacci is een reeks van getallen waarbij ieder getal in deze reeks de som is van de 2 voorgaande getallen. De eerste 2 getallen van de Fibonacci reeks zijn 0 en 1, daarnaast is deze Fibonacci reeks oneindig lang.

Technische analyse

Maak een methode met de naam Fibonacci.

Vraag aan de gebruiker hoeveel getallen moeten getoond worden van de reeks.

Voorbeeldinteractie

Oefening: H5-PrimeNumberChecker

Leerdoelen

  • Gebruiken van een for-lus met geneste if.

Functionele analyse

Je krijgt een getal van de gebruiker. Je moet nagaan of dit een priemgetal is, d.w.z. of het precies 2 gehele delers heeft.

Technische analyse

Maak een methode met de naam PrimeNumberChecker.

Elk geheel getal vanaf 2 heeft minstens 2 gehele delers: 1 en zichzelf. Als dat de enige delers van het gegeven getal zijn, is het priem. Je kan dus nagaan of een getal een priemgetal is door alle getallen vanaf 2 tot het getal zelf te overlopen en na te gaan of deze delers zijn van het getal. Je mag veronderstellen dat de gebruiker minstens 2 intypt**.**

voorbeeldinteractie(s)

Testscenario's

Test met een negatief getal.

Oefening: H5-PrimeNumberGenerator

Leerdoelen

  • Gebruiken van een while lus met een geneste for lus

Functionele analyse

Je toont de priemgetallen tussen een laagste waarde en een hoogste waarde die door de gebruiker worden ingegeven.

Technische analyse

Maak een methode met de naam PrimeNumberGenerator.

Je kan een deel van de code van de vorige oefening gebruiken

voorbeeldinteractie(s)

Testscenario's

Test met een negatieve laagste waarde.

Schrijf een programma een getal n ontbindt in . Factoren zijn de getallen waardoor je n kan delen zonder rest (van bijvoorbeeld het getal 100 zijn de factoren 1,2,4,5,10,20,25,50,100.

factoren
...
...