Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else
|
|
|
- Tina Møller
- 10 år siden
- Visninger:
Transkript
1 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, if public class Best { int karakter; karakter = Integer.parseInt(args[0]); Semikolon omdanner et udtryk til en ordre Tildeling og optælling: forkortede skrivemåder Programkommentarer og program-layout Generelt format: if (udtryk) ordre1 Programmering 1999 KVL Side 2-1 Programmering 1999 KVL Side 2-3 Repetition: betingede ordrer, if- public class Best { int karakter; karakter = Integer.parseInt(args[0]); System.out.println("Dumpet"); Husk: erklæring, variabel, tildeling, udtryk, ordre. En blok består af flere ordrer En række ordrer kan grupperes til én ordre med {... : En blok kan forekomme hvor som helst en ordre kan forekomme. { antalbestaaet = antalbestaaet + 1; Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). Hvad ville der ske her? Generelt format for if- ordre: if (udtryk) ordre1 antalbestaaet = antalbestaaet + 1; ordre2 Programmering 1999 KVL Side 2-2 Programmering 1999 KVL Side 2-4
2 -problemet Hvad giver dette hvis x er 4: if (x > 5) if (y > 5) System.out.println("gren A"); System.out.println("gren B"); Regel: En -gren knytter sig til den seneste uafsluttede if. Man kan afslutte en if ved at lukke den inde i en blok: if (x > 5) { if (y > 5) System.out.println("gren A"); System.out.println("gren B"); Men det er langt bedre at bruge en for-løkke public class Sum1 { for (int n=1; n <= 10000; n = n + 1) System.out.println(sum); Ordren sum = sum + 1.0/n udføres gange, med n = ½ ¾ ½¼¼¼¼. Dvs. programmet beregner ¼ ½ ¼ ½ ½ ¼ ¾ ½ ¼ ½ ¼ ½¼¼¼¼. Brug gerne ekstra {... til at gøre meningen med en ordre klar. Ligesom man bruger ekstra (... ) til at gøre meningen med et regneudtryk klar. Programmering 1999 KVL Side 2-5 Programmering 1999 KVL Side 2-7 Løkke-eksempel 1: begrænset iteration Beregn summen for-løkker ÙÑ ½ ½ ½ En for-løkke har denne form: ½ Det kunne gøres sådan: ¾ for ( initialisering ; beting ; optælling ) ½¼¼¼¼ public class Sum0 { ordre sum = sum + 1.0/1; sum = sum + 1.0/2; sum = sum + 1.0/3; sum = sum + 1.0/4; sum = sum + 1.0/5; sum = sum + 1.0/6;... sum = sum + 1.0/10000; System.out.println(sum); Den virker sådan: (1) Udfør initialisering. (2) Udregn beting; hvisfalse, fortsæt efter løkken. (3) Udfør løkke-kroppen ordre. (4) Udfør optælling. (5) Fortsæt med punkt 2. Ordren under for kaldes løkkekroppen. Programmering 1999 KVL Side 2-6 Programmering 1999 KVL Side 2-8
3 Løkke-eksempel 2: Ubegrænset iteration Bestemt mindste n så Eksempler Standard-løkke, hvor i gennemløber 10, 9, 8, 7, 6, 5, 4, 3, 2, 1: for (int i = 10; i >= 1; i = i - 1) Det kan gøres sådan: public class Sum2 { ½ ½ ¾ ½ Ò ½¼ ½ Standard-løkke, hvor i gennemløber 1, 3, 5, 7, 9: for (int i = 1; i <= 10; i = i + 2) Standard-løkke, hvor i gennemløber 1, 2, 4, 8, 16, 32, 64: for (int i = 1; i <= 100; i = i * 2) int n = 0; n = n + 1; System.out.println(n); Løkken kører så længe sum < 10.Når løkken standser gælder altså sum >= 10. Programmering 1999 KVL Side 2-9 Programmering 1999 KVL Side 2-11 Opgaver Skriv en løkke hvor i gennemløber 64, 32, 16, 8, 4, 2, 1: for (int i = ; ; ) Skriv en løkke hvor i gennemløber 2,4,6,8,...,100: for (int i = ; ; ) Skriv en løkke hvor i gennemløber 100,110,120,...,200: for (int i = ; ; ) Løkker, while Generelt format: while (udtryk) ordre Den virker sådan: (1) udregn udtryk (2) hvis true, så udfør ordre, og fortsæt ved (1) Dvs. while-løkken kører sålænge betingn (udtryk) er sand. Indmaden i while kaldes løkkekroppen. Programmering 1999 KVL Side 2-10 Programmering 1999 KVL Side 2-12
4 Indlejrede løkker public class For2 { for (int i = 1; i <= 10; i = i+1) { for (int j = 1; j <= 5; j = j + 1) System.out.print("*"); System.out.println(); Den ydre løkke kører 10 gange med i ½ ¾ ½¼. For hvert i kører den indre løkke 5 gange med j ½ ¾. Ordren System.out.print("*") skriver en enkelt stjerne på skærmen. Ordren System.out.println() går til den næste linie på skærmen. Hvad vises på skærmen? Semikolon forvandler et udtryk til en ordre Mange ordrer består faktisk af udtryk. For eksempel er tildelingen i = et udtryk (med værdien 7). Det har en bivirkning: det ændrer tilstanden ved at sætte i til 7. Semikolon efter et udtryk forvandler det til en ordre: i = 3 + 4; Denne ordre sætter i til 7. En ordre har ingen værdi. Semikolon forvandler et udtryk til en ordre ved at smide udtrykkets værdi væk. Husk: Intet semikolon efter en født ordre: if,while, osv Put semikolon efter en ordre lavet af et udtryk: tildeling, metodekald, osv. Put semikolon efter variabel-erklæringer. Der skal ikke semikolon efter en blok {... Hvad sker der hvis 5 erstattes med i? Programmering 1999 KVL Side 2-13 Programmering 1999 KVL Side 2-15 Ulykker Hvad er der galt her: og her for (int i=0; i < 10; i = i - 1) int j = 0; while (j < 10) { j = j + 0; System.out.println(j); if (x!= 0) { antal = antal + 1 if (x!= 0) sum = 0 if (x!= 0) { sum = 0 if (x!= 0) if (y!= 0) sum = sum + 1.0/y Programmering 1999 KVL Side 2-14 Programmering 1999 KVL Side 2-16
5 Tildeling, forkortede skrivemåder Udtryk Svarer til Virkning n += 1 n = n + 1 Læg 1 til n n -= 1 n = n - 1 Træk 1 fra n sum += n sum = sum + n Læg n til sum saldo *= (1 + rente) saldo = saldo * (1 + rente) Forøg saldo med rente rest /= 2 rest = rest / 2 Halvér rest Optælling og nedtælling Programkommentarer Erklæringer og ordrer er instrukser til datamaskinen. En programkommentar har ingen virkning på datamaskinen. Hvorfor skrive programkommentarer? Af hensyn til mennesker der skal læse programmet. En-liniers kommentarer // Solving the quadratic equation 2xˆ2 + 3x - 2 = 0 public class Quadratic1 {... Udtryk ++n --n n++ n-- Bivirkning og værdi Læg1tilnog returnér den nye værdi af n Træk 1 fra n og returnér den nye værdi af n Læg1tilnog returnér den gamle værdi af n Træk 1 fra n og returnér den gamle værdi af n Fler-liniers kommentarer /* Solving the quadratic equation 2xˆ2 + 3x - 2 = 0 [email protected] */ public class Quadratic1 {... Programmering 1999 KVL Side 2-17 Programmering 1999 KVL Side 2-19 Programlayout, indrykning Eksemplet fra før n = n + 1; kan skrives kortere: n++; sum += 1.0/n; eller endda while (sum < 10) sum += 1.0/++n; Men det sidste er hverken klarere eller hurtigere. Indrykning har ikke nogen betydning for datamaskinen. Men for mennesker er det meget nemmere at læse int n = 0; n = n + 1; System.out.println(n); end at læse double sum=0; int n=0; n=n+1; sum =sum+1.0/n; System.out.println ( n ) ; Datamaskinen er ligeglad, men det er jeres lærer og instruktor ikke... Indryk altid underordnede linier (grenene i en if, kroppen i en løkke, indmaden i main,...) Programmering 1999 KVL Side 2-18 Programmering 1999 KVL Side 2-20
6 Oversigt over udtryk Udtryks-art Eksempel konstant 7 variabel x aritmetisk udtryk x + 1 optælling x++ logisk udtryk x > 0 metodekald Math.sqrt(d) betinget udtryk (x!= 0? 1/x : 1) Nyt i dag for-løkker: begrænset iteration while-løkker: ubegrænset iteration Semikolon, udtryk og ordrer Tildeling og optælling: forkortede skrivemåder Programkommentarer og program-layout Læsning for denne uge Lewis og Loftus, kapitel (2 og) 3, samt side Opgaver til øvrne næste uge Se løbeseddel 1 Programmering 1999 KVL Side 2-21 Programmering 1999 KVL Side 2-23 Oversigt over ordrer Ordre-art Eksempel assignment x = x + 1; if-ordre if (x!= 0) y = 1/y; if--ordre if (x!= 0) y = 1/x; y = 0; metodekald System.out.println("Hello"); blok { x = 1; y = 1/x; System.out.print(y); for-løkke for (int i=1; i<100; i++) sum += i; while-løkke while (sum < 100) sum += 1; do-while-løkke do { sum += 1; while (sum < 100); switch switch (x) { case 0: y = 0; break; case 1: y = 117; break; default: y = 1/x; break Ordrer kan kun skrives inde i en metode (f.eks. i main), ikke ude i en klasse. Appendiks N i Lewis og Loftus indeholder en præcis syntaks for Java. Programmering 1999 KVL Side 2-22
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
Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft
Kurserne Kurset: programmering i sproget Java Programmering og Udvidet Programmering Lærerne: Morten Larsen og Peter Sestoft Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger:
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
Noter til C# Programmering Iteration
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
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:
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
Programmering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Virkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
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,
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
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger
Velkommen til Kursus 02199: Programmering ved Anne Haxthausen IMM, DTU 4. september, 2001 1. Praktisk information 2. Introduktion til faget (a) kursusmål og motivation (b) hvad er en datamaskine, et program,
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:
//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
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Fundamentale sprogbegreber
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn) Oversigt Sætninger simple sætninger (assignment, metodekald) sammensatte sætninger (selektion,
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
Skriftlig eksamen, Programmer som Data 2. 3. januar 2014
Skriftlig eksamen, Programmer som Data 2. 3. januar 2014 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamenssættet udleveres elektronisk fra kursets hjemmeside torsdag 2.
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
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.............................................
Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september 2008. (Tak til Jakob Bardram for nogle slides) Dagens begreber
Klasser Grundlæggende Programmering med Projekt Peter Sestoft Tirsdag 2. september 2008 (Tak til Jakob Bardram for nogle slides) Dagens begreber Felt (field) Metode (method) Parameter (parameter) Sætning,
Tree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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
Programmering i C. Kurt Nørmark 2005 Institut for Datalogi, Aalborg Universitet. Sammendrag
Programmering i C Kurt Nørmark 2005 Institut for Datalogi, Aalborg Universitet Sammendrag Dette er et undervisningsmateriale om introducerende programmering i et imperativt sprog. Mere konkret er det et
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
Løsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
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
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
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
Ugeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Det er muligt at chekce følgende opg. i CodeJudge: og
Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.
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...................................................
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.
Undervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Skoleåret 2015/16 Institution Hansenberg Gymnasium Uddannelse Fag og niveau Lærer Hold htx Programmering,
Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
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
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);
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.
14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel
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
