OLD [G_PRO] Programmeren en OO programmeren
1.0.0
1.0.0
  • 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
      • 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
      • Labo
    • H13: Datastructuren
      • Foreach en var
      • List
      • Dictionary
      • Immutable datastructuren
      • Verdere datastructuren
      • Labo
    • H14: Overerving
      • Overerving intro
      • Virtual en override
      • Abstract
      • Constructors bij overerving
      • Oefeningen
    • H15: Geavanceerde overerving
      • protected access modifier
      • Base keyword
      • System.Object
      • Labo
    • H16: Exception handling
      • Werken met exceptions
      • Zelf uitzonderingen maken
      • Wanneer exceptions en handling gebruiken
      • Labo
    • H17: polymorfisme en interfaces
      • Polymorfisme
      • Polymorfisme in de praktijk
      • Interfaces
      • Losse koppeling
      • Labo
  • 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
  • Structuur van je oefeningen
  • Stap 1: een project LaboOefeningen maken
  • Stap 2: een klasse maken EenProgrammaSchrijvenInCSharp
  • Stap 3: een eigen methode maken
  • Stap 4: je eigen methode oproepen
  • Stap 5: opkuisen
  • Oefening: H1-MijnEersteProgramma
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H1-rommelzin
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp
  • Oefening: H1-gekleurde-rommelzin
  • Leerdoelen
  • Functionele analyse
  • Technische analyse
  • Technische hulp

Was this helpful?

Export as PDF
  1. Semester 1: Programming Principles
  2. H1: Werken met Visual Studio

Oefeningen

PreviousKleuren in ConsoleNextH2: Variabelen en datatypes

Last updated 2 years ago

Was this helpful?

Structuur van je oefeningen

Om je oefeningen ordelijk bij te houden, gaan we al een aantal zaken gebruiken die je pas verder in de cursus in detail leert. Hieronder krijg je een korte inleiding.

Stap 1: een project LaboOefeningen maken

Volg hiervoor de instructies in het document op DigitAP.

Stap 2: een klasse maken EenProgrammaSchrijvenInCSharp

Dit is nieuw. Klassen zijn een extra organisatie-eenheid van code. Ze spelen een grote rol in objectgeoriënteerd programmeren, maar kunnen ook gebruikt worden om stukken code verder te groeperen. Dit is voorlopig het enige dat wij er mee zullen doen. Via "File" maak je een nieuw bestand aan. Je kiest ervoor een nieuwe C#-klasse te maken met de naam EenProgrammaSchrijvenInCSharp.

Stap 3: een eigen methode maken

Een definitie van een methode bevat één taak die kan worden uitgevoerd. Onze eerste oefenprogramma's zullen telkens één methode zijn. De werking van methodes wordt verder in de cursus in detail omschreven. Soms moet je eerst iets overnemen voor je de functie van elk onderdeeltje kan begrijpen!

Neem aandachtig volgende code over, zodat jouw bestand exact dit bevat:

Belangrijke onderdelen:

  • using System; maakt onderdelen uit de System namespace toegankelijk. Zonder dit kan je geen gebruik maken van Console.

  • namespace LaboOefeningen geeft aan dat alles wat binnen de buitenste accolades (de symbolen op regels 4 en 11) staat behoort tot die namespace. Het is de "achternaam" van jouw code. Als er bijvoorbeeld twee stukken code EenProgrammaSchrijvenInCSharp zijn, kan je ze uit elkaar houden door te zeggen over welke namespace het gaat. Dit is hetzelfde als twee personen die dezelfde voornaam hebben, maar een andere achternaam.

  • public: hier komen we pas een stuk later op terug. Voorlopig zetten we het standaard bij klassen en methoden.

  • class: zie dit voorlopig als een verdere onderverdeling van je code. Eigenlijk zijn klassen veel meer dan dat, maar dat is voor later.

  • static: dit is sowieso nodig wanneer we klassen enkel zien als een verdere onderverdeling van je code. We zetten het bij onze methoden.

  • void: voorlopig zetten we dit altijd bij onze methoden. Het betekent ongeveer: "deze methode voert een commando uit, eerder dan een antwoord te geven op een vraag".

  • MijnEersteMethode: dit is de naam van onze methode. We kiezen deze zelf.

  • (): dit betekent dat de methode geen extra informatie nodig heeft om uit te voeren. Soms zetten we ook zaken tussen deze haakjes, de zogenaamde "parameters". Dit komt later aan bod.

  • Alles tussen de accolades op regel 7 en 9: de "body" van de methode. Dit is eigenlijk wat er gebeurt als we de methode gebruiken.

Stap 4: je eigen methode oproepen

Standaard voert de code in de klasse Program, in de methode Main uit. Dat is het beginpunt van ons programma. We kunnen de body van Main aanpassen. We zullen hierin aangeven dat onze eigen methode moet worden opgeroepen als volgt:

