Software Development fundamentals Les 1 - Algoritmes
inhoudsopgave Logisch nadenken (even ons logische brein opstarten) Algoritmes Flowcharts Opdrachten Korte pauze Als er tijd voor is: Een text-based RPG als flowchart En dan wisselen we naar A228 (daar beginnen we met een quiz/oefentoets)
Logisch nadenken Voor programmeren is het nodig dat we op een bepaalde manier leren nadenken…
ER IS EEN MOORD GEPLEEGD Welke manier heeft jouw voorkeur en waarom?
Er is een moord gepleegd Er is een moord gepleegd, maar wie is de dader? Er zijn vier verdachten, en maar één van hen spreekt de waarheid. Wie heeft het gedaan? Robin: Faruk heeft het gedaan Faruk: Sven heeft het gedaan. Randy: Ik heb niets gedaan Sven: Faruk spreekt niet de waarheid. Welke manier heeft jouw voorkeur en waarom?
Logisch nadenken Is het mogelijk om de pijl van richting te laten veranderen met het verplaatsen van maximaal 2 cirkels? Welke manier heeft jouw voorkeur en waarom?
algoritmes Wat is een algoritme? “een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leiden” http://nl.wikipedia.org/wiki/Algoritme Een algoritme begint met de invoer, voert een aantal stappen uit, en eindigt met de uitvoer. An algorithm is a set of ordered and finite steps to solve a given problem.
Wat is een algoritme Wat is een algoritme? “een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leiden” http://nl.wikipedia.org/wiki/Algoritme De logica van je applicatie bestaat uit algoritmen. Deze bevatten met name: Beslissingen if(tarief == “laag”) Herhalingen foreach(int element in lijst) Daarnaast kunnen we acties of berekeningen uitvoeren.
uitwerking Veelgebruikte methodes om een algoritme uit te werken zijn: Flowcharts Pseudocode PSD’s Waarheidstabellen En natuurlijk de uiteindelijke C# code.
uitwerking Opdracht: BTW berekenen Lees een prijs zonder BTW in, en een keuze voor een hoog of laag BTW tarief. Van deze prijs wordt dan de BTW (6% of 21%) bepaald en het bedrag inc. BTW getoond. Wat is het algoritme? De stappen die worden uitgevoerd door de computer Denk even na welke stappen er volgens jou worden uitgevoerd. Hoe kunnen we dat uittekenen als een flowchart?
Als flowchart & code Flowchart: Code: // lees invoer in double bedrag = ? string tarief = ? double totaal = 0; if(tarief == “6%”) { totaal = bedrag * 1.06; } else if(tarief == “21%”) { totaal = bedrag * 1.21; // toon totaal
Remember kids, failing is needed for learning algoritmes Remember kids, failing is needed for learning
Als C# console application Console.WriteLine("Voer een bedrag in en druk op Enter"); double bedrag = double.Parse(Console.ReadLine()); Console.WriteLine("Voer ‘hoog’ in voor hoog tarief, of ‘laag’ voor laag tarief, en druk op Enter"); string tarief = Console.ReadLine(); double totaal = 0; if (tarief == "laag") { totaal = bedrag * 1.06; } else if (tarief == "hoog") totaal = bedrag * 1.21; Console.WriteLine("Het totaalbedrag is: " + totaal + ". Druk op Enter om het programma te beëindigen"); Console.ReadLine(); Bij interesse ook de windows forms applicatie maken
Als C# console application Console.WriteLine("Voer een bedrag in en druk op Enter"); double bedrag = double.Parse(Console.ReadLine()); Console.WriteLine("Voer ‘hoog’ in voor hoog tarief, of ‘laag’ voor laag tarief, en druk op Enter"); string tarief = Console.ReadLine(); Bij interesse ook de windows forms applicatie maken
Als C# console application double totaal = 0; if (tarief == "laag") { totaal = bedrag * 1.06; } else if (tarief == "hoog") totaal = bedrag * 1.21; Bij interesse ook de windows forms applicatie maken
Als C# console application Console.WriteLine("Het totaalbedrag is: " + totaal + ". Druk op Enter om het programma te beëindigen"); Console.ReadLine(); Bij interesse ook de windows forms applicatie maken
Korte pauze 10 minuten Bij interesse ook de windows forms applicatie maken
Oefening 2 Stel dat je wilt bepalen of iemand een telefoonabonnement af mag sluiten. De voorwaarden zijn: Als je jonger dan 21 bent mag je geen schulden hebben. Als je 21 of ouder bent mag je max. 10.000 euro schuld hebben. Voldoe je niet aan deze voorwaarden, krijg je geen abonnement. Kan je daar een flowchart van maken? Werk deze in tweetallen uit (op papier) Tijd over? Lukt het je om dat uit je hoofd in code uit te schrijven? (de taal maakt niet uit)
Een RPG in C# (Als een flowchart van een console application) Welke manier heeft jouw voorkeur en waarom? (Als een flowchart van een console application)
Wat gaan we doen Hoe kunnen we een simpele text-based RPG uitwerken zonder code te schrijven? Welke variabelen gaan we bijhouden? Welke stappen heeft ons algoritme? We kunnen onze game uitwerken als een flowchart. Teken na de bespreking individueel je flowchart uit (ik kom langs om te helpen)
Ideeën samenvoegen We maken groepen van 4. Wissel je ideeën uit en probeer samen tot een nieuw, goed ontwerp te komen. Of je het door 1 persoon laat tekenen terwijl de rest zegt wat er moet gebeuren, of door iedereen individueel laat uitwerken is aan jullie. Aan het eind van de les lever je per groep 1 flowchart in.
huiswerk Staat online (de eerste keer mail ik het rond) Aan het begin van de volgende les inleveren/laten zien.
Afsluiting Zijn er vragen?