Les(sen) uit deze oefening: Het was al even geleden, maar het werd ook nog eens tijd om te oefenen hoe je de kleur van je tekst kunt veranderen.
Belangrijk: merk op dat we enkel steeds de bovengrens testen in de if. Dit verkleint de kans op fouten. Zie je bijvoorbeeld de bug in deze code?
Inderdaad: bmi > 18.5 moest bmi >= 18.5 want bovenstaande code zou dan nooit "Normaal gewicht" tonen indien de gebruiker exact 18.5 als BMI heeft. Daarom dat we dus de ondergrens niet testen: aangezien we niet in de vorige if gingen weten we automatisch dat bmi dan wél groter is dan de waarde die we testen.
Op het einde eindigen we niét met else if(bmi>=40) maar met een else, daar we al weten dat bmi groter of gelijk is aan 40 als hij niet in de vorige if ging.
Voeg volgende code toe aan het bestaande BMI programma:
Console.WriteLine("Hoeveel schoenen koopt de klant?");
int aantal = Convert.ToInt32(Console.ReadLine());
int kortingBoven = 9;
int prijs = 0;
if (aantal <= kortingBoven)
{
prijs = aantal * 20;
}
else
{
prijs = kortingBoven * 20;
prijs += (aantal - kortingBoven) * 10;
}
Console.WriteLine($"Prijs is {prijs}");
Console.WriteLine("Hoeveel schoenen koopt de klant?");
int aantal = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Boven hoeveel schoenen wordt de korting gegeven?");
int kortingBoven = Convert.ToInt32(Console.ReadLine());
int prijs = 0;
if (aantal <= kortingBoven)
{
prijs = aantal * 20;
}
else
{
prijs = kortingBoven * 20;
prijs += (aantal - kortingBoven) * 10;
}
Console.WriteLine($"Prijs is {prijs}");
double spanning, stroom, weerstand;
Console.WriteLine("Wat wil je berekenen? spanning, weerstand of stroomsterkte?");
string userchoice = Console.ReadLine();
if(userchoice=="spanning")
{
Console.WriteLine("Geef me dan de weerstandswaarde:");
weerstand = double.Parse(Console.ReadLine());
Console.WriteLine("Geef me dan de stroomsterkte:");
stroom = double.Parse(Console.ReadLine());
Console.WriteLine($"De spanning bedraagt dan {Math.Round(stroom*weerstand,2)} volt");
}
else if (userchoice == "weerstand")
{
Console.WriteLine("Geef me dan de spanning:");
spanning = double.Parse(Console.ReadLine());
Console.WriteLine("Geef me dan de stroomsterkte:");
stroom = double.Parse(Console.ReadLine());
Console.WriteLine($"De weerstand bedraagt dan {Math.Round(spanning /stroom,2)} Ohm");
}
else if (userchoice == "stroomsterkte")
{
Console.WriteLine("Geef me dan de spanning:");
spanning = double.Parse(Console.ReadLine());
Console.WriteLine("Geef me dan de weerstandswaarde:");
weerstand = double.Parse(Console.ReadLine());
Console.WriteLine($"De stroomsterkte bedraagt dan {Math.Round(spanning / weerstand,2)} Ampére");
}
else
{
Console.WriteLine("Verkeerde keuze. Byebye");
}
//voorbeeldrekenignummer 000 1459325 57
Console.WriteLine("Geef eerste 3 cijfers");
long deel1= long.Parse(Console.ReadLine());
Console.WriteLine("Geef de volgende 7 cijfers");
long deel2= long.Parse(Console.ReadLine());
Console.WriteLine("Geef de laatse 2 cijfers");
int checksum= int.Parse(Console.ReadLine());
int controle=(int)((deel1*Math.Pow(10,7) + deel2)%97);
if(controle == checksum)
{
Console.WriteLine("Geldige rekening");
}
else
{
Console.WriteLine("Niet geldige rekening");
}
Random delphi= new Random();
Console.WriteLine("Ben je man of vrouw (m/v)?");
string geslacht = Console.ReadLine();
Console.WriteLine("Hoe oud ben je nu?");
int leeftijd = int.Parse(Console.ReadLine());
const int VROUWMAX = 151;
const int MANMAX = 121;
int max = 0;
if(geslacht=="m")
{
max = MANMAX - leeftijd;
}
else
{
max = VROUWMAX- leeftijd;
}
Console.WriteLine($"Je zal nog {delphi.Next(5,max)} jaar leven");
Random rng = new Random();
int geworpen = rng.Next(1, 7);
Console.WriteLine("Welk getal heb ik geworpen?");
int invoer = int.Parse(Console.ReadLine());
if(invoer== geworpen)
{
Console.WriteLine("Proficiat!");
}
else
{
Console.WriteLine($"You lose. Ik wierp {geworpen}.");
}
Random rng = new Random();
int geworpen = rng.Next(1, 7);
Console.WriteLine("Welk getal heb ik geworpen?");
int invoer = int.Parse(Console.ReadLine());
if (invoer == geworpen)
{
geworpen = rng.Next(1, 7);
Console.WriteLine("Welk getal heb ik nu geworpen?");
invoer = int.Parse(Console.ReadLine());
if (invoer == geworpen)
{
geworpen = rng.Next(1, 7);
Console.WriteLine("Welk getal heb ik nu geworpen?");
invoer = int.Parse(Console.ReadLine());
if (invoer == geworpen)
{
Console.WriteLine("Proficat!");
}
else
{
Console.WriteLine($"You lose.");
}
}
else
{
Console.WriteLine($"You lose.");
}
}
else
{
Console.WriteLine($"You lose.");
}
enum Schaakstuk
{
Pion,
Toren,
Loper,
Paard,
Koningin,
Koning
}
Console.WriteLine("Welk stuk is stuk1? (Pion, Toren, Loper, Paard, Koningin, Koning)");
Schaakstuk stuk1 = Enum.Parse<Schaakstuk>(Console.ReadLine());
Console.WriteLine("Welk stuk is stuk2? (Pion, Toren, Loper, Paard, Koningin, Koning)");
Schaakstuk stuk2 = Enum.Parse<Schaakstuk>(Console.ReadLine());
// Controleer of beide stukken hetzelfde zijn
if (stuk1 == stuk2)
{
Console.WriteLine("Beide zijn hetzelfde.");
switch (stuk1)
{
case Schaakstuk.Pion:
Console.WriteLine("Een pion kan rechtdoor bewegen, 1 of 2 vakjes.");
break;
case Schaakstuk.Toren:
Console.WriteLine("Een toren kan enkel horizontaal of verticaal bewegen.");
break;
case Schaakstuk.Loper:
Console.WriteLine("Een loper kan enkel schuin bewegen.");
break;
case Schaakstuk.Paard:
Console.WriteLine("Een paard beweegt in een 'L'-vorm.");
break;
case Schaakstuk.Koningin:
Console.WriteLine("Een koningin kan in alle richtingen bewegen.");
break;
case Schaakstuk.Koning:
Console.WriteLine("Een koning kan één vakje in elke richting bewegen.");
break;
default:
Console.WriteLine("Onbekend schaakstuk.");
break;
}
}
else
{
// Toon beweging voor stuk 1
Console.WriteLine("Stuk1:");
switch (stuk1)
{
case Schaakstuk.Pion:
Console.WriteLine("Een pion kan rechtdoor bewegen, 1 of 2 vakjes.");
break;
case Schaakstuk.Toren:
Console.WriteLine("Een toren kan enkel horizontaal of verticaal bewegen.");
break;
case Schaakstuk.Loper:
Console.WriteLine("Een loper kan enkel schuin bewegen.");
break;
case Schaakstuk.Paard:
Console.WriteLine("Een paard beweegt in een 'L'-vorm.");
break;
case Schaakstuk.Koningin:
Console.WriteLine("Een koningin kan in alle richtingen bewegen.");
break;
case Schaakstuk.Koning:
Console.WriteLine("Een koning kan één vakje in elke richting bewegen.");
break;
default:
Console.WriteLine("Onbekend schaakstuk.");
break;
}
// Toon beweging voor stuk 2
Console.WriteLine("Stuk2:");
switch (stuk2)
{
case Schaakstuk.Pion:
Console.WriteLine("Een pion kan rechtdoor bewegen, 1 of 2 vakjes.");
break;
case Schaakstuk.Toren:
Console.WriteLine("Een toren kan enkel horizontaal of verticaal bewegen.");
break;
case Schaakstuk.Loper:
Console.WriteLine("Een loper kan enkel schuin bewegen.");
break;
case Schaakstuk.Paard:
Console.WriteLine("Een paard beweegt in een 'L'-vorm.");
break;
case Schaakstuk.Koningin:
Console.WriteLine("Een koningin kan in alle richtingen bewegen.");
break;
case Schaakstuk.Koning:
Console.WriteLine("Een koning kan één vakje in elke richting bewegen.");
break;
default:
Console.WriteLine("Onbekend schaakstuk.");
break;
}
}
int juist = 0;
int fout = 0;
string keuze;
Console.WriteLine("Wie is de auteur van Zie Scherp Scherper?");
Console.WriteLine("a.Jeff Bezos\nb.Tim Dams\nc.Bill Gates\nd.Steve Jobs");
keuze = Console.ReadLine();
switch(keuze)
{
case "a":
case "c":
case "d":
fout++;
Console.WriteLine("Fout!");
break;
case "b":
juist++;
Console.WriteLine("Juist!");
break;
}
Console.WriteLine("Druk enter om naar volgende vraag te gaan.");
Console.ReadLine();
Console.Clear();
Console.WriteLine("Wie is de koning van Belgie?");
Console.WriteLine("a.Filip\nb.Tim Dams\nc.Albert\nd.De Croo");
keuze = Console.ReadLine();
switch (keuze)
{
case "b":
case "c":
case "d":
fout++;
Console.WriteLine("Fout!");
break;
case "a":
juist++;
Console.WriteLine("Juist!");
break;
}
Console.WriteLine("Druk enter om naar volgende vraag te gaan.");
Console.ReadLine();
Console.Clear();
Console.WriteLine("Sinds wanneer is Belgie onafhankelijk?");
Console.WriteLine("a.1830\nb.1831\nc.1832\nd.Het is nog steeds niet onafhankelijk.");
keuze = Console.ReadLine();
switch (keuze)
{
case "a":
case "c":
case "d":
fout++;
Console.WriteLine("Fout!");
break;
case "b":
juist++;
Console.WriteLine("Juist!");
break;
}
Console.WriteLine("Druk enter om naar je finale score te gaan.");
Console.ReadLine();
Console.Clear();
int eindscore = juist * 2 - fout;
Console.WriteLine($"Je eindscore bedraagt:{eindscore}");
Console.WriteLine("Geef jaartal?");
int jaartal = int.Parse(Console.ReadLine());
if(jaartal%4 ==0 && (jaartal%100 !=0 || jaartal%400==0))
{
Console.WriteLine("Dat is een schrikkeljaar");
}
else
Console.WriteLine("Dat is geen schrikkeljaar");
Console.WriteLine("Geef de 3 ringkleuren na elkaar, telkens met een enter:");
string ring1 = Console.ReadLine();
string ring2 = Console.ReadLine();
string ring3 = Console.ReadLine();
double resultaat = 0;
switch (ring1)
{
case "zwart": resultaat = 0; break;
case "bruin": resultaat = 10; break;
case "rood": resultaat = 20; break;
case "oranje": resultaat = 30; break;
case "geel": resultaat = 40; break;
case "groen": resultaat = 50; break;
case "blauw": resultaat = 60; break;
case "paars": resultaat = 70; break;
case "grijs": resultaat = 80; break;
case "wit": resultaat = 90; break;
}
switch (ring2)
{
case "zwart": resultaat += 0; break;
case "bruin": resultaat += 1; break;
case "rood": resultaat += 2; break;
case "oranje": resultaat += 3; break;
case "geel": resultaat += 4; break;
case "groen": resultaat += 5; break;
case "blauw": resultaat += 6; break;
case "paars": resultaat += 7; break;
case "grijs": resultaat += 8; break;
case "wit": resultaat += 9; break;
}
switch (ring3)
{
case "zwart": break;
case "bruin": resultaat *= 10; break;
case "rood": resultaat *= Math.Pow(10,2); break;
case "oranje": resultaat *= Math.Pow(10, 3); break;
case "geel": resultaat *= Math.Pow(10, 4); break;
case "groen": resultaat *= Math.Pow(10, 5); break;
case "blauw": resultaat *= Math.Pow(10, 6); break;
case "paars": resultaat *= Math.Pow(10, 7); break;
case "grijs": resultaat *= Math.Pow(10, 8); break;
case "wit": resultaat *= Math.Pow(10, 9); break;
}
Console.WriteLine($"Deze weerstand heeft een waarde van {resultaat} Ohm");
enum Partijen { Groen, VlaamsBelang, Spa, CDenV, Blanco, PVDA, NVA, OpenVld, Onbekend };
static void Main(string[] args)
{
Partijen stemProfiel = Partijen.Onbekend;
Console.WriteLine("Werk je veel (j/n)?");
string werkVraag = Console.ReadLine();
if (werkVraag == "nee")
{
Console.WriteLine("Eet je vaak quinoa (j/n)?");
string eetVraag = Console.ReadLine();
if (eetVraag == "nee")
{
Console.WriteLine("Krijg je vaak de schuld van alles (j/n)?");
string schuldVraag = Console.ReadLine();
if (eetVraag == "nee")
{
Console.WriteLine("Geloof je nog in Sinterklaar (j/n)?");
string sintVraag = Console.ReadLine();
if (sintVraag == "nee")
{
stemProfiel = Partijen.Blanco;
}
else
{
stemProfiel = Partijen.PVDA;
}
}
else
{
stemProfiel = Partijen.Spa;
}
}
else
{
stemProfiel = Partijen.Groen;
}
}
else
{
Console.WriteLine("Koop je soms bruin brood (j/n)?");
string broodVraag = Console.ReadLine();
if (broodVraag == "nee")
{
stemProfiel = Partijen.VlaamsBelang;
}
else
{
Console.WriteLine("Ben je een seut (j/n)?");
string seutVraag = Console.ReadLine();
if (seutVraag == "nee")
{
Console.WriteLine("Heb je vrienden (j/n)?");
string vriendVraag = Console.ReadLine();
if (vriendVraag == "nee")
{
stemProfiel = Partijen.NVA;
}
else
{
Console.WriteLine("Staat jouw wagen, huis,...op naam van je ouders? (j/n)?");
string oudersVraag = Console.ReadLine();
if (oudersVraag == "nee")
{
stemProfiel = Partijen.Blanco;
}
else
{
stemProfiel = Partijen.OpenVld;
}
}
}
else
{
stemProfiel = Partijen.CDenV;
}
}
}
Console.WriteLine($"Je stemt best op {stemProfiel}");
}
Console.WriteLine("Geef een maandnummer (1 tot 12)");
int maand = Convert.ToInt32(Console.ReadLine());
Seizoenen huidigSeizoen = Seizoenen.Onbekend;
switch(maand)
{
case 1:
case 2:
case 3:
huidigSeizoen = Seizoenen.Winter;
break;
case 4:
case 5:
case 6:
huidigSeizoen = Seizoenen.Lente;
break;
case 7:
case 8:
case 9:
huidigSeizoen = Seizoenen.Zomer;
break;
case 10:
case 11:
case 12:
huidigSeizoen = Seizoenen.Herfst;
break;
default:
huidigSeizoen = Seizoenen.Onbekend;
break;
}
if(huidigSeizoen== Seizoenen.Winter || huidigSeizoen== Seizoenen.Herfst)
Console.WriteLine("Dat is een koud seizoen!");
else if(huidigSeizoen == Seizoenen.Zomer || huidigSeizoen == Seizoenen.Lente)
Console.WriteLine( "Dat is een warm seizoen!");
else //Seizoen.Onbekend
Console.WriteLine("Dat is geen seizoen!");
Console.WriteLine("Voer de status van het verkeerslicht in (Groen, Oranje, Rood):");
Verkeerslicht licht= Enum.Parse<Verkeerslicht>(Console.ReadLine());
switch (licht)
{
case Verkeerslicht.Groen:
Console.WriteLine("Je mag doorrijden.");
break;
case Verkeerslicht.Oranje:
Console.WriteLine("Maak je klaar om te stoppen.");
break;
case Verkeerslicht.Rood:
Console.WriteLine("Stop! Wacht tot het licht groen wordt.");
break;
}
const int K = 10;
Random rng = new Random();
Console.WriteLine("Rating speler A?");
double ra = double.Parse(Console.ReadLine());
if (ra < 0)
{
Console.BackgroundColor = ConsoleColor.Red;
ra = rng.Next(500, 3001);
Console.WriteLine($"Negatieve rating mag niet. Ik pas deze aan naar random getal, namelijk {ra}.");
Console.ResetColor();
}
Console.WriteLine("Rating speler B?");
double rb = double.Parse(Console.ReadLine());
if (rb < 0)
{
Console.BackgroundColor = ConsoleColor.Red;
rb = rng.Next(500, 3001);
Console.WriteLine($"Negatieve rating mag niet. Ik pas deze aan naar random getal, namelijk {rb}.");
Console.ResetColor();
}
double ea = 1 / (1 + Math.Pow(10, (rb - ra) / 400.0));
double eb = 1 / (1 + Math.Pow(10, (ra - rb) / 400.0));
Console.WriteLine("Wie is er gewonnen? A, B of D (draw)");
string whowon = Console.ReadLine();
double puntA = 0;
double puntB = 0;
if (whowon == "A")
{
puntA = 1;
}
else if (whowon == "B")
{
puntB = 1;
}
else if (whowon == "D")
{
puntA = 0.5;
puntB = 0.5;
}
else
{
puntA = 1;
Console.WriteLine("Onbekende waarde. Ik laat A winnen.");
}
double ranew = ra + K * (puntA - ea);
double rbnew = rb + K * (puntB - eb);
Console.WriteLine($"Nieuwe rating van A:{Math.Round(ranew, 0)}");
Console.WriteLine($"Nieuwe rating van B:{Math.Round(rbnew, 0)}");