We noemen de code in de body een "oproep" van de methode MijnEersteMethode. Hierin staat niet hoe die methode werkt. Er staat alleen dat we ze willen gebruiken.

Stap 5: opkuisen

Je mag nu zowel de definitie als de oproep van MijnEersteMethode wissen. In de oefeningen die volgen, maak je telkens nieuwe methodes. Test ze telkens uit door de oproep te vervangen. Laat de definitie staan wanneer je overgaat naar de volgende oefening. Later zullen we een keuzemenu maken dat ons toestaat makkelijk een oefening naar keuze te demonstreren.

Oefening: H1-MijnEersteProgramma

Leerdoelen

  • een eigen programma kunnen uitvoeren

  • input en output via Console.ReadLine en Console.WriteLine

Functionele analyse

Binnen een zgn. dos-box wordt een titel weergegeven, nl. dit is mijn eerste c# programma. Vervolgens wordt gevraagd je naam te noteren. Wanneer je je naam hebt genoteerd en op enter hebt gedrukt, verschijnt de tekst “hallo [en je ingegeven naam]”.

Technische analyse

voorbeeldinteractie(s)

Technische hulp

maak een methode met de naam MijnEersteProgramma

Programmaverloop

Wat het lezen en schrijven van tekst betreft moet gebruik gemaakt worden Console.WriteLine en Console.ReadLine.

Testscenario's

  • Probeer meer dan 200 tekens in te voeren

  • Probeer geen tekst in te voeren

Oefening: H1-rommelzin

Leerdoelen

  • een eigen programma kunnen uitvoeren

  • input en output via Console.ReadLine en Console.WriteLine

  • de computer leren zien als "domme verwerker"

Functionele analyse

Dit programma verwerkt tekst die door de gebruiker wordt ingetypt. Het print nieuwe berichten die deze tekst bevatten uit. Het print niet de berichten die je verwacht: het zal de antwoorden door elkaar halen en je favoriete kleur tonen wanneer het beweert je favoriete eten te tonen, enzovoort. De verbanden worden duidelijk uit de voorbeeldinteractie.

Technische analyse

Organisatie van de code

Schrijf dit programma als een methode met de naam Rommelzin binnen de klasse EenProgrammaSchrijvenInCSharp. Test uit door deze methode op te roepen binnen de Main methode.

voorbeeldinteractie(s)

Wat is je favoriete kleur?
> blauw
Wat is je favoriete eten?
> spaghetti
Wat is je favoriete auto?
> Toyota Aygo
Wat is je favoriete film?
> Robocop 2
Wat is je favoriete boek?
> The Gone-Away World
Je favoriete kleur is spaghetti. Je eet graag Toyota Aygo. Je lievelingsfilm is The Gone-Away World en je favoriete boek is Robocop 2.

Technische hulp

Programmaverloop

Per regel die getoond wordt op het scherm, maak je gebruik van Console.WriteLine. Per regel die je zelf intypt, maak je gebruik van Console.ReadLine. Zorg zelf voor de juiste ondersteunende code.

Testscenario's

  • Test uit met een héél lang stuk tekst (meer dan 200 tekens) voor je favoriete kleur.

  • Test uit met tekst met internationale karakters, bijvoorbeeld de ç.

  • Ga na wat er gebeurt als je een lege regel invoert, dus als je meteen op ENTER duwt wanneer gevraagd wordt om invoer.

Oefening: H1-gekleurde-rommelzin

Leerdoelen

  • de kleur van tekst in de console aanpassen

  • herhaling van de leerdoelen uit H1-rommelzin

Functionele analyse

Dit programma werkt net als H1-rommelzin, maar elke regel die aan de gebruiker wordt getoond, krijgt een andere kleur. De namen van de kleuren die je gebruikt (in deze volgorde) zijn:

  1. DarkGreen

  2. DarkRed

  3. DarkYellow

  4. Blue

  5. Cyan

  6. Red

Technische analyse

Organisatie van de code

Schrijf deze oefening als een nieuwe methode met de naam GekleurdeRommelzin in de klasse EenProgrammaSchrijvenInCSharp. Test uit door deze methode op te roepen binnen de Main methode.

voorbeeldinteractie(s)

Technische hulp

Programmaverloop

Voor elke regel die in kleur getoond wordt, wissel je de voorgrondkleur. Op de juiste plaatsen in de code herstel je de oorspronkelijke kleuren van de terminal.

Testscenario's

  • Test opnieuw uit met een kleur, maaltijd, auto, film en boek naar keuze.

MijnEersteProgramma runt in de console
De eerste regel behoort niet tot het programma. De rest moet er bij jou hetzelfde uitzien.