Software Development fundamentals Les 6 - Operators
inhoudsopgave Problemen oplossen Stelling Vergelijkingsoperators Rekenoperators Prefix en postfix Wiskunde Terug naar het beginprobleem Aan de slag
* * * * * * * * * * * * * * * * * * * * Problemen oplossen Hoe teken je in C# een vierkant van sterretjes op basis van een ingevoerd getal? * * * * * * * * * * * * * * * * * * * * Welke manier heeft jouw voorkeur en waarom?
vraag Stelling: Je moet goed zijn in rekenen en wiskunde, om een goede softwareontwikkelaar te zijn. Waar of niet waar? Welke manier heeft jouw voorkeur en waarom?
vraag I think it depends on what type of programming you want to do. As far as being a programmer in the business world goes, I would say that the answer is no. You can become a great programmer without knowing advanced mathematics. When you do end up having to deal with math, the formulas are usually defined in the business requirements so it only becomes a matter of implementing them in code. On the flip side, If you want to become a low-level programmer or say create 3D graphics engines, mathematics will play a huge role. Programming != maths. It doesn't even "feel" like maths, for me (and I enjoyed maths, despite not doing so well towards the end of my formal studies in it). Many skills that you might use in maths are useful, necessary even in programming, but many programmers teach themselves for the most part. Not liking maths in school has pretty much zero bearing on your ability or enjoyment of programming. Welke manier heeft jouw voorkeur en waarom? http://programmers.stackexchange.com/questions/89158/do-you-have-to-be-good-at-math-to-be-a-good-programmer
vergelijkingsoperators Operators die je gebruikt om te vergelijken: == != < > <= >= Operators die je gebruikt om condities te combineren: && || Hier kan je oneindig uitgebreide condities mee bouwen. Voorbeeld: if((invoer != null && invoer == “abcd”) || toegang == “openbaar” && accessLevel >= 4) { // doe iets Welke manier heeft jouw voorkeur en waarom?
rekenen Voor developers
operators Operators die je gebruikt om berekeningen te doen. + - * / % + - * / % double a = 21; double c = 5; double result = a / c; // 4,2 result = a + c; // 26 result = a % c; // 1 result = a * c; // 105 result = a – c; // 16 double a = 11; double c = 3; double result = a / c; result = a + c; result = a % c; result = a * c; result = a – c;
operators Operators die je gebruikt om berekeningen te doen. + - * / % + - * / % int a = 21; int c = 5; int result = a / c; // 4 result = a % c; // 1 Kende je een van deze operators nog niet? Maak er dan een aantekening van! Bij ints wordt alles achter de komma gewoon afgekapt en niet afgerond! int a = 11; int c = 3; int result = a / c; result = a % c;
operators Je weet vast wel wat dit doet: int getal = 20; getal = getal + 30; // wat is de uitkomst? Wat zou dit doen? getal += 30; Zo bestaan ook *= /= %= -= getal *= 20; is hetzelfde als getal = getal * 20; 50
meer operators !x – logical negation for bool variables. True becomes false and vice versa. ++x – prefix increment. Returns the value of x after updating the storage location with the value of x that is one greater (typically adds the integer 1). --x – prefix decrement. Returns the value of x after updating the storage location with the value of x that is one less (typically adds the integer 1). x++ – postfix increment. Returns the value of x and then updates the storage location with the value of x that is one greater (typically adds the integer 1). x-- – postfix decrement. Returns the value of x and then updates the storage location with the value of x that is one less (typically subtracts the integer 1). (T)x – type casting. https://msdn.microsoft.com/en-us/library/6a71f45d.aspx
Prefix en postfix Wat is het verschil tussen ++x en x++? int getal = 20; getal++; // nu zit er 21 in getal ++getal; // dit kan ook, nu zit er 22 in int getal2 = getal++; // wat zit er nu in getal2?...... int getal2 = ++getal; // en nu?..... ++x doet meteen +1, x++ doet dit pas nadat de huidige regel code is uitgevoerd. 22 24
Nog meer operators Null-coalescing operator: x ?? y – returns x if it is non-null; otherwise, returns y. Conditional operator / ternary operator: t ? x : y – if test t is true, then evaluate and return x; otherwise, evaluate and return y. string result = getal == 1 ? “Hee hallo” : “Getal is niet 1”; Er zijn veel operators beschikbaar in C#, bekijk ze op: https://msdn.microsoft.com/en-us/library/6a71f45d.aspx
wiskunde Voor wetenschappelijk rekenen is er de System.Math class. Deze zit vol met methodes voor veel voorkomende berekeningen, zoals Math.Pow(), Math.Cos(), Math.Round(), Math.Sqrt()
* * * * * * * * * * * * * * * * * * * * Problemen oplossen Hoe teken je in C# een vierkant van sterretjes op basis van een ingevoerd getal? Bedenk een oplossing met één loop! * * * * * * * * * * * * * * * * * * * * Welke manier heeft jouw voorkeur en waarom?
Bubbelbloep Een oefenopdracht voor tijdens sollicitatiegesprekken die is bedacht om de 99,5% van programmeurs weg te filteren die eigenlijk gewoon niet kan programmeren*. De opdracht is als volgt. Schrijf een programma dat de getallen 1 tot 100 onder elkaar toont. Maar, voor getallen deelbaar door drie toon je ‘Bubbel’ in plaats van het getal. Voor getallen deelbaar door vijf toon je ‘Bloep’. Voor getallen deelbaar door drie en vijf toon je ‘BubbelBloep’. Werk de opdracht uit als algoritme (flowchart of pseudocode) en daarna als C# console application. Zet de opdracht bij je huiswerk op OneDrive!
Afsluiting Zijn er vragen?
Aan de slag De opdrachten staan online