C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

Like dokumenter
Arbeidskrav 1. Se fremdriftsplanen for innleveringsfrist. Emneansvarlig: Olav Dæhli 1

Arbeidskrav 1. Se fremdriftsplanen for innleveringsfrist. Emneansvarlig: Olav Dæhli 1

Oppsummering fra sist

Læringsmål og pensum. Oversikt

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Algoritmer og datastrukturer E Løkker i Java

TDT4110 IT Grunnkurs Høst 2016

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Programmering Høst 2017

Dagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Leksjon 3. Kontrollstrukturer

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2016

Programmering i C++ Løsningsforslag Eksamen høsten 2005

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Visual Basic. Repetisjon fra mandag

Del 4 Noen spesielle C-elementer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

MAT1030 Plenumsregning 1

UNIVERSITETET I OSLO

Programmeringsspråket C

Visual Basic. Repetisjon fra onsdag

Visuell Programmering: Kom i gang med Processing

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Løse reelle problemer

HØGSKOLEN I SØR-TRØNDELAG

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Hangman. Level. Introduksjon

løsningsforslag-uke5.txt

MAT1030 Diskret Matematikk

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Debugging. Tore Berg Hansen, TISIP

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Datastrukturer (kap. 8)

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle

Del 1 En oversikt over C-programmering

Leksjon 3. Kontrollstrukturer

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Leksjon 3. Kontrollstrukturer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

Notat 2, ST januar 2005

Kap 2: Løkker og lister

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Oppsummering - Til nå... (1/ )

Oppsummering - Til nå... (1/ )

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

En enkel while-løkke. 1 of :28. 2 of :28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon

JS: Grunnleggende JavaScript Nybegynner

Forelesning inf Java 5

Forelesning inf Java 5

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

INF Uke 10. Ukesoppgaver oktober 2012

Læringsmål og pensum. Oppgave

Læringsmål og pensum. if (be): else (not_to_be):

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs

UNIVERSITETET I OSLO

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

Noen innebygde funksjoner - Vektorisering

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Informasjon Eksamen i IN1000 høsten 2017

JAVA Oppsummering for IS-102. Even Åby Larsen

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Noen innebygde funksjoner - Vektorisering

Kontrollstrukturer (valg og løkker)

MAT1030 Diskret matematikk

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

INF1000: Forelesning 6. Klasser og objekter del 1

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Transkript:

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18 Olav Dæhli - C#-kurs høsten 2017 1

Løkker Dagens temaer Inkrementering/dekrementering Løkkebetingelser Løkketyper Nøstede løkker Escape-sequences Debugger Olav Dæhli - C#-kurs høsten 2017 2

Loop (løkker) C# tilbyr følgende løkker (loops): for-løkker while-løkker (pretest) og do-while (posttest) foreach-løkker Olav Dæhli - C#-kurs høsten 2017 3

Tilordnings- og inkrementeringsoperatorer Olav Dæhli - C#-kurs høsten 2017 4

Aktuelle sammeligningsoperatorer En logisk test (true/false) avgjør løkkas avslutning: < <= > >= ==!= (t2 >= t1) (t2 større eller lik t1?) (t2 == t2) (t1 lik t2?) (t1!= t2) (t1 forskjellig fra t2?) Alle uttrykkene returnerer enten true eller false Olav Dæhli - C#-kurs høsten 2017 5

Kombinatoriske uttrykk && (AND-operator, som betyr både og) if (age > 6) && (age < 16) //Begge må bli //true, for at uttrykket som helhelt skal bli true Husk at følgende ikke er lov (typisk feil): if age > 6 && < 16 Olav Dæhli - C#-kurs høsten 2017 6

Kombinatoriske uttrykk (OR-operator, som betyr enten eller) if (age < 6 age > 60) //age mellom 6 og 60! (inverterer verdien) if (! (age > 16)) blir identisk med if (age <= 16) true blir til false og false blir til true Samlet uttrykk blir her true dersom age <= 16 Olav Dæhli - C#-kurs høsten 2017 7

for-løkker for (<initialization>;<condition>;<operation>) { <code>; }; Olav Dæhli - C#-kurs høsten 2017 8

Initialverdi (Startverdi) Eksempel: for-løkker for (int i = 0; i <= 10 ; i++) { }; <code>; Fortsetter så lenge betingelsen (i <= 10) er True Inkrementerer med verdien 1 (i = i + 1) Olav Dæhli - C#-kurs høsten 2017 9

