[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 H7-VoidOperations
  • Oefening: H7-ReturnOperations
  • Oefening H7-EmailadresGenerator
  • H7-Triangle
Export as PDF
  1. Semester 1: Programming Principles
  2. H7: Methoden

Oefeningen

Oefeningen

Al deze oefeningen schrijf je in een klasse Methodes.

Oefening H7-VoidOperations

Leerdoelen

  • Methodes definiëren met parameters

  • Oproepen van de methodes

Functionele analyse

Je stelt een aantal typische berekeningen voor met methodes.

Technische analyse

Voor deze oefening schrijf je meerdere methodes. Je plaatst er slechts één in je keuzemenu, namelijk VoidOperations. Deze voert alle andere methodes van deze oefening één voor één uit.

Enkel VoidOperations mag Console.ReadLine statements bevatten. De andere methodes tonen hun resultaat op het scherm door middel van Console.WriteLine statements in de methode zelf die het resultaat bepaalt. (Met andere woorden, alle methodes zijn void.)

De andere methodes zijn:

  • CalculateRadius die de straal van een cirkel kan berekenen waarvan je de diameter meegeeft (de diameter geef je mee als argument). De straal is de helft van de diameter.

  • Idem voor CalculateCircumference en CalculateArea . De omtrek is de diameter maal het getal pi, dat je voorstelt als Math.Pi. De oppervlakte is straal maal straal maal pi.

  • Methode Maximum die het grootste van 2 getallen teruggeeft (beide getallen geef je mee als argument).

  • Methode IsEven die toont of een getal even of oneven is.

  • Methode ShowOddNumbers die alle oneven getallen van 1 tot n toont waarbij n als argument wordt meegegeven.

Voorbeeldinteractie

Oefening: H7-ReturnOperations

Leerdoelen

  • Methodes definiëren met parameters en returnwaarde

  • Oproepen van de methodes

  • Gebruiken van returnwaarden

Functionele analyse

Je stelt een aantal typische berekeningen voor met methodes die geschikt zijn voor gebruik in andere programma's.

Technische analyse

Voor deze oefening schrijf je meerdere methodes. Je plaatst er slechts één in je keuzemenu, namelijk ReturnOperations. Deze voert alle andere methodes van deze oefening één voor één uit.

Enkel ReturnOperationsmag Console.ReadLine of Console.WriteLine statements bevatten. De andere methodes berekenen hun resultaat, zonder het te tonen op het scherm. Met andere woorden, hun return type is niet void.

De andere methodes zijn:

  • CalculateRadiusWithReturn die de straal van een cirkel kan berekenen waarvan je de diameter meegeeft (de diameter geef je mee als argument). De straal is de helft van de diameter. Voor je deze toont, rond je ze in af tot één cijfer na de komma met Math.Round(reedsBerekendeStraal,1).

  • Idem voor CalculateCircumferenceWithReturn en CalculateAreaWithReturn . Ook deze waarden moet je, nadat ze uitgerekend zijn, afronden tot 1 cijfer na de komma.

  • Methode MaximumReturn die het grootste van 2 getallen teruggeeft (beide getallen geef je mee als argument).

  • Methode IsEvenWithReturn die bepaalt of een getal even of oneven is. De returnwaarde vertelt dus of iets waar of niet waar is.

  • Methode DetermineEvnNumbersWithReturn. Deze geeft als antwoord een List van alle even getallen tot n. toont deze getallen dan, gescheiden door een komma.

Voorbeeldinteractie

Zoals boven, met de vermelde aanpassingen (afronding tot 1 cijfer na de komma en getallen gescheiden door ,)

Oefening H7-EmailadresGenerator

Leerdoelen

  • Methodes definiëren met return type en parameters

  • Oproepen van de methodes

Functionele analyse

Schrijf een programma dat op basis van je voornaam, naam en het feit of je al dan niet een student bent een AP e-mailadres genereert. Het e-mailadres moet uit allemaal kleine letters bestaan en moet een geldig e-mailadres zijn.

Je mag geen String methodes gebruiken maar je schrijft je eigen methodes. Als aanzet is de methode StringToLower al uitgewerkt.

Uitbreiding: kijk of voor al je lectoren en medestudenten het gegenereerde e-mailadres geldig is. Pas eventueel je code aan indien niet.

Technische analyse

Je kan eventueel volgende flowchart gebruiken:

Voorbeeldinteractie

H7-Triangle

Functionele analyse

We schrijven een simpel tekenprogramma, dat driehoeken van een bepaalde afmeting, met een bepaald patroon kan tekenen.

Technische analyse

Schrijf een methode DrawTriangle. Deze methode verwacht twee zaken: een karakter om het patroon voor te stellen en de hoogte van de driehoek. Ze roept zelf meermaals een andere methode op, DrawLine, die één regel van de driehoek tekent. DrawLine toont niets op het scherm via Console.WriteLine!

Voorbeeldinteractie

Hoe hoog is de driehoek?
> 4
Welk karakter gebruiken we als patroon?
> #
#
##
###
####
Hoe hoog is de driehoek?
> 3
Welk karakter gebruiken we als patroon?
> .
.
..
...
PreviousGeavanceerde methodenNextIntermezzo: TextCell

Last updated 6 months ago

3KB
H07-EmailGeneratorTemplate (2).fprg