[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
  • Oefening: H2-AddUp
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H2-FuelConsumption
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H2-LittleMath
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Ondersteunend materiaal
  • Oefening: H2-Average
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H2-MultiplicationTables
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H2-Space
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H2-BicycleSeller
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
Export as PDF
  1. Semester 1: Programming Principles
  2. H2: Variabelen en datatypes

Oefeningen

Al deze oefeningen maak je in een klasse VariabelenEnDatatypes. In de oefeningen van hoofdstuk 1 heb je gezien hoe je een nieuwe klasse maakt.

Oefening: H2-AddUp

Leerdoelen

  • gebruik van variabelen om input via Console.ReadLine op te slaan

  • berekeningen met de opgeslagen data uitvoeren

  • het resultaat dat werd opgeslagen in een variabele via Console.WriteLine te tonen

Functionele analyse

Een applicatie vraagt je twee getallen in te voeren. Na de invoer van het tweede getal worden beide getallen bij elkaar opgeteld. Het resultaat wordt uiteindelijk weergeven.

Technische analyse

Noem de methode voor deze oefening AddUp.

  1. De vraag wordt gesteld om een getal in te typen en daarna op enter/return te drukken.

  2. Er wordt gevraagd een tweede getal in te typen en dan op enter/return te drukken.

  3. De twee getallen worden opgeteld.

  4. Het resultaat wordt weergegeven.

voorbeeldinteractie(s)

Wat is het eerste getal?
> 1
Wat is het tweede getal?
> 4
De som is 5.

Technische hulp

Programmaverloop

Lees de gebruikersinvoer van de console en sla dit op in een variabele voor wat het eerste getal betreft. Herhaal dit voor het tweede getal. Tel de twee getallen samen en bewaar deze in een derde variabele. Uiteindelijk geef je dan de inhoud van deze derde variabele weer in de console.

Let op: met Console.ReadLine() lees je tekst in, dus waarden die je kan toekennen aan variabelen van type string. Om een getal in te lezen, vervang je Console.ReadLine() door Convert.ToInt32(Console.ReadLine()). De werking hiervan zie je later.

Testscenario's

  • Voer tekst in.

  • Voer een getal met 100 cijfers in.

  • Voer geen getal in.

Oefening: H2-FuelConsumption

Leerdoelen

  • gebruik van variabelen om input via Console.ReadLine op te slaan

  • berekeningen met de opgeslagen data uitvoeren

  • het resultaat dat werd opgeslagen in een variabele via Console.WriteLine te tonen

Functionele analyse

Een applicatie zal voor jou het gemiddelde verbruik van een wagen berekenen.

Hiervoor worden volgende vragen gesteld:

  1. Hoeveel liter is er nog aanwezig in de benzinetank.

  2. Hoeveel liter zit er nog in de benzinetank na de rit.

  3. Ook de kilometerstand van bij de aanvang van de rit wordt gevraagd en ook deze nadat de rit werd uitgevoerd.

Op basis van deze parameters wordt het gemiddelde verbruik berekend en weergegeven.

Technische analyse

Noem de methode voor deze oefening FuelConsumption.

  1. De vraag wordt gesteld om het aantal liter, aanwezig in de benzinetank, op te geven.

  2. Daarna wordt gevraagd om ook het aantal liter op te geven na de rit.

  3. De kilometerstand van de aanvang van de rit wordt gevraagd.

  4. Uiteindelijk ook de kilometerstand na het beëindigen van de rit wordt opgevraagd.

voorbeeldinteractie(s)

Technische hulp

Programmaverloop

Lees de gebruikersinvoer van de console en slaag dit op in variabelen.

Zorg ervoor dat je het juiste gegevenstype kiest voor de verschillende variabelen.

Nadien voer je de berekening uit om op basis van de ingevoerde gegevens het gemiddeld verbruik te berekenen (100 * (aantalLiterinTankVoorRit - aantalLiterinTankNaRit) / (kilometerstandNaRit - kilometerstandVoorRit))

Uiteindelijk geef je dan het resultaat weer in de console.

Testscenario's

  • Voer tekst in.

  • Voer een getal met 100 cijfers in.

  • Voer geen getal in.

Oefening: H2-LittleMath

Leerdoelen

  • expressies schrijven

  • voorrang van operatoren

  • effect van operaties naargelang datatype begrijpen

Functionele analyse

Je schrijft een programma dat de rol vervult van een rekenmachine. Het voert volgende berekeningen uit:

  • -1 + 4 * 6

  • ( 35+ 5 ) * 7

  • 14 + -4 * 6 / 11

  • 2 + 15 / 6 * 1 - 7 * 2

Technische analyse

Noem de methode voor deze oefening LittleMath.

voorbeeldinteractie(s)

23
280
12
-10

Technische hulp

Programmaverloop

Eerst wordt een resultaat berekend, daarna wordt het geprint.

Testscenario's

  • Test uit met getallen van het type int.

  • Test uit met getallen van het type float.

Ondersteunend materiaal

Oefening: H2-Average

Leerdoelen

  • expressies schrijven

  • voorrang van operatoren

  • effect van operaties naargelang datatype begrijpen

Functionele analyse

Je schrijft een programma dat het gemiddelde van 18, 11 en 8 berekent, d.w.z. deze drie getallen optelt en de som deelt door drie.

Technische analyse

Noem de methode voor deze oefening Average.

voorbeeldinteractie(s)

12

Technische hulp

Programmaverloop

Eerst wordt het resultaat berekend, daarna wordt het geprint.

Testscenario's

  • Test uit met getallen van het type int.

  • Test uit met getallen van het type float.

Oefening: H2-MultiplicationTables

Leerdoelen

  • de console leegmaken

  • werken met wiskundige operatoren

  • interactie met de gebruiker

Functionele analyse

Je schrijft een programma dat de tafel van vermenigvuldiging voor 411 geeft. Dit programma wacht steeds tot de gebruiker op ENTER duwt voor het het volgend resultaat toont. Verder maakt het steeds het scherm leeg voor het een nieuw resultaat toont. Zie "programmaverloop".

Technische analyse

Noem de methode voor deze oefening MultiplicationTables. Je kent nog geen lusstructuren, dus probeer deze niet te gebruiken, zelfs als je ze al ergens anders bent tegengekomen. Schrijf gewoon tien instructies.

voorbeeldinteractie(s)

1 * 411 is 411.
2 * 411 is 822.

(enzovoort)

10 * 411 is 4110.

Technische hulp

Programmaverloop

Voor elk resultaat wordt het scherm eerst leeggemaakt. Daarna pas wordt het resultaat getoond. Wanneer de gebruiker op ENTER duwt, wordt deze handeling herhaald voor het volgende resultaat (of eindigt het programma, na het tiende resultaat). Het scherm leegmaken doe je met Console.Clear(). Plaats 411 ook in een variabele.

Testscenario's

  • Test uit zoals gegeven.

  • Test uit voor 511. Je zou maar één teken in je code moeten aanpassen als je de instructies hebt gevolgd.

Oefening: H2-Space

Leerdoelen

  • werken met kommagetallen

Functionele analyse

Je massa is overal dezelfde en wordt uitgedrukt in kilogram. Je gewicht daarentegen is afhankelijk van de zwaartekracht van de plek waar je bent en wordt uitgedrukt in Newton. Je hebt dus een ander gewicht op andere planeten. Zo is je gewicht veel groter op Jupiter dan op Mars, omdat Jupiter meer zwaartekracht uitoefent dan Mars. Schrijf een programma dat je gewicht op aarde omzet naar je gewicht op een ander hemellichaam. Je krijgt volgende omzettingstabel:

  • Mercurius: 0.38 (een persoon van 100kg voelt zich alsof hij 38kg weegt)

  • Venus: 0.91

  • Aarde: 1.00 (een persoon van 100kg voelt zich alsof hij 100kg weegt)

  • Mars: 0.38

  • Jupiter: 2.34

  • Saturnus: 1.06

  • Uranus: 0.92

  • Neptunus: 1.19

  • Pluto: 0.06

Technische analyse

Noem de methode voor deze oefening Space.

voorbeeldinteractie(s)

Op Mercurius voel je je alsof je 26.22kg weegt.
Op Venus voel je je alsof je 62.79kg weegt.
Op Aarde voel je je alsof je 69kg weegt.
Op Mars voel je je alsof je 26.22kg weegt.
Op Jupiter voel je je alsof je 161.46kg weegt.
Op Saturnus voel je je alsof je 73.14kg weegt.
Op Uranus voel je je alsof je 63.48kg weegt.
Op Neptunus voel je je alsof je 82.11kg weegt.
Op Pluto voel je je alsof je 4.14kg weegt.

Technische hulp

Programmaverloop

Plaats je gewicht in een variabele. Kies zelf een geschikt type.

Testscenario's

  • Test uit voor je eigen gewicht.

  • Test uit voor het gewicht van een persoon met een massa van 100kg.

Oefening: H2-BicycleSeller

Leerdoelen

  • herhaling leerstof H2

  • gebruik Flowgorithm

Functionele analyse

Een fietsenhandelaar koopt fietsen in tegen inkoopprijs maar verkoopt deze met BTW. Hij wil een programma om gemakkelijk de BTW en de prijs met BTW te berekenen.

Technische analyse

Maak eventueel eerst de flowchart voor deze opdracht en vertaal deze daarna naar C#.

Noem de methode voor deze oefening BicycleSeller.

Gebruik een double voor de inkoopprijs en de verkoopprijs. Gebruik een int voor het BTW percentage.

Bereken apart de BTW en de verkoopprijs BTW inbegrepen.

voorbeeldinteractie(s)

PreviousExpressies en operatorsNextH3: Strings en hun methoden

Last updated 8 months ago

vind je een tabel terug die uitlegt welke operaties voorrang hebben.

Hier