[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
  • Oefening: H6-ArrayTrueFalse
  • Oefening: H6-ArrayExercise
  • Oefening: H6-Shopping
  • Oefening: H6-ChristmasShopping
  • Oefening: H6-Lottery
  • Oefening: H6-IntegerIndexOf
  • Oefening: H6-BinarySearch
  • Oefening: H6-ShoppingList
  • Oefening: H6-ChristmasShoppingList
Export as PDF
  1. Semester 1: Programming Principles
  2. H6: Arrays

Oefeningen

PreviousList<T>NextH7: Methoden

Last updated 7 months ago

Oefeningen

Oefening: H6-ArrayTrueFalse

Leerdoelen

  • Declareren van arrays

  • Initialiseren van arrays

  • Opvullen van arrays

  • Arrays gebruiken - afprinten

Functionele analyse

Maak een array gevuld met afwisselend true en false (de array is 30 lang). Toon ook de inhoud van de array op het scherm; alle elementen naast elkaar.

Je kan eventueel onderstaande flowchart gebruiken.

Technische analyse

Voorbeeldinteractie

Uitbreiding

Toon nu ieder element naast elkaar met komma gescheiden. Dus:

true, false, true, ...

Zorg ervoor dat er op het einde geen komma staat.

Voorbeeldinteractie

Oefening: H6-ArrayExercise

Leerdoelen

  • Declareren van arrays

  • Initialiseren van arrays

  • Opvullen van arrays

  • Arrays gebruiken

Functionele analyse

Maak een programma dat aan de gebruiker vraagt om 10 waarden (int) in te voeren in een array. Vervolgens toont het programma de som, het gemiddelde en het grootste getal van deze 10.

Vervolgens vraagt het programma de gebruiker om een getal in te voeren. Het programma toont dan alle getallen die groter of gelijk zijn aan dit ingevoerde getal zijn die in de array aanwezig zijn. Indien geen getallen groter zijn dan verschijnt een bericht Niets is groter op het scherm.

Technische analyse

Merk op: je kan in principe de statistieken al bijhouden terwijl de getallen worden ingevoerd, maar hier moet je ze pas achteraf berekenen. Doe het ook zo.

Je kan eventueel onderstaande flowchart gebruiken.

Voorbeeldinteractie

Oefening: H6-Shopping

Leerdoelen

  • Declareren van arrays

  • Initialiseren van arrays

  • Opvullen van arrays

  • Arrays gebruiken

Functionele analyse

Maak een programma dat de gebruiker een boodschappenlijstje laat samenstellen.

  • Het programma vraagt eerst hoeveel items de boodschappenlijst moet bevatten en laat dan de lijst vullen.

  • Vervolgens wordt een gesorteerde lijst van de items getoond.

  • Daarna, in de winkel, kan de gebruiker aangeven welke items er gekocht worden. De gebruiker kan dit blijven doen zolang er 'ja' geantwoord wordt op de vraag 'Nog winkelen?'. Als de gebruiker een item intypt dat niet op de lijst staat, wordt er een bericht getoond.

  • Na het winkelen toont het programma welke items van de lijst niet gekocht zijn.

Je kan eventueel onderstaande flowchart gebruiken.

Technische analyse

Voorbeeldinteractie

Oefening: H6-ChristmasShopping

Leerdoelen

  • Declareren van arrays

  • Initialiseren van arrays

  • Opvullen van arrays

  • Arrays gebruiken

  • Array methodes gebruiken

Functionele analyse

Maak een programma dat kan gebruikt worden om kerstinkopen te doen, rekening houdend met een budget. Na de inkopen, wordt het totaal gespendeerd bedrag getoond en het hoogste, laagste en gemiddelde bedrag.

Technische analyse

Voorbeeldinteractie

Oefening: H6-Lottery

Leerdoelen

  • Declareren van arrays

  • Initialiseren van arrays

  • Opvullen van arrays

  • Opzoeken waarde in arrays

Functionele analyse

Je vraagt de gebruiker zijn 6 lotto getallen (getal tussen 1 en 42) in te geven. Je hoeft geen controle te doen op de getallen die de gebruiker ingeeft. Je bewaart deze getallen in een array lotteryForm.

Vervolgens simuleer je een trekking. Dat doe je door random 6 getallen te genereren (zie hiervoor Random) en die ook in een array lotteryDraw te bewaren. Let op: hier moet je wel controleren of het inderdaad 6 verschillende getallen zijn (hoe kan je nagaan of iets aanwezig is in je array?).

Dan doe je een validatie. Heeft de gebruiker 3 juiste cijfers wint hij 10 €, bij 4 juiste cijfers 1000 €, bij 5 juiste cijfers 100.000 € en bij 6 juiste cijfers 10.000.000 €.

Zorg dat alles mooi wordt getoond aan de gebruiker. Lotto getallen in stijgende volgorde, trekking getallen in stijgende volgorde, winst. Zie voorbeeldinteractie.

Technische analyse

Wat betreft het random genereren van 6 getallen tussen 1 en 42. Daar krijg je het volgend stukje code voor:

Random random = new Random();
int lottoGetal;
        
for (int i = 0; i < lottoTrekking.Length; i++) {
    do {
        lottoGetal = random.Next(42) + 1;
    }
    while (Array.IndexOf(lottoTrekking, lottoGetal) >= 0);
    lottoTrekking[i] = lottoGetal;
}

Voorbeeldinteractie

Oefening: H6-IntegerIndexOf

Leerdoelen

  • Arrays in flowcharts gebruiken

  • Opzoeken waarde in integer arrays – zelf geschreven methode

Functionele analyse

Zoek een getal in een reeks van getallen.

Technische analyse

De gebruiker geeft eerst 10 getallen in die je in een array zet. Vervolgens geeft de gebruiker een te zoeken getal in. Schrijf zelf de code (dus maak geen gebruik van een reeds bestaande methode) om te zien of dit getal al dan niet in de array zit.

Je kan eventueel onderstaande flowchart gebruiken.

Voorbeeldinteractie

Oefening: H6-BinarySearch

Leerdoelen

  • Arrays in flowcharts gebruiken

  • De array gebruiken, in een array zoeken.

Functionele analyse

Heel eenvoudig uitgelegd zal het algoritme de te zoeken waarde vergelijken met de middelste waarde (van een gesorteerde array). Als de waarde niet gelijk is wordt dat gedeelte van de array waar de waarde zich niet in kan bevinden weggegooid. De zoektocht gaat verder totdat de waarde is gevonden (of niet gevonden indien alle mogelijkheden zijn doorzocht).

Technische analyse

Je kan eventueel onderstaande flowchart gebruiken.

Om twee strings te ordenen, gebruik je string1.CompareTo(string2). Dit levert -1 als string1 voor string2 komt, 1 als string1 na string2 komt en 0 als ze op dezelfde plaats komen.

Voorbeeldinteractie

Oefening: H6-ShoppingList

Leerdoelen

  • Declareren van een List

  • Initialiseren van een List

  • List gebruiken

Functionele analyse

Maak een een alternatieve versie van H6-Shopping. Maak ditmaal gebruik van List<T> in plaats van een array.

Technische analyse

  • Je hoeft de grootte van de lijst niet meer op voorhand te vragen.

  • Een lijst myList sorteren doe je door myList.sort() op te roepen.

  • Je mag elementen die gekocht zijn gewoonweg verwijderen uit de lijst.

  • Op het eindetoon je de resterende items met een foreach lus.

  • Je geeft een lege regel in om aan te geven dat je niets wil toevoegen aan je lijstje.

Voorbeeldinteractie

Wat is item 1 op je lijst?
> kaas
Wat is item 2 op je lijst?
> eieren
Wat is item 3 op je lijst?
> boter
Wat is item 4 op je lijst?
>
Dit is je gesorteerde lijst:
1: boter
2: eieren
3: kaas
Op naar de winkel!
Welk item heb je gekocht?
> kaas
Nog winkelen? (Ja of Nee)
> nee
Naar huis met de boodschappen!
Volgende items van je lijst ben je vergeten te kopen:
boter eieren

Oefening: H6-ChristmasShoppingList

Leerdoelen

  • Declareren van een List

  • Initialiseren van een List

  • List gebruiken

Functionele analyse

Maak een een alternatieve versie van H6-ChristmasShopping. Maak ditmaal gebruik van List<T> in plaats van een array.

Technische analyse

  • Je hoeft niet meer te vragen op voorhand hoe veel cadeautjes er gekocht zullen worden.

  • Je mag stoppen bij een lege regel invoer.

  • Je moet ook stoppen zodra je over budget gaat.

Voorbeeldinteractie

Wat is het budget voor je kerstinkopen?
> 500
Prijs van cadeau 1?
> 200
Prijs van cadeau 2?
> 330
Je bent al 30.0 euro over het budget!
Info over je aankopen:
Totaal bedrag: 530.0 euro
Duurste cadeau: 330.0 euro
Goedkoopste cadeau: 200.0 euro
Gemiddelde prijs: 265.0 euro
2KB
H6-ArrayTrueFalse (1).fprg
3KB
H6-ArrayOefener1 (3).fprg
8KB
H6-Boodschappenlijst (3).fprg
3KB
H6-IntegerIndexOf (3).fprg
4KB
H6-BinarySearch (4).fprg