Initial-verdi (startverdi) Eksempel: for-løkker for (int i = 100; i >=0 ; i -= 5) { }; <code>; Fortsetter så lenge betingelsen (i >= 0) er true Dekrementerer med verdien 5 (i = i - 5) Olav Dæhli - C#-kurs høsten 2017 10

Datatype: double Eksempel: for-løkker Fortsetter så lenge betingelsen (i <= 100.0) er true for (double i = 0.0; i <= 100.0 ; i += 2.5) { }; <code>; Intitialverdi (Startverdi) Inkrementerer med verdien 2.5 (i = i + 2.5) Olav Dæhli - C#-kurs høsten 2017 11

for-løkke-eksempel: Datatype: int counter initieres til 0 (startverdi 0) Fortsetter så lenge betingelsen er innfridd dvs. (counter <= 9) Løkka vil telle fra 0-9 og skrive tallene til en tekstboks med et mellomrom mellom hvert tall Øker counter med 1 for hver iterasjon Olav Dæhli - C#-kurs høsten 2017 12

Escape Sequenses Eksempel på «Escape Sequenses»: \t tabulator (horisontal) \n newline (ny linje) \r return (tilbake til starten av linja) \r\n «enter» (ny linje og til starten av denne) \' Apostrof \" Anførselstegn (hermetegn / sitattegn) Det finnes også diverse andre, men ovennevnte er nyttige i forbindelse med tekst i tekstbokser Olav Dæhli - C#-kurs høsten 2017 13

Eksempel med Escape-sequenses Olav Dæhli - C#-kurs høsten 2017 14

do while (post-testing) (Test utføres etter løkkekoden) Olav Dæhli - C#-kurs høsten 2017 15

while (pre-testing) (Test utføres før løkkekoden) Olav Dæhli - C#-kurs høsten 2017 16

Når bruke for og når bruke while? for-loops Oftest benyttet når det skal iterereres («loopes») et på forhånd kjent antall ganger while-loops Oftest benyttet når det på forhånd ikke er kjent antall iterasjoner, men skal itereres så lenge en gitt betingelse er true (altså inntil den bli false) Olav Dæhli - C#-kurs høsten 2017 17

Nested loops (for-loops) Olav Dæhli - C#-kurs høsten 2017 18

Nestet loops- (i,j)-innhold Eksempel med i fra 1-3 og j fra 1-4 i = 1 i = 2 i = 3 Olav Dæhli - C#-kurs høsten 2017 19

Nested loops (while-loops) Olav Dæhli - C#-kurs høsten 2017 20

foreach foreach (datatype variabelnavn in elementsamling) { Collection Kode; (en samling elementer) } (items) //Itererer en samling elementer element for element //Verdi for verdi lagres i variabelen //Elementsamlingen kan være collection, array m.m. Olav Dæhli - C#-kurs høsten 2017 21

Datatype Egenvalgt variabelnavn foreach Collection of string-elements foreach (string animal in cboanimals.items) { txtshow.appendtext(animal + "\r\n"); } ComboBox (cboanimals) Olav Dæhli - C#-kurs høsten 2017 22

Sletter alt TextBox-innhold Datatype Variabel Dette/gjeldende objekt Samlingen komponenter (tekstbokser etc.) på skjemaet (Form) Itererer komponent for komponent Olav Dæhli - C#-kurs høsten 2017 23

foreach Fordeler/ulemper Itererer (looper) alle elementer, uten at det behøves elementangivelser eller grenseverdi Får ikke noe «indeksnummer» men kan naturligvis introdusere en egen «teller» Starter alltid med første elementet (dvs. det med indeksnr. 0), hvilket ikke kan endres Kan ikke f.eks. iterere reversert (f.eks. 10 til 0) Olav Dæhli - C#-kurs høsten 2017 24

Debugger (Nyttig for å se hvordan løkkene endrer variablenes verdier) F11 -> Step linje for linje Sett Breakpoint -> Start med F5 og step så videre linje for linje med F11, fra breakpoint Hold kursor over variabler for å se verdiene Legg til «Autos»-vinduet Legg alternativt til «Watch»-vindu(-er) Legg til variabler som ønskes vist Det finnes også andre vinduer/muligheter Olav Dæhli - C#-kurs høsten 2017 25