Noter til C# Programmering Iteration
|
|
|
- Caroline Østergaard
- 9 år siden
- Visninger:
Transkript
1 Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de samme data Iteration At iterere vil sige at udføre den samme handling igen og igen. I C# findes grundlæggende tre løkkestrukturer, som vi skal se nærmere på. Hver især besidder de forskellige egenskaber, der kvalificerer dem til forskellige problemstillinger. Mulighederne for at modificere og skræddersy de tre løkker er imidlertid så omfattende, at alle tre løkkestrukturer kan bringes til at ligne hinanden. while-løkke En while-løkke får programmet til at udføre en kodeblok, sålænge startbetingelsen er sand. I det følgende eksempel bliver løkkeinstruktionen udført (tælleren blev opskrevet) indtil tælleren er lig med 5. while(tæller < 5) // Test om betingelsen er sand continue and break Nogle gange ønsker man at returnere til toppen af løkken uden at hele kodeblokken bliver afviklet. Dette kan gøres med continue, idet continue-sætningen springer tilbage til toppen af løkken. while(tæller < 10) // Test om betingelsen er sand if (tæller % 2!= 0) continue; Programmet udskriver de lige tal mellem 1 og 10. Hvorfor? Prøv at lave et program med en while-løkke, der udskriver de lige tal mellem 1 og 10 uden brug af continue. Prøv med en for-løkke, se senere Iteration side 1 af 5
2 Betingelsen, som evalueres i en while-løkke, skal være et boolsk udtryk. En while-løkke vil udføres, sålænge udtrykket er sandt. Det efterfølgende eksempel viser en uendelig løkke, der dog termineres vha. nøgleordet break. Brugen af break er den eneste mulighed for at undslippe denne løkke. while(true) // Betingelsen er altid sand if (tæller >= 5) break; Ovenstående eksempel svarer til de to første eksempler i denne note. do while løkke I en almindelig while-løkke kan det ske, at den indeholdte kodeblok aldrig bliver genneløbet, fordi startbetingelsen er falsk allerede inden det første gennemløb. Til at overkomme dette problem kan man gøre brug af strukturen do while. De to nedenstående eksempler viser hhv. effekten af while og do while (Prøv at indtaste forskellige tal) tæller = int.parse(console.readline()); while(tæller > 0) // Test betingelsen tæller = tæller - 1; (Prøv at indtaste forskellige tal) tæller = int.parse(console.readline()); do tæller = tæller - 1; while(tæller > 0); // Test betingelsen Læg mærke til, at uanset hvilken værdi, der indtastes i det sidste eksempel, så gennemløbes løkken mindst én gang. continue og break virker begge i do while-løkken præcis som de virker i while-løkken. Den eneste forskel mellem de to løkke-typer er tidspunktet for test af betingelse. Et typisk eksempel på brugen af do while er følgende, hvor man udfører en programstump, indtil brugeren takker nej på spørgsmålet om, hvorvidt han ønsker at fortsætte. Iteration side 2 af 5
3 : for løkke int resultat; double tal; do Console.Write("Indtast et tal: "); tal = double.parse(console.readline()); Console.WriteLine("Kvadratroden af " + tal + " er " + Math.Sqrt(tal)); Console.Write("Tast 1, hvis du vil prøve igen: "); resultat = int.parse(console.readline()); while(resultat!= 1); // Test betingelsen I en while-løkke opstilles en startbetingelse, der testes hvorvidt denne er sand, og endelig opskrives eller på anden vis ændres en tællevariabel for hvert løkkegennemløb. Lad os betragte endnu et eksempel på en while-løkke. int tæller = 0; while(tæller < 5) Console.WriteLine("Itererer..."); Startbetingelsen sættes i anden linje, tæller initialiseres til 0. I næste linje testes betingelsen er tæller mindre end 5, og endelig i første sætning i while-løkken opskrives tælleren tæller. Herefter udskrives et mindre intelligent budskab, men denne blok kunne også indeholde mere vigtig kode. En for-løkke sammenfatter alle tre trin i ét, altså initialisering, test og opskrivning i ét enkelt hug. Syntaksen er nøgleordet for efterfulgt af en parentes indeholdende 3 sætninger adskilt af semikoloner. Den første sætning er initialiseringen. Den næste er test af stopbetingelse, og her skal et boolsk udtryk indpasses. Den tredje sætning er selve handlingen. Denne er typisk en opskrivning eller nedskrivning af en variabel, men her kan enhver gyldig C#-sætning indpasses. Bemærk at den anden sætning skal være et boolsk udtryk, dvs. en sætning som returnerer enten sand eller falsk (true eller false). Lad os betragte et eksempel. for (tæller = 0; tæller < 5; tæller++) Console.WriteLine("Itererer..."); for-løkker er særdeles fleksible og kraftfulde. De udføres i følgende tre trin: Operationen i initialiseringsdelen udføres Stopbetingelsen evalueres Hvis betingelsen er sand, så udføres handlingen samt kodeblokken i selve løkken. Iteration side 3 af 5
4 Herefter gentages trin 2 og 3. Advancerede for-løkker for-løkker kan som sagt være særdeles fleksible, hvilket vil fremgå af de næste eksempler Multipel initialisering og opskrivning Det er muligt, at lade for-løkken håndtere mere end én variabel. Betragt følgende eksempel. Prøv at indtast koden og kør den. Hvad sker der? for (int i = 0, j = 0; i < 3; i++, j++) Console.WriteLine("i: " + i + " j: " + j); Tom for-løkke-sætning Det er muligt at udelade en eller flere af for-løkkens sætninger (Initialisering, test af betingelse og handling). int tæller = 0, max; max = int.parse(console.readline()); for (;;) // Uendelig for-løkke if (tæller < max) // Test else break; Tom for-løkke Ligesom det er muligt at udelade en eller flere af for-løkkens sætninger, er det muligt at undlade at have sætninger i selve løkken. for (int i = 0; i < 5; i++, Console.Write(".")) ; Indlejrede for-løkker for-løkker kan også indlejres, hvilket følgende eksempel illustrerer. for (int i = 0; i < 5; i++) for (int j = 0 ; j < 10; j++) Console.WriteLine(); Iteration side 4 af 5
5 Afrunding Som eksemplerne i det foregående har vist, så er alle tre løkketyper, while, do while og for-løkken så fleksible, at de alle tre vha. continue og break kan formes til at udføre den samme handling. Hvornår skal man så benytte hvilken? Der findes ingen forskrifter, men en tommelfingerregel kunne være: Brug for-løkker, når antallet af iterationer på forhånd er kendt, ellers Brug while-løkker, når startbetingelsen skal evalueres inden kodeblokken i selve løkken skal afvikles Brug do while-løkker, når kodeblokken i selve løkken skal afvikles én gang før startbetingelsen evalueres. Iteration side 5 af 5
Noter til C# Programmering Selektion
Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,
Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else
Programmering 1999 Forelæsning 2, fredag 3. september 1999 Betingede ordrer: if-, if Indlejrede betingede ordrer Løkker med begrænset iteration: for Løkker med ubegrænset iteration: while Betingede ordrer,
Programmering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Python programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Kapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Forelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0.
Kursus 02199: Programmering afsnit 3.1-3.5 Anne Haxthausen IMM, DTU 1. Kontrol af programudførn (afsnit 3.1) 2. Valg-sætninger (if og switch) (afsnit 3.2 og 3.3) 3. Bloksætninger (afsnit 3.2) 4. Logiske
Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Kapitel 4 Løkker i C#
Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave
Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
JavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Start på Arduino og programmering
Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget
Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract
Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget
Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.
Flowchart Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Et godt program til at tegne flowcharts med er, EDGE-Diagrammer, eller Smartdraw.
5. Kontrolstrukturer - Motivation og Oversigt
5. Kontrolstrukturer - Motivation og Oversigt I dette og de følgende afsnit vil vi - vigtigst af alt - møde forgreninger og løkker. Sådanne kaldes kontrolstrukturer, fordi vi med disse kan kontrollere
Klasse 1.4 Michael Jokil 03-05-2010
HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk
Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse
Bevisteknikker Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:
BOSK F2011, 1. del: Udsagnslogik
( p q) p q February 1, 2011 Sandhedsværdier og udsagnsvariable I dag handler det om logiske udsagn. Mere præcist om de logiske udsagn vi kan bygge ud fra sandhedsværdier, udsagnsvariable og logiske konnektiver.
Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug
Spørgsmål 1: Objekter Giv en beskrivelse af Objekt-begrebet og deres brug Under eksaminationen forventes du at forklare: Hvad er en type og en variabel? Hvordan erklæres en variabel? Hvad forstås ved en
2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.
Denne guide er oprindeligt udgivet på Eksperten.dk I gang med Python I denne artikel vil jeg forsøge at give et kort og hurtigt indblik i programmeringssproget Python, der desværre er alt for overset.
Undtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning
Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]
Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...
Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...
Kursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Tirsdag den 20. marts 2012, kl.
Python 3 Matematik Programmerings kursus:
Python 3 Matematik Programmerings kursus: Kompendiet indeholder: Hello World (første program) Variable (String & Integer) Løkker (while-loop) Regneoperationer If-else statement Funktioner Opgaver o Læg
Kursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Spil Master Mind. Indledning.
side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de
//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Introduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
Programmering I Java/C#
Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren
BOSK F2012, 1. del: Prædikatslogik
ε > 0. δ > 0. x. x a < δ f (x) L < ε February 8, 2012 Prædikater Vi skal lære om prædikatslogik lad os starte med prædikater. Et prædikat er et orakel der svarer ja eller nej. Eller mere præcist: Prædikater
Algoritmer og invarianter
Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.
Søgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille
Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering
Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen
Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan
Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.
Indhold Beregn rødder... 2 Beskrivelse af kærneproblemet... 2 Plan for brugerfladen for programmet... 3 Operationer på inddata... 4 Output - Beskrivelse af uddata... 4 Flowchart - programmets logiske opbygning/struktur...
Danmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave
//--------------------------------- Definition af porte og funktioner -------------------------
Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4
Lær Python - Dag 3, modul 1 Læse og skrive filer
Lær Python - Dag 3, modul 1 Læse og skrive filer Simon J. Larsen 15. oktober 2017 Institut for Matematik og Datalogi Læse og skrive filer Persistens Vi har ofte brug for at gemme data på disken som ikke
$ %' ) * %' +,! - Myarray %' /0 /0 122 +3 /0 /0
!"#!"# "# %&') * #" % && %' Dim MyArray2) As Integer ) * %' +,! - Myarray MyArray0). %' /0 /0 122 + /0 /0 +4 / 0) Dim MyArray1 to 2) As Integer 5MyarrayMyArray1)" +6 Option Base 1 Option Explicit %' 76
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Programmering i Javascript
Programmering i Javascript 1. Introduktion HTML er et fortrinligt værktøj til at strukturere og præsentere information, men hvis web siderne skal være interaktive, så der kan reageres på brugerens handlinger,
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Ligningsløsning som det at løse gåder
Ligningsløsning som det at løse gåder Nedenstående er et skærmklip fra en TI-Nspirefil. Vi ser at tre kræmmerhuse og fem bolsjer balancerer med to kræmmerhuse og 10 bolsjer. Spørgsmålet er hvor mange bolsjer,
Abstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Regulære udtryk, 2. del
Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 2. del Artiklen uddyber mange af de begreber, som blev introduceret i den 1. artikel. Den burde dog kunne læses alene, hvis man allerede
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
C Programmering V1.37
Indholdsfortegnelse Indledning...3 1 I gang med C...5 1.2 Variabler...12 1.3 Intelligens...17 1.6 Afrunding...38 1.7 Opgaver...41 2 Grundbegreber...42 2.1 Blokke...42 2.2 Datatyper...47 2.3 Typekonvertering...49
Dynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
Excel-6: HVIS-funktionen
Excel-6: HVIS-funktionen Regnearket Excel indeholder et væld af "funktioner" som kan bruges til forskellige ting indenfor f.eks. finans, statistik, logiske beregninger, beregninger med datoer og meget
SWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt
Scratch 1 Ghostbusters All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can register
