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

Relevanta dokument
TDDC77 Objektorienterad Programmering

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

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

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

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

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

F4. programmeringsteknik och Matlab

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

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

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

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 3: Booleans, if, switch

Övning2. Variabler. Data typer

TDIU01 - Programmering i C++, grundkurs

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

TENTAMEN OOP

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

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

SMD 134 Objektorienterad programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Föreläsning 3. Iteration while-satsen

OOP Objekt-orienterad programmering

Iteration while-satsen

Imperativ programmering. Föreläsning 2

OOP Objekt-orienterad programmering

Föreläsning 3-4 Innehåll

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

PROGRAMMERING-Java Omtentamina

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

TENTAMEN OOP

TENTAMEN OOP

JAVAUTVECKLING LEKTION 4

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

Lite logik. Kap 6: Sid 2

Objektorienterad programmering i Java

LÖSNINGSFÖRSLAG TENTAMEN

OOP Tenta

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Programmering i C, 7,5 hp

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

Föreläsning 2 Programmeringsteknik och C DD1316

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

TDDC77 Objektorienterad Programmering

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

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

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

Skillnader mellan Python och Java

OOP Omtenta

OOP Tentamen

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

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

Objektorienterad Programmering (TDDC77)

Logik och kontrollstrukturer

TDIU01 - Programmering i C++, grundkurs

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

Visual Basic, en snabbgenomgång

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

Föreläsning 1 & 2 INTRODUKTION

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

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Språket Python - Del 1 Grundkurs i programmering med Python

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Programmering A. Johan Eliasson

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Lösningsförslag till tentamen

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

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

Objektorienterad programmering i Java

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

DD1314 Programmeringsteknik

Agenda (obs! halvdag)

Transkript:

Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så körs programmets kodrader i ordning, alltså uppifrån och ned. I Ibland vill man ändra på detta, exempelvis när man vill jämföra två heltal I istället för att följa det normala ordningen, man ändra den och hoppa till ett annat rad I i Java får man inte göra hopp hur som helst I man använder istället färdiga kontrollstrukturer som ändrar ordningen beroende på något villkor

Outline if-then-else-satsen if (a < b) { gör nå got ; else { gör nå got annat ; ja Är a < b? nej annat Att programera är att bryta ner en uppgift i små steg som en dator kan göra Glömm inte att: I Låt användaren skriva in två heltal x och y. Vi vill räkna upp skillnadens absoluta värde (dvs, jx y j) och skriv ut resultatet. I Fråga användaren efter ett heltal I Läs in ett heltalet x I Fråga användaren efter ett heltal I Läs in ett heltalet y I Om x är storare än y, räkna upp (x y) I Om y är storre än x, räkna upp (y x) I Skriv ut resultatet I Använda papper och penna I Prova I Ha kul!

Ordning (fort.) Villkor: jämförelser /* AbsoluteSkillnad. java * Programmet demonstrerar anv ä ndandet av * if instruktioner class AbsolutSkillnad { /* Metoden lä ser in två heltal från anv ä ndaren * och skriver ut skillnaden mellan det störe och det * minsta talet public static void main ( String [] args ) { Scanner in = new Scanner ( System.in ); int x, y, tmp ; System.out. println ("Mata in ett heltal x: "); x = in. nextint (); System.out. println ("Mata in ett heltal y: "); y = in. nextint (); if (y > x){ tmp = x; x = y; y = tmp ; Operator Förklaring == lika med!= olika från < mindre än <= mindre än eller lika med > större än >= större än eller lika med boolean resultat ; int tal1 =0, tal2 =1; resultat = ( tal1 < tal2 ); // true resultat = ( tal1 <= tal2 ); // true resultat = ( tal1 > tal2 ); // false resultat = ( tal1 >= tal2 ); // false resultat = ( tal1 == tal2 ); // false resultat = ( tal1!= tal2 ); // true System.out. println (" x-y = " + (x-y )); Villkor: logiska operatorer if-then-else-satsen (fort.) Operator Förklaring!p negationen av p p && q sant omm p och q p q sant omm p eller q boolean res ; resultat = predikat && true ; resultat = false && predikat ; resultat = predikat &&! predikat ; resultat = predikat true ; resultat = predikat false ; resultat = predikat! predikat ; /* Systemet. java * Programmet demonstrera anv ä ndandet av * if -then - else instruktioner class Systemet { // Fråga anv ä ndaren om sin åld och skriver ut om anv ä ndaren får final int MIN_LIMIT=20, LEG_LIMIT =25; System.out. println ("Hur gammal är du?"); int age = scan. nextint (); if(age >=MIN_LIMIT ){ if(age <= LEG_LIMIT ){ System.out. println ("Du får köpa från Systemet " + " men du må ste visa leg!"); else { System.out. println ("Du får köpa från Systemet!"); System.out. println ("Du får köpa från Systemet!"); else { System.out. println ("Du får inte köpa från Systemet!");

Outline Upprepning / slinga / loop while (a < b) { gör nå got ; Ja villkor Nej Skriv programmet! : kontrollera inputen 1. Ta emot ett heltal från användaren 2. Om heltalet är större än fem, skriv för stort och hoppa till programpunkt 1 3. Om heltalet är mindre än fem, addera ett till heltalet 4. Skriv ut du får betyg och heltalet 5. Avsluta /* Constrained. java * Programmet illustrear hur man kan begr ä nsa * vad anv ä ndaren mata in public class Constrained { /* ts ätt att be anv ä ndaren om att mata in * ett tal tills den är mellan 0 och 10 int input ; final int MIN =0, MAX =10; System.out. println (" please enter a number between " + MIN + " and " + MAX ); input = scan. nextint (); while ( input <MIN MAX <input ){ System.out. println (" please enter a number between " + MIN + " and " + MAX ); input = scan. nextint (); System.out. println (" Thank you. You entered : " + input );

: terminering (termination) : nested loops /* CountDown. java * Illustrerar hur ett programmet terminerar inte public class CountDown { // Exekvera en slinga som terminerar inte int count =2; while ( count!=0){ System. out. println ( count + "... "); count -=5; /* Palindrome. java * Illustrerar anv ä ndandet av nä stlad slingor public class Naestlad { /* Upprepa att be om en text och att kolla upp om * det är ett palindrome String candidate, answer="y"; while ( answer. equals ("y" )){ System.out. println (" Please enter a candidate : "); candidate = scan. nextline (); int index = 0; boolean ispalindrome = true ; while (index <( candidate. length () / 2)){ if( candidate. charat ( index )!= candidate. charat ( candidate. length () -index -1)) ispalindrome = false ; index ++; if( ispalindrome ) System.out. println ( candidate + " is a palindrome "); else System.out. println ( candidate + " is not a palindrome "); System.out. println (" Repeat? y/n"); answer = scan. nextline (); System.out. println ("Good bye!"); Outline final int MAX = 10; for ( int i =0; i<max ; i ++){ System.out. println (i); updatering Ja initiering vilkor Nej

(fort.) Outline /* Multiplikation. java * Illustrerar anv ä ndandet av while och for slingor public class Multiplikation { // Be om ett tal mella 0 och 9 och skriv ut multiplikationstabelen för talet. int number =0; while ( number <=0 10 < number ){ System.out. println (" Please enter an integer between 1 and 10? "); number = scan. nextint (); for ( int k =0; k <=10; k ++) System.out. println ( number + " x " + k + "= " + number *k); Do Ja villkor Ja I Exakt som while-loopen, men den kör alltid minst ett varv: Den kontrollerar villkoret efter varje varv. I Kan vara bra för saker som behöver repeteras om det inte går så bra första gången, exempelvis inläsning av data från användaren Nej villkor int tal = 0; loop Nej Do loop do{ System. out. print (" Ange ett tall mellan " + " 3 och 26: "); tal = in. nextint (); while (( tal < 3) ( tal > 26))

Outline break och continue I Om man exekverar en break i en slinga, kommer exekveringen av slingan att stoppas. Nästa satsen blir den som följer efter slingan I Om man exekverar en continue sats i en slinga kommer kontrollen att hoppa till början av slingan I Det är alltid möjligt att få samma effekt utan att använda sig av break och continue som anses vara DÅLIG PRAXIS eftersom de skada läsbarheten Switch satsen Switch satsen /* Betyg. java * Programmet illustrera anv ä ndandet av switch instruktion public class Betyg { // lä ser in ett betyg och ö vers ä tta den till text int grade ; do{ System.out. println ("Ge ett betyg mellan 3 och 5: "); grade = scan. nextint (); while (grade <3 5<grade ); switch ( grade ){ case 3: System.out. println ("Godk änd!"); break ; case 4: System.out. println ("Väl godk änd!"); break ; case 5: System.out. println (" Mycket väl godk änd!"); break ; default : System.out. println ("Jag ser inte hur vi har lyckats kommer hit!"); I Evaluerar ett uttryck av typ char, byte, short eller int I Matchar det resulterande värdet mot en av flera konstanter I Kör forsta case som matchar värden I Om inget fall matchar värdet, kör default fallet I Om inget default fall, hoppa till satsen som följar switch satsen I break (är här nödvandigt) används för att hoppa till satsen som följer switch-satsen

Villkorlig operatören Outline /* Villkorlig. java * Illustrerar anv ä ndandet av den villkorlig sats public class Villkorlig { //lä ser in två tal och skriver ut vilket är större int x,y,max ; System.out. print (" Skriv in ett heltal : " ); x = scan. nextint (); System.out. print (" Skriv in ett heltal : " ); y = scan. nextint (); max = (x>y? x : y); System.out. println (" Maximum för " + x + " och " + y + " är :" + max ); Inför Lab 1 Räkna växelpengar I Webreg htttps://www.ida.liu.se/webreg/ I förberedelseuppgifter I Om man ska betala 13.90 men lämnar en 50-lapp, vilken växel bör man få tillbaka? I 36.10 totalt, men vilka valörer? I Operatorn / genomför heltalsdivision när båda operanderna är heltal: 7=5 == 1 I Om en av operanderna är en flyttal kan man för en liknande effekt använda Math.floor(a/b) I Operatorn % är för modulo, i.e., ge rest vid heltalsdivision: 7%5 == 2.