JAVAUTVECKLING LEKTION 4

Relevanta dokument
JAVAUTVECKLING LEKTION 3

JAVAUTVECKLING LEKTION 8

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 3. Iteration while-satsen

JAVAUTVECKLING LEKTION 7

Grundkurs i programmering, 6 hp (725G61) Dugga 1 tillfälle 3

Objektorienterad programmering

Objektorienterad programmering Föreläsning 2

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

F4. programmeringsteknik och Matlab

Lösningsförslag: Instuderingsfrågor, del A

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen

Föreläsningsmaterial (Syntax och variabler)

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Iteration while-satsen

Iteration. Föreläsning 3. TDA540 - Objektorienterad Programmering

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 3-4 Innehåll

Föreläsning 7. for-satsen Fält

JAVAUTVECKLING LEKTION 11

Objektorienterad programmering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 1 & 2 INTRODUKTION

Malmö högskola 2012/2013 Teknik och samhälle

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Instuderingsfrågor, del B

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Föreläsnings 9 - Exceptions, I/O

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Föreläsningsmaterial (Logik, if-satsen & iteration)

OOP Objekt-orienterad programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Att skriva till och läsa från terminalfönstret

DAT043 Objektorienterad Programmering

Föreläsning 3. Föreläsning 3. Iteration. while-satsen for-satsen do-satsen. while-satsen. do-satsen. Datatypen double

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

OOP Objekt-orienterad programmering

Föreläsning 3. Föreläsning 3

Föreläsning 3. Föreläsning 3

Föreläsning 9-10 Innehåll

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Agenda (obs! halvdag)

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Kursplanering för EE3D i kursen Programmering 1, 100p.

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Lösningsförslag till tentamen

Del A (obligatorisk för alla)

Malmö högskola 2008/2009 CTS

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Tentamen. Lösningsförslag

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Testning och felhantering

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

Inledande programmering med C# (1DV402) Summera med while"-satsen

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Editering, Kompilering och Exekvering av Javaprogram

1 Iteration. 1.1 for-satsen

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Data, typ, selektion, iteration

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

"if"-satsen. Inledande programmering med C# (1DV402)

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Grundläggande programmering med C# 7,5 högskolepoäng

OOP Objekt-orienterad programmering

Lösningsförslag till tentamen

Klassdeklaration. Metoddeklaration. Parameteröverföring

Tentamen ID1004 Objektorienterad programmering May 29, 2012

TDDC77 Objektorienterad Programmering

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Objektorienterad programmering

SMD 134 Objektorienterad programmering

Instuderingsfrågor, del A

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

OOP Objekt-orienterad programmering

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

Lite logik. Kap 6: Sid 2

6.5 Spelserien Gissa tal

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

TDIU01 - Programmering i C++, grundkurs

Transkript:

JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1

WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet n?"); int n = Integer.parseInt(s); int sum = 0; int i=1; while (i <= n) { sum = sum + i; i= i + 1; Beräkning av summan 1+2+3+.. + n JOptionPane.showMessageDialog(null, "Summan = " + sum); BREAK-SATSEN While (true){ String s = JOptionPane.showInputDialog("Talet n?"); if(s == null) break; int n = Integer.parseInt(s); Användaren klickade int sum = 0; på Avbryt int i=1; while (i <= n) { sum = sum + i; i= i + 1; JOptionPane.showMessageDialog(null, "Summan = " + sum); // Slut på den yttre while-satsen // hit kommer man när break exekveras 2

FOR-SATSEN String s = JOptionPane.showInputDialog("n?"); int n = Integer.parseInt(s); int summa = 0; for (int k=1; k <= n; k++) summa = summa + k; Beräkning av summan 1+2+3+.. + n JOptionPane.showMessageDialog(null, "Summan blir " + summa); ÖVNING Skriv ett program som beräknar hur mycket pengar man får på ett bankkonto om man sätter in 1000kr och låter pengarna stå inne under ett visst antal år. När man kör programmet frågar det efter räntesatsen, som anges i procent, och hur många år pengarna skall stå inne. Som resultat visar programmet en tabell där man an se hur mycket kapitalet har växt efter varje år. Tips. Se sid. 114-115 3

ÖVNING 5.1 double största = -1.7e308; double minsta = 1.7e308; // eller Double.MIN_VALUE // eller Double.MAX_VALUE while (true) { String s = JOptionPane.showInputDialog("Skriv ett tal"); if (s == null) break; double tal = Double.parseDouble(s); största = Math.max(största, tal); minsta = Math.min(minsta, tal); JOptionPane.showMessageDialog(null, "Minsta: " + minsta + "\nstörsta: " + största); ÖVNING 5.2 public static void main (String[] arg) { String tabell = ""; for (int i=1; i<=12; i++) tabell = tabell + i + " " + i*i + " " + i*i*i + "\n"; JOptionPane.showMessageDialog(null, tabell); 4

UPPGIFT 5.3 På en mycket farlig arbetsplats erbjuds man följande lön: Första dagen tjänar man ett öre och sedan fördubblas lönen varje dag. Skriv ett program som räknar ut hur länge man behöver arbeta för att tjäna ihop 10 miljoner kronor. ALGORITM En algoritm är en beskrivning av hur ett visst problem skall lösas. Algoritmer kan uttryckas i pseudokod (naturligt språk) eller strukturdiagram. Programmering går ut på att beskriva algoritmer så att de kan exekveras av maskiner och dessutom förstås av människor. 5

KONTROLLSTRUKTURER Sekvens En sekvens är en följd av steg som utförs ett i taget i den ordning de skrivits. Varje steg utförs exakt en gång. Selektion Selektion innebär att ett alternativ bland flera skall väljas. Iteration En del av algoritmen skall kunna upprepas ett visst antal gånger eller tills ett visst villkor har uppfyllts. ÖVNING 6.1 Beskriv i pseudokod en algoritm som läser in 100 tal och som beräknar och skriver ut medelvärdet av de inlästa talen. Använd en variabel summa som sätts till 0 och en räknare k som sätts till 1. Upprepa följande två rader så länge som k är mindre än eller lika med 100: Läs in ett tal och tilldela det till en variabel med namnet x Öka summa med x. Öka k med ett. Beräkna uttrycket summa/100 och skriv ut det. 6

UPPGIFT 6.1 Beskriv i pseudokod en algoritm som läser in ett antal tal och som undersöker om talen skrivits in i storleksordning eller inte. Läs in det första talet och tilldela det till en variabel med namnet x. Upprepa följande ett godtyckligt antal gånger: Läs in ett tal och avbryt upprepningen om användaren vill sluta. Tilldela det inlästa talet till en variabel med namnet y. Om x > y Meddela att talen inte skrivits i storleksordning. Avbryt algoritmen. annars tilldela y till x. Meddela att talen skrivits i storleksordning. OLIKA TYPER AV FEL Kompileringsfel Språkreglerna har inte följts. Upptäcks vid kompilering Logiska fel Felaktig lösning av problemet. Ger felaktigt resultat. Exekveringsfel Felsignal vid körning. Kan avbryta programmet. 7

KOMPILERINGSFEL - EXEMPEL // Ett avsiktligt felaktigt program import javax.swing.*; public class DemoAvFel { public static void main (String[] arg) { String t = JOptionPane.showInputDialog("Ett tal?"); for (int i=1; i<=t.length(); i++) if (t.charat(i) >= '0' && <= '9') JOptionPane.showMessageDialog(null,"Talet är OK"); else JOptionPane.showMessageDialog(null,"Inget tal"); ATT TA HAND OM FELSIGNALER public static void main (String[] arg) throws InterruptedException { Thread.sleep(10000); // vänta 10 sek JOptionPane.showMessageDialog(null, "OK"); 8

TRY-SATS double tal = 0; boolean again = true; String s = JOptionPane.showInputDialog("Ange ett tal"); while (again) { if (s == null) System.exit(0); // Vid avbryt try { tal = Double.parseDouble(s); if (tal > 0) again = false; // Inläsningen var OK! else s = JOptionPane.showInputDialog("Talet måste vara > 0"); catch (NumberFormatException e) { s = JOptionPane.showInputDialog("Felaktigt tal!"); JOptionPane.showMessageDialog(null, "Talet är: " + tal); EXTRA ÖVNING Skriv ett program som visar multiplikationstabellen enligt bilden till höger. 9

FACIT String txt = ""; for (int i=1; i<=10; i++) { for (int j=1; j<=10; j++) txt = txt + i*j + " "; txt = txt + '\n'; JOptionPane.showMessageDialog(null, txt); 10