Föreläsning 3. Iteration while-satsen
|
|
- Ebba Dahlberg
- för 7 år sedan
- Visningar:
Transkript
1 Föreläsning 3 Iteration while-satsen
2 Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har en begränsad storlek och representerar således endast en delmängd av de verkliga talen. Detta innebär att ett resultat eller ett mellanresultat från en beräkning av ett uttryck kan bli ett värde som inte kan lagras. Resulterar uttrycket i ett för stort värde uppstår overflow och om uttrycket resulterar i ett för litet värde uppstår underflow. Reella tal lagras med ett bestämt antal signifikanta siffror, vilket innebär att det vid beräkningar uppstår trunkeringsfel och kancellationsfel.
3 Datatypen double Exempel: Antag att vi lagrar decimala tal med 4 decimaler. Uttrycket 1.0/ / /3.0 kommer då att evalueras på följande sätt: 1.0/ / /3.0 = = resultatet blir inte 1.0, som man kanske trott! Konsekvens: När man handhar reella tal skall man aldrig jämföra på exakthet, utan istället jämföra på tillräcklig noggrannhet.
4 Problemexempel I en triangel kan man beteckna sidorna a, b och c. Om man känner till längden av sidorna a och b samt vinkeln mellan dessa sidor, kan man räkna ut längden av sidan c med hjälp av formeln: c= a 2 b 2 2ab cos Skriv ett program som läser in längderna på två sidor i en triangel och vinkeln mellan dessa sidor (uttryckt i grader). Programmet skall avgöra om triangeln är liksidig (alla sidor lika långa), likbent (två sidor lika långa) eller oliksidig (inga sidor är lika långa). Programmet skall ge lämpliga utskrifter.
5 Analys: Indata: Längderna A och B på två sidor i triangeln, samt den mellanliggande vinkeln VG i grader. Utdata: Utskrift av huruvida triangeln är liksidig, likbent eller oliksidig. Design: Diskussion: I klassen Math i Java anges parametrarna till de trigonometriska funktionerna i radianer. Därför är en omvandling av vinkeln från grader till radianer nödvändig att göra. Detta omvandling kan antingen göras genom att använda metoden toradians i klassen Math, eller genom att använda formeln VR = VG /180 där VR är vinkeln uttryckt i radianer och VG är vinkeln uttryckt i grader. För att två sidor skall betraktas som lika antas att sidornas längder skiljer sig med mindre än längdenheter.
6 Algoritm: 1. Läs längderna på sidorna A och B, samt gradtalet VG av den mellanliggande vinkeln. 2. Beräkna VR som den mellanliggande vinkeln uttryckt i radianer med hjälp av formeln VR = VG / Beräkna längden C av den den okända sidan i triangeln med hjälp av formeln C= A 2 B 2 2AB cos VR 4. Om A - B och A - C och B - C så skriv ut att triangeln är liksidig annars om A - B eller A - C eller B - C så skriv ut att triangeln är likbent annars skriv ut att triangeln är oliksidig. Varför måste vi göra jämförelsen B C Datarepresentation: Längderna A, B och C samt vinklarna VG och VR är av datatypen double. Konstanten PI, för att avbilda finns tillgänglig i klassen Math. Konstanten EPS = 0.001, för att avbilda.
7 Implementation: /* Programmet läser in längderna av två sidor i en triangel samt mellanliggande vinkel, /* och skriver ut huruvidatriangeln är liksidig, likbent eller oliksidig. */ import javax.swing.*; import java.util.*; public class Triangel { public static void main( String[] arg) { final double EPS = 0.001; String indata = JOptionPane.showInputDialog("Ange längden av två sidor samt" + " mellanliggande vinkel: "); Scanner sc = new Scanner(indata); double a = sc.nextdouble(); double b = sc.nextdouble(); double vgrader = sc.nextdouble(); double vradianer = vgrader*math.pi/180.0; double c = Math.sqrt(a*a + b*b - 2.0*a*b*Math.cos(vRadianer)); if ((Math.abs(a - b) <= EPS) && (Math.abs(a - c) <= EPS) && (Math.abs(b - c) <= EPS)) JOptionPane.showMessageDialog(null,"LIKSIDIG"); else if ((Math.abs(a -b) <= EPS) (Math.abs(a - c) <= EPS) (Math.abs(b - c) <= EPS)) JOptionPane.showMessageDialog(null,"LIKBENT"); else JOptionPane.showMessageDialog(null, "OLIKSIDIG"); // main // Triangel
8 Styrstrukturerna i Java Sekvens: Selektion: Iteration: tilldelningssatsen selektionssatser iterationssatser return-satsen anrop av void-metod programblock exception if-satsen switch-satsen while-satsen do-while-satsen for-satsen
9 Olika typer av iteration a) ett på förhand bestämt antal gånger (räkneloop) b) tills ett visst villkor blivit uppfyllt (villkorsloop). Exempel: a) Gå fem steg framåt (räkneloop) b) Rör om tills smöret har smält (villkorsloop).
10 Iteration: while-satsen villkor false Upprepning av en sats: while (villkor) sats; sats true Upprepning av ett programblock: while (villkor) { sats1;... satsn;
11 Exempel: Räkneloop import javax.swing.*; public class Loop1 { public static void main (String[] arg) { String indata = JOptionPane.showInputDialog("Ange antalet utskrifter:"); int number = Integer.parseInt(indata); int count = 0; String utdata = ""; while (count < number) { count = count + 1; utdata = utdata + "Detta är utskrift " + count + '\n'; JOptionPane.showMessageDialog(null, utdata); //main //Loop1
12 Problemexempel Antalet bakterier y n i en bakterieodling efter t tidsenheter ges av formeln y n = y s e 1.386t där y s är antalet bakterier vid t = 0. Skriv ett program som beräknar hur många tidsenheter det tar innan en bakterieodling som innehåller en bakterie innehåller minst 1 miljard bakterier.
13 Analys: Indata: Ingen Utdata: Hur lång tid det tar innan bakterieodlingen innehåller minst 1 miljard bakterier. Design: Algoritm: 1. Sätt tillväxttiden tid till Sätt ystart, antalet bakterier vid tiden 0, till Sätt totala antalet bakterier i odlingen ytotal till ystart. 4. Upprepa så länge som ytotal är mindre än Öka tid med Beräkna ytotal mha formeln ytotal = ystart * e 1.386*tid 5. Skriv ut värdet av tid. Datarepresentation: tid är av datatypen int. ystart och ytotal är reella tal, dvs av datatypen double.
14 Implementation: import javax.swing.*; public class Bakterier { public static void main( String[] arg) { int tid = 0; double ystart = 1; double ytotal = ystart; while (ytotal < 1.0e9) { tid = tid + 1; ytotal = ystart*math.exp(1.386*tid); JOptionPane.showMessageDialog(null, "Det tar " + tid + " tidsenheter innan" + " odlingen innehåller 1 miljard bakterier."); //main //Bakterier
15 Konstruktionen while (true) { satser innebär en evighetsloop. Evighetsloop och satsen break En loop kan när som helst lämnas med hjälp av satsen break: while (villkor) {... if (villkor för att sluta) break;... Observera att vid nästlade loopar lämnas den loop i vilken break-satsen står! while (villkor) {... while (villkor) {... if (villkor för att sluta) break;......
16 Exempel: Inläsningskontroll import javax.swing.*; public class Loop2 { public static void main (String[] arg) { int talet; while (true) { String indata = JOptionPane.showInputDialog("Ange ett tal mellan 1 och 200:"); talet = Integer.parseInt(indata); if (talet >= 1 && talet <= 200) break; JOptionPane.showMessageDialog(null, "Ogiltigt tal! Försök igen!"); JOptionPane.showMessageDialog(null, "Det accepterade talet är " + talet); //main //Loop2
17 Variablers räckvidd En variabels räckvidd är det kodavsnitt inom vilket variabeln går att använda. Grundprincip: En variabel är synlig endast inom det programblock där variabeln deklarerats. public static void main (String[] arg) { int talet; while (true) { String indata = JOptionPane.showInputDialog("Ange ett tal:"); talet = Integer.parseInt(indata); if (talet >= 1 && talet <= 200) break; JOptionPane.showMessageDialog(null, "Ogiltigt tal! Försök igen!"); JOptionPane.showMessageDialog(null, "Det accepterade talet är " + talet); //main Variabeln talet känd här! Variabeln indata okänd här!
18 Exempel: Upprepad programkörning import javax.swing.*; import java.text.*; import java.util.*; public class Cylinder3 { public static void main (String[] arg) { while (true) { String indata = JOptionPane.showInputDialog("Ange cylinderns radie och höjd:"); if (indata == null) break; Scanner sc = new Scanner(indata); double radie = sc.nextdouble(); double höjd = sc.nextdouble(); double volym = Math.PI * Math.pow(radie,2) * höjd; NumberFormat r = NumberFormat.getInstance(); r.setmaximumfractiondigits(2); r.setminimumfractiondigits(2); Cancel-knappen returnerar null JOptionPane.showMessageDialog(null, "Volymen av cylindern är " + r.format(volym)); //while //main //Cylinder3
19 Problemexempel Skriv ett program som läser en indataserie bestående av N positiva heltal samt beräknar och skriver ut medelvärdet av dessa tal. Analys: Indata: Antalet tal i dataserien samt själva dataserien. Utdata: Medelvärdet av talen i dataserien. Speciella åtgärder: Om inga tal ingår i dataserien kan inte medelvärdet beräknas. Design: Utkast till algoritm: 1. Läs in antalet heltal som ingår i dataserien till variabeln antal. 2. Läs talen och beräkna talens sammanlagda summa i variabeln summa. 3. Beräkna medelvärdet medel mha formeln medel = summa / antal. 4. Skriv ut medelvärdet, dvs värdet av variabeln medel.
20 Mer detaljerad algoritm: 1. Läs in antalet heltal som ingår i dataserien till variabeln antal. 2. Sätt summa till Upprepa antal gånger 3.1. Läs ett tal till variabeln tal Addera summa och tal och spara resultatet i summa. 4. Om antal > 0 så 4.1. Beräkna medelvärdet medel mha formeln medel = summa / antal 4.2. Skriv ut medelvärdet medel annars 4.3. Skriv ut att inga värden ingick i dataserien. Datarepresentation: antal, summa och tal är heltal av typen int. medel är ett reellt tal av typen double.
21 Implementation: import javax.swing.*; public class AdderaSerie { public static void main( String[] arg) { String indata = JOptionPane.showInputDialog("Ange antalet tal i serien:"); int antal = Integer.parseInt(indata); int summa = 0; int i = 0; while (i < antal) { i = i + 1; indata = JOptionPane.showInputDialog("Ange tal nr " + i + ": "); int tal = Integer.parseInt(indata); summa = summa + tal; if (antal > 0) { double medel = (double) summa / (double) antal; JOptionPane.showMessageDialog(null, "Medelvärdet av talen är "+ medel); else JOptionPane.showMessageDialog(null, "Inga tal ingick i serien!"); // main // AdderaSerie
22 Problemexempel Skriv ett program som läsa och beräkna medelvärdet av ett okänt antal positiva heltal. Serien av heltalen avslutas med ett negativt heltal (vilket inte ingår i serien). Analys: Indata:Talen i dataserien som skall läsas in, samt ett negativt tal som avbryter inläsningen. Utdata: Medelvärdet av talen som ingår i dataserien. Speciella åtgärder: Om inga tal ingår i dataserien kan inte medelvärdet beräknas.
23 Design: Algoritm: 1. Sätt summa till 0 och antal till Läs ett tal till variabeln tal. 3. Upprepa så länge som tal Öka antal med Addera summa och tal och spara resultatet i summa Läs ett tal till variabeln tal. 4. Om antal > 0 så 4.1. Beräkna medelvärdet medel mha formeln medel = summa/antal 4.2. Skriv ut medelvärdet medel annars 4.3. Skriv ut att inga värden ingick i dataserien. Datarepresentation: antal, summa och tal är heltal av typen int.
24 Implementation: import javax.swing.*; public class AdderaSerie2 { public static void main( String[] arg) { int antal = 0; int summa = 0; String indata = JOptionPane.showInputDialog("Ange tal nr " + (antal+1) + ":"); int tal = Integer.parseInt(indata); while (tal >= 0) { antal = antal + 1; summa = summa + tal; indata = JOptionPane.showInputDialog("Ange tal nr " + (antal + 1 ) + ":"); tal = Integer.parseInt(indata); if (antal > 0) { double medel = (double) summa / (double) antal; JOptionPane.showMessageDialog(null, "Medelvärdet av talen är "+ medel); else JOptionPane.showMessageDialog(null, "Inga tal ingick i serien!"); // main // AdderaSerie2
25 Problemexempel Skriv ett program som läsa och beräkna medelvärdet av ett okänt antal heltal. Analys: Diskussion: Nu kan alla heltal ingå i dataserien och hur skall vi då kunna markera slutet på serien? Ett sätt är att utnyttja Cancelknappen i dialogrutan. När man trycker på Cancel returneras värdet null. Indata: Talen i dataserien som skall läsas in. Inläsningen avbryts genom att trycka på Cancel-knappen i dialogrutan. Utdata: Medelvärdet av talen som ingår i dataserien. Speciella åtgärder: Om inga tal ingår i dataserien kan inte medelvärdet beräknas.
26 Design: Algoritm: 1. Sätt summa till 0 och antal till Gör en inläsning från dialogfönstret till variabeln indata. 3. Upprepa så längs som indata inte är null 3.1. Öka antal med Konvertera indata till heltalet tal Addera summa och tal och spara resultatet i summa Gör en inläsning från dialogfönstret till variabeln indata. 4. Om antal > 0 så 4.1. Beräkna medelvärdet medel med hjälp av formeln medel = summa/antal 4.2. Skriv ut medelvärdet medel annars 4.3. Skriv ut att inga värden ingick i dataserien. Datarepresentation: antal, summa och tal är heltal av typen int. medel är ett reellt tal av typen double.
27 Implementation: import javax.swing.*; public class AdderaSerie3 { public static void main( String[] arg) { int antal = 0; int summa = 0; String indata = JOptionPane.showInputDialog("Ange nästa tal i serien\n" + "Avsluta med Cancel"); while (indata!= null) { int tal = Integer.parseInt(indata); antal = antal + 1; summa = summa + tal; indata = JOptionPane.showInputDialog("Ange nästa tal i serien\n" + "Avsluta med Cancel"); if (antal > 0) { double medel = (double) summa / (double) antal; JOptionPane.showMessageDialog(null, "Medelvärdet av talen är "+ medel); else JOptionPane.showMessageDialog(null, "Inga tal ingick i serien!"); // main // AdderaSerie3
28 Implementation: Med användning av Scanner import javax.swing.*; import java.util.*; public class AdderaSerie4 { public static void main( String[] arg) { int antal = 0; int summa = 0; String indata = JOptionPane.showInputDialog("Ange talen i serien\n" + "eller avsluta med Cancel"); while (indata!= null) { Scanner sc = new Scanner(indata); while (sc.hasnext()) { int tal = sc.nextint(); antal = antal + 1; summa = summa + tal; indata = JOptionPane.showInputDialog("Ingår fler tal i serien så ge dessa\n" + "eller avsluta med Cancel"); if (antal > 0) { double medel = (double) summa / (double) antal; JOptionPane.showMessageDialog(null, "Medelvärdet av talen är "+ medel); else JOptionPane.showMessageDialog(null, "Inga tal ingick i serien!"); // main // AdderaSerie4
29 Iteration: do-while-satsen Java har en variant av while-satsen, do-while-satsen. true sats villkor false do sats; while (villkor); eller do { satser while (villkor); I en while-satsen beräknas testuttrycket inför varje varv i loopen. I en do-while-satsen beräknas testuttrycket efter varje varv i loopen. En do-while-sats genomlöps minst en gång, medan en while-sats kan genomlöpas noll gånger.
30 Exempel: Inläsningskontroll med do-while-satsen import javax.swing.*; public class Loop3 { public static void main (String[] arg) { int talet; do { String indata = JOptionPane.showInputDialog("Ange ett tal mellan 1 och 200:"); talet = Integer.parseInt(indata); if (talet < 1 talet > 200) JOptionPane.showMessageDialog(null, "Ogiltigt tal! Försök igen!"); while (talet <1 talet > 200); JOptionPane.showMessageDialog(null, "Det accepterade talet är " + talet); //main //Loop3
Iteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
Föreläsning 3. Iteration. while-satsen for-satsen do-satsen
Föreläsning 3 Iteration while-satsen for-satsen do-satsen Datatypen double De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har en begränsad storlek och representerar således
Föreläsning 3. Föreläsning 3. Iteration. while-satsen for-satsen do-satsen. while-satsen. do-satsen. Datatypen double
Föreläsning 3 Föreläsning 3 Iteration while-satsen for-satseniteration do-satsen while-satsen for-satsen do-satsen Datatypen double De enkla datatyperna, som används för att lagra tal (t.ex. int och double),
Iteration. Föreläsning 3. TDA540 - Objektorienterad Programmering
Iteration Föreläsning 3 TDA540 - Objektorienterad Programmering Meddelande Kursrepresentanter: - Mattias Ajander, Daniel Hultgren, Sanna Sandberg - Mejladresserna finns på kurshemsidan Jätte välkommen
Föreläsning 3. Föreläsning 3
Datatypen De enkla datatyperna, som används för att lagra tal (t.ex. int och ), har en begränsad storlek och representerar således endast en delmängd av de verkliga talen. Föreläsning 3 Detta innebär att
Föreläsning 3. Föreläsning 3
Datatypen De enkla datatyperna, som används för att lagra tal (t.ex. int och ), har en begränsad storlek och representerar således endast en delmängd av de verkliga talen. Föreläsning 3 Detta innebär att
Objektorienterad programmering
Objektorienterad programmering Iteration: while-satsen, for-satsen och do-satsen Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Meddelande Studentrepresentanter Reflektera
Föreläsning 7. for-satsen Fält
Föreläsning 7 for-satsen Fält for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: for (initiering; villkor; ändring) sats; for-satsen är ekvivalent med följande
Föreläsning 2. Primitiva datatyper Selektering
Föreläsning 2 Primitiva datatyper Selektering Hit kom vi förra föreläsningen /* Programmet läser in och adderar två heltal, samt skriver ut resultatet. */ import javax.swing.*; public class Addera { public
Lösningsförslag: Instuderingsfrågor, del A
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del A Följande regler gäller för namngivning av identifierare i Java: 1. Ett identifierarnamn består endast av bokstäver,
Primitiva datatyper Selektering
Hit kom vi förra föreläsningen TDA143 I1 Programmerade system Föreläsning 2 (OH-bilder 2) Primitiva datatyper Selektering /* Programmet läser in och adderar två heltal, */ /* samt skriver ut resultatet
JAVAUTVECKLING LEKTION 4
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
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:
for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: TDA143 I1 Programmerade system Föreläsning 8 (OH-bilder 7) for-satsen for ( initiering; villkor; ändring) sats;
Föreläsning 8. Klassen String Mer om fält Klassen ArrayList
Föreläsning 8 Klassen String Mer om fält Klassen ArrayList Standardklassen String Texter handhas i Java med standardklassen String. Ett objekt av klassen String består av en följd av tecken, dvs element
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Input/Output Programsatser Selektion Output OOP F2:2 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println(
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Primitiva datatyper och selektering
Primitiva datatyper och selektering Föreläsning 2 TDA540 - Objektorienterad Programmering Extra föreläsning imorgon! HC4 15:15-17:00 Sammanfattning föreläsning 1 Vad är en dator? Vad är ett program? Kompilera
Föreläsning 2. Föreläsning 2. Primitiva datatyper Selektering. Primitiva datatyper Selektering. Operationer på datatypen double
Föreläsning 2 Primitiva datatyper Selektering Föreläsning 2 Primitiva datatyper Selektering Operationer på datatypen double Notation Betydelse Resultatets datatyp a + b addition double a - b subtraktion
Klassen String Mer om fält Något om inläsning
Standardklassen String TDA43 I Programmerade system Föreläsning (OH-bilder 8) Klassen String Mer om fält Något om inläsning Christer Carlsson Texter handhas i Java med standardklassen String. Ett objekt
Laboration 1. "kompilera"-ikonen "exekvera"-ikonen
Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva
PROGRAMMERING-Java Omtentamina
PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -
Föreläsning 2. Primitiva datatyper Selektering. Operationer på datatypen double. Motsvarande operationer finns för float. a + b addition double
Föreläsning 2 Primitiva datatyper Selektering Operationer på datatypen double Notation Betydelse Resultatets datatyp a + b addition double a - b subtraktion double a * b multiplikation double a / b division
Föreläsning 6. Top-Down Design Parameteröverföring
Föreläsning 6 Top-Down Design Parameteröverföring Abstraktion Ett datorprogram är en modell av verkligheten. Ofta är det komplexa system som skall modelleras. För att lyckas utveckla ett större program
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 150418 a) i) Utskriften blir: ii) [8, 3, 9, 4, 5] Metoden mystery flyttar om elementen i fältet arr på så sätt att alla elementen, förutom det första, flyttas ett
Objektorienterad programmering
Objektorienterad programmering Föreläsning 2: primitiva datatyper och selektering Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Några meddelande Studentrepresentanter
Mer om klasser och objekt
Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140423 a) Vad kompilatorn klagar på är att metoden Math.sqrt() inte finns! Detta kan ju verka något mystiskt eftersom vi alla vet att det i klassen Math finns en
1 Iteration. 1.1 for-satsen
1 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion
Föreläsnings 9 - Exceptions, I/O
Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 110317 a) Sant. b) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser. c) Falskt. TCP är ett protokoll på transportlagret. d) Falskt. Binärsökning
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Laboration 1. Objektorienterad programmering, Z1. Syfte
Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i
Metoder och top-down design
Metoder och top-down design Föreläsning 4 TDA540 - Objektorienterad Programmering Meddelande Bara några dagar kvar till laboration 1 deadlinen Läs textboken, läsanvisningar finns på hemsidan Kom ihåg flödet:
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Instuderingsfrågor, del B
Uppgift 1. Vad skrivs ut i nedanstående programsekvenser? Uppgift 2. Instuderingsfrågor, del B a) int minutes = 10; while ( minutes
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
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å
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Malmö högskola 2012/2013 Teknik och samhälle
Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska
Föreläsning 2. Föreläsning 2
Operationer på datatypen Notation Föreläsning 2 Primitiva datatyper Selektering Betydelse Resultatets datatyp a+b addition a-b subtraktion a*b multiplikation a/b division a%b modulus (rest vid division)
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Föreläsning 2. Föreläsning 2
Operationer på datatypen Notation Föreläsning 2 Primitiva datatyper Selektering Betydelse Resultatets datatyp a+b addition a-b subtraktion a*b multiplikation a/b division a%b modulus (rest vid division)
Operationer på datatypen double
Operationer på datatypen double Notation Betydelse Resultatets datatyp a + b addition double a - b subtraktion double a * b multiplikation double a / b division double a % b modulus (rest vid division)
Objektorienterad programmering
Objektorienterad programmering Föreläsning 4: metoder och top-down design Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Några meddelande Bara några dagar kvar till
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 150117 a) Utskriften blir: 7 Metoden returnerar värdet av den största siffran som ingår i talet som skickas till metoden. b) Utskriften blir k= 5 a= [3, 1] b= [3,
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.
Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och
1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Variabler och konstanter
Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Laboration 1. "kompilera"-ikonen "exekvera"-ikonen
Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i
Malmö högskola 2008/2009 CTS
Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska
Inledande programmering med C# (1DV402) Summera med while"-satsen
Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får
//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.
/*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/
Föreläsningsmaterial (Logik, if-satsen & iteration)
Föreläsningsmaterial (Logik, if-satsen & iteration) Logiska uttryck och boolska variabler Relationsoperatorer i Java Relationsoperatorer i java Lika med == Ej lika med!= Större än > Större än eller lika
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 160315 a) Falskt. 8A 16 = 138 10 = 10001010 2 b) Falskt. Enligt Moores lag fördubblas antal transistorer som ryms på en given yta var 18:e månad. c) Sant. Sant.
Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser
// En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Instuderingsfrågor, del A
Uppgift 1. Instuderingsfrågor, del A Objektorienterad programmering, Z1 Vilka av följande identifierare är ogiltiga i Java? Motivera. a) Benny b) any.time c) any_time d) intnumber e) INTNUMBER f) 1stStreet
System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);
1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER
Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas
Grundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit
Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar
I ett program hantera man ofta samlingar av objekt av samma typ.
Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 131220 a) Första felet beror på att namnet på klassen är felstavat i konstruktorn! Således har vi ingen konstruktor utan en metod med namnet Trubel. En metod måste
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -
2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]
Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B2 och V1. Tentamen (1p) 12 januari 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas som en javabok.
Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:
(22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard
Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)
Villkor och tester Ett program består i princip av: Deklarationer som inför variabler, dvs namngivna minnesceller som används för att lagra data. int a; double radie=1.0, yta; double d = 4.5; String s
OOP Objekt-orienterad programmering
OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.
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.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
PROGRAMMERING-Java TENTAMINA
PROGRAMMERING-Java TENTAMINA Nicolina Månsson 2010-03-17 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För
JAVAUTVECKLING LEKTION 3
JAVAUTVECKLING LEKTION 3 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Numeriska typer Inläsning av numerisk data Numeriska typomvandlingar Standardklassen Math Villkorskonstruktioner
Lösningsförslag till tentamen 150317
Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)
Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
Testning och felhantering
Testning och felhantering Föreläsning 8 TDA540 - Objektorienterad Programmering Sammanfattning Textfiler Flerdimensionella fält ArrayList (dynamiska vs. statiska datastrukturer) Shorthand operatorer Testning
Objektorienterad programmering
Objektorienterad programmering Föreläsning 8: testning och felhantering Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Sammanfattning föreläsning 7 Skriva och läsa
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Lösningsförslag till tentamen
Uppgift 1 a) Falskt! Bitmönstret är 10010111 b) Falskt! Memory Manager handhar Lösningsförslag till tentamen 170609 c) Falskt. En trojansk häst är ett program i förklädnad. Det är således program som på
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 170314 a) Falskt. Talområdet för ett 8-bitars tal på tvåkomplementsform är -128 till 127. b) Sant. c) Falskt, HTTP är ett kommunikationsprotokoll som används för
Föreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Föreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer
F6 Observera att när man utvecklar program så är inte alla lösningar på vägen korrekta. Speciellt den här gången så finns många OH med program som inte fungerar eftersom det är just det vi skall se på
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean
Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)
Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades
Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada
Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar
Föreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet