Loading...
Loading...
Loading...
Loading...
Loading...
Een enkel karakter (cijfer, letter, leesteken, etc.) als 'tekst' opslaan kan je doen door het char
-type te gebruiken. Zo kan je bijvoorbeeld een enkel karakter als volgt tonen:
Het is belangrijk dat je de apostrof ('
) niet vergeet voor en na het karakter dat je wenst op te slaan daar dit de literal voorstelling van char
-literals is (zie ook hier).
Je kan eender welk UNICODE-teken in een char
bewaren, namelijk letters, cijfers en speciale tekens zoals %
, $
, *
, #
, etc. Merk dus op dat volgende lijn: char eenGetal = '7';
weliswaar een getal als teken opslaat, maar dat intern de compiler deze variabele steeds als een character zal gebruiken. Als je dit cijfer zou willen gebruiken als effectief cijfer om wiskundige bewerkingen op uit te voeren, dan zal je dit eerst moeten converteren naar een getal (zie Convert en Casting).
Een string is een reeks van 0, 1 of meerdere char
-elementen, zoals je ook kan zien als je even met je muis boven een string keyword hovert in je code:
Merk op dat we bij een string literal gebruik maken van aanhalingstekens ("
) terwijl bij chars we een apostrof gebruiken ('
). Dit is de manier om een string van een char te onderscheiden.
Volgende code geeft dus drie keer het cijfer 1 onder elkaar op het scherm, maar de eerste keer behelst het een char (enkelvoudig teken), dan een een string (reeks van tekens) en dan een int (effectief getal):
De output van dit programma zal dan zijn:
Fout gebruik van strings en chars zal code geven die niet zal gecompileerd worden:
In de eerste toekenning proberen we dus een literal van het type string toe te kennen een variabele van het type char.
In de tweede toekenning proberen we een literal van het type char toe te kennen een variabele van het type string.
In de laatste toekenning proberen we een literal van het type char toe te kennen aan een variabele van het type int.
Volgende oefeningen zijn al iets stevigers. Ze gebruiken concepten die nog niet aan bod gekomen zijn in de cursus en je wordt niet verondersteld ze te kunnen maken aan het begin van het semester. Je kan ze wel bekijken als je eerder al geprogrammeerd hebt of wanneer je aan het studeren bent voor het examen.
gebruik van string interpolation
gebruik van System.IO
Je moet informatie over de harde schijven op je systeem weergeven.
console applicatie
Ook informatie over de harde schijven kan je verkrijgen (in bits). Dit vereist wel dat je bovenaan je programma volgende lijn bijschrijft: using System.IO
.
Vervolgens kan je in je programma schrijven:
De lijn met using
is om aan te geven dat we iets uit de System.IO
bibliotheek nodig hebben, namelijk DriveInfo
. Schrijven we dat niet dan moeten we in onze code DriveInfo aanroepen met z'n volledige path: System.IO.DriveInfo....
De 0 tussen rechte haakjes is de index van welke schijf je informatie wenst. 0 is de eerste harde schijf, 1 de tweede, enzovoort. (Ter info: dit zijn arrays, zie later)
Vraag aan de gebruiker het nummer van de harde schijf waar meer informatie over moet getoond worden.
Opgelet: sta toe dat de gebruiker 1 voor de eerste harde schijf mag gebruiken, 2 voor de tweede, enzovoort. Je zal dus in code nog manueel 1 moeten aftrekken van de invoer van de gebruiken. Bv:
wat gebeurt er wanneer je het datatype int zou wijzigen in string?
Hou het voorlopig op de cursus.
Deze bouwt voort op H2-weerstandsberekendaar-deel2. Kan je afhankelijk van de ringwaarde het getal in de tabel in de juiste kleur zetten conform de weerstandskleuren? (tip: je zal Write
en if
moeten leren gebruiken)
Je kan strings en variabelen samenvoegen tot een nieuwe string op verschillende manieren:
+-operator
$ string interpolation
Of de oude manier: String.Format()
In deze cursus prefereren we manier 2, de string interpolatie. Dit is de meest moderne aanpak.
We gaan van volgende informatie uit:
Stel dat je 2 variabelen hebt int age=13
en string name="Finkelstein"
.
We willen de inhoud van deze variabelen samenvoegen in een nieuwe string result
die zal bestaan uit de tekst:
Ik ben Finkelstein en ik ben 13 jaar oud.
Volgende 3 manieren tonen hoe je steeds tot voorgaande string zal komen.
Je kan string en variabelen eenvoudig bij elkaar 'optellen'. Ze worden dan achter elkaar geplakt als het ware.
Let er op dat je tussen de aanhalingsteken (binnen de strings) spaties zet indien je het volgende deel niet tegen het vorige stringstuk wilt 'plakken'.
In de oude dagen van C# gebruikten we String.Format()
(zie hieronder) om meerdere strings en variabelen samen te voegen tot één string. Nu kan dat met string interpolation waarbij we het $-teken gebruiken.
Door het $-teken VOOR de string te plaatsen geef je aan dat alle delen in de string die tussen accolades staan { } als code mogen beschouwd worden. Een voorbeeld maakt dit duidelijk:
In dit geval zal dus de inhoud van de variabele name
tussen de string op de plek waar nu {name}
staat geplaatst worden. Idem voor age
. Zoals je kan zien is dit veel meer leesbare code dan de eerste manier.
Je mag eender welke expressie tussen de accolades zetten bij string interpolation, denk maar aan:
Alle expressies tussen de accolades zullen eerst uitgevoerd worden voor ze tussen de string worden geplaatst. De uitvoer wordt nu dus: Ik ben Finkelstein en ik ben 17 jaar oud.
Eender welke expressie is toegelaten, dus je kan ook complexe berekeningen of zelfs andere methoden aanroepen:
Zowel bij manier string interpolation (manier 2) als de manier hierna kan je ook bepalen hoe de te tonen variabelen en expressies juist weergegeven moeten worden. Je geeft dit aan door na de expressie, binnen de accolades, een dubbelpunt te plaatsen gevolgd door de manier waarop moet geformatteerd worden:
Wil je bijvoorbeeld een kommagetal tonen met maar 2 cijfers na de komma dan schrijf je:
Nog enkele nuttige vormen:
D5: geheel getal bestaande uit 5 cijfers (123
wordt 00123
) (werkt enkel op gehele getallen!)
E2: wetenschappelijke notatie met 2 cijfers precisie (12000000
wordt 1,20E+007
)
C: geldbedrag (12,34
wordt € 12,34: teken van valuta afhankelijk van instellingen pc)
Alle format specifiers staan hier opgelijst.
String interpolatie met het $-teken is een nieuwe C# aanwinst. Je zal echter nog veel documentatie en online code tegenkomen die nog met String.Format
werkt (ook zijn er nog zaken waar het te prefereren is om String.Format
te gebruiken i.p.v. 1 van vorige manieren). Om die reden bespreken we dit nog in deze cursus.
String.Format
is een ingebouwde methode die string-interpolatie toe laat op een iets minder intuïtieve manier:
Het getal tussen de accolades geeft aan de hoeveelste parameter na de string hier in de plaats moet gezet worden (0= de eerste, 1= de tweede, enz).
Volgende code zal een ander resultaat geven:
Namelijk: Ik ben 13 en ik ben 13 jaar oud.
Wens je meer informatie over string.Format
, kijk dan hier.
gebruik van string interpolation
Oefening H1-maaltafels en H1-ruimte dienen we te herschrijven volgens de principes van string interpolation.
console applicatie
Zie oefening H1-maaltafels en H1-ruimte.
Pas string interpolatie mbv $
(manier 2) toe.
Zie oefening H1-maaltafels en H1-ruimte.
Hou het voorlopig op de cursus.
gebruik van string interpolation
gebruik van Environment
class
Maak een applicatie die de belangrijkste computer-informatie (geheugen, etc) aan de gebruiker toont.
console applicatie
Pas string interpolatie mbv $
(manier 2) toe.
De computerinformatie kan je verkrijgen mbv de Environment-klasse. Hier enkele voorbeelden (kijk zelf of er nog nuttige properties over je computer in staan en voorzie deze ook binnen jouw code):
WorkingSet geeft terug hoeveel geheugen het programma van windows toegewezen krijgt. Als je dus op 'run' klikt om je code te runnen dan zal dit programma geheugen krijgen en via WorkingSet kan het programma dus zelf zien hoeveel het krijgt. (wat een vreemde lange zin).
Zoals je ziet wordt het geheugen in bytes teruggegeven. Zorg ervoor dat het geheugen steeds in mega of gigabytes op het scherm wordt getoond.
Formatteer de informatie met behulp van de $-notatie zodat deze deftig getoond worden en de gebruiker snel de belangrijke informatie over z'n systeem te zien krijgt.
wat gebeurt er wanneer je het datatype string zou wijzigen in int?
Hou het voorlopig op de cursus.
gebruik van math class
Stel dat je in het labo een weerstand vastneemt en je kent de kleurcodes van de streepjes wel, maar niet hoe je die kunt omzetten naar de effectieve weerstandswaarde. In dit programma kunnen we de gebruiker helpen.
(Bron afbeelding: https://www.esdsite.nl)
console applicatie
Maak een programma dat de weerstandwaarde berekent gebaseerd op:
Ring 1: die de tientallen voorstelt
Ring 2: die de eenheden voorstel
Ring 3: die de exponent (10 tot de macht) voorstelt. (tip:Math.Pow(10,ring3
))
Gebruik drie variabelen van het type int
. (we veronderstellen dus dat de gebruiker de kleurcode heeft omgezet naar een getal en dat toewijst aan de variabele)
Test dat je "formule/berekening" klopt om gebaseerd op 2 (of 3) ringen de weerstandswaarde te berekenen.
wat gebeurt er wanneer je een hoger getal dan 9 zou invoeren?
Hou het voorlopig op de cursus.
gebruik van UNICODE
Zie deel 1.
Zie deel 1 en plaats het geheel in een mooie UNICODE-tabel.
Hier enkele nuttige tekens:
of:
wat gebeurt er wanneer je een waarde van circle 1, 2 of 3 uit meer dan twee cijfers bestaat?
Hou het voorlopig op de cursus.
gebruik van Process.Start()
verwerken van uitvoer
Je kan de output van een Process.Start()
programma naar je console scherm sturen. Dit vereist wat meer code. Volgende voorbeeld zal de output van het commando ipconfig /all
op het scherm tonen:
Onder macOS heb je een ander commando nodig. Gebruik daar "ifconfig"
voor het (uitvoerbaar) bestand en geef een lege string mee voor de argumenten.
Maak enkele kleine C# programma's die bepaalde shell-commando's zullen uitvoeren en die de uitvoer in hoofdletters weergeven in plaats van in de gewone vorm. Enkele nuttige shell-commando's in de netwerk-sfeer zijn bijvoorbeeld:
Probeer van bovenstaande programma's al die, die compatibel zijn met je besturingssysteem.
Hou het voorlopig op de cursus.
Niets is zo leuk als de vreemdste tekens op het scherm tonen. In oude console-games werden deze tekens vaak gebruikt om complexe tekeningen op het scherm te tonen: om je filmpjes nog cooler te maken leggen we daarom uit hoe je dit kan doen, gebruikmakende van je kennis over converteren.
Zonder een uitleg te geven over het verschil tussen ASCII en Unicode is het vooral belangrijk te weten dat je best met Unicode werkt.
Zoek het teken(s) dat je nodig hebt in een Unicode-tabel (deze is handig)
Plaats bovenaan je Main: Console.OutputEncoding = System.Text.Encoding.UTF8;
Je kan nu op 2 manieren dit teken in console plaatsen
Kopieer het karakter zelf en plaats het in je code waar je het nodig hebt, bijvoorbeeld:
Noteer de hexadecimale code van het karakter dat in de tabel staat.
In dit geval is de code 0x02e7.
Om dit teken te tonen schrijf je dan:
In C# schrijf je hexadecimale getallen als volgt als je ze rechstreeks in een string wilt plaatsen: \u02e7
Wil je dus bovenstaande teken schrijven dan kan dan ook als volgt:
Soms zou je multiline ASCII-art willen tonen in je C# applicatie. Dit kan je eenvoudig oplossen door gebruik te maken van het @
teken voor een string.
Stel dat je een toffe titel of tekening via een van volgende sites hebt gemaakt:
Je kan het resultaat eenvoudig naar je klembord kopiëren en vervolgens in je C#-code integraal copy pasten als literal voor een string
op voorwaarde dat je het laat voorafgaan door @"
en uiteraard eindigt met ";
.
Bijvoorbeeld:
Gebruik $-string interpolatie om de informatie in de tabel te tonen zodat je volgende uitvoer kunt genereren: