Oefeningen

Inleiding

Al deze oefeningen maak je als statische methoden van een klasse GevorderdeTekstverwerking. Je kan elk van deze methoden uitvoeren via een keuzemenu, zoals bij vorige hoofdstukken.

H10-Som-van-getallen

Leerdoelen

  • Werken met .Split en .Join
  • Itereren over array

Functionele analyse

Je vraagt de gebruiker een aantal getallen gescheiden door ';' in te geven. je laat vervolgens de som van deze getallen zien.

Technische analyse

Schrijf in de klasse GevorderdeTekstverwerkingeen methode SomVanGetallen. Deze vraagt de gebruiker een aantal getallen te geven gescheiden door een ';'. Je leest de invoer in, splitst de invoer in getallen, maakt de som en laat die zien. Let op, het aantal getallen mag de gebruiker zelf bepalen.

Voorbeeldinteractie

H10-Centraal-Aligneren-Tekst

Leerdoelen

  • Formateren van tekst
  • String interpolatie
  • Methode oproep

Functionele analyse

Je vraagt de gebruiker een tekst in te geven. Vervolgens vraag je de gewenst breedte van de tekst. Je laat de tekst dan centraal gealigneerd aan de gebruiker zien.

Technische analyse

Schrijf in de klasse GevorderdeTekstverwerkingeen methode CentraalAlignerenTekst. Deze vraagt de gebruiker een tekst in te geven en een gewenste lengte (minimaal de lengte van de tekst - controle!). Maak een tweede methode CentraalAligneren Vervolgens wordt de tekst centraal gealigneerd getoond aan de gebruiker. De gebruiker kan het padding karakter ook kiezen.

Voorbeeldinteractie

H10-KerstinkopenNetjes

Leerdoelen

  • stringformattering
  • string methodes
  • gebruik van karakters

Functionele analyse

De eerdere oefening Kerstinkopen kan wat mooier gepresenteerd worden. Ze zou ook ingezet moeten kunnen worden in regio's waar de euro niet gebruikt wordt.

Technische analyse

Maak een kopie van Kerstinkopen in deze klasse.
Pas door middel van stringformattering en string methodes de code aan, zodat:
  • Een scheidingslijn getekend wordt onder "Info over je aankopen", die net breed genoeg is. Als we later deze hoofding veranderen (bijvoorbeeld naar "Informatie over je aankopen") moet de lijn mee groeien of krimpen.
  • Alle bedragen netjes onder elkaar staan in één kolom. Hiervoor mag je veronderstellen dat de berichten op de linkerkant maximum 25 karakters in beslag zullen nemen.
  • Het symbool voor de munteenheid van de gebruiker vanzelf gebruikt wordt. Dit kan dus € zijn maar ook $ of £ of iets anders.
Als je het symbool voor de munteenheid niet te zien krijgt in de terminal van Visual Studio, ligt dat niet aan jouw code. Voer je code dan uit via het commando dotnet run in Git bash.

Voorbeeldinteractie

Deze voorbeeldinteractie gebruikt de List versie van Kerstinkopen. Maak de oefening met de array versie. Het gaat hem hier over de weergave onderaan en de aanpassingen daar zijn dezelfde voor beide versies.

H10-TextCellPersistent

Leerdoelen

  • Gebruik van input en output van tekstbestanden

Functionele analyse

We willen onze gemaakte TextCells ook kunnen opslaan en weer openen.

Technische analyse

Maak in je oefeningen map een nieuwe map aan TextCell. In deze map zullen de TextCell bestanden bewaard worden. Je kan in je applicatie ook een relatief pad opgeven (dus niet c:\...). Dit relatief pad gaat vertrekkende van de map waar je nu op werkt een map zoeken (dit is wat kort door de bocht, de werkelijkheid is een stuk ingewikkelder maar voor nu volstaat dit). Het relatieve pad dat wij gebruiken is "./TextCell/filenaam.aptx).
Kopieer het bestand TextCell.cs naar TextCellPersistent.cs. Maak gerbuik van de in de theorie aangehaalde methodes File.ReadAllLines en File.WriteAllLines. Test bij opslaan van het bestand of het bestand reeds bestaat en bij laden van het bestand of het bestand sowieso bestaat.

Voorbeeldinteractie

H10-Pixels-Persistent

Functionele analyse

We wensen de kunstwerken die we in Pixels tekenen op te slaan en in te laden.

Technische analyse

Kopieer de code voor Pixels naar deze klasse.
Zorg ervoor dat je twee extra opties hebt in je tekenprogramma. Om een tekening op te slaan, moet je elke ConsoleColor casten naar een int. Dan kan je één rij pixels opslaan als één rij getallen, gescheiden door puntkomma. Om een tekening in te laden, doe je het omgekeerde.

Voorbeeldinteractie