Malmö högskola 2007/2008 Teknik och samhälle



Relevanta dokument
Malmö högskola 2008/2009 CTS

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

Laboration 13, Arrayer och objekt

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

Laboration 12, Arrayer

Laboration A Objektsamlingar

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2008/2009 CTS

Statistik över heltal

Iteration while-satsen

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

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.

Föreläsning 3. Iteration while-satsen

PROGRAMMERING-Java Omtentamina

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

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

OOP Tentamen

Laboration 10 - Eclipse

PROGRAMMERING-JAVA TENTAMINA

OOP Objekt-orienterad programmering

Tentamen i Programmering

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

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

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Imperativ programmering. Föreläsning 2

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

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

DELPROV 1 I DATAVETENSKAP

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Tentamen , Grundläggande programmering i Java

Tentamen i Grundläggande programmering STS, åk 1 lördag

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

Föreläsning 3-4 Innehåll

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

JAVAUTVECKLING LEKTION 4

Laboration 10 - NetBeans

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

OOP Objekt-orienterad programmering

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Laboration 16. Uppgift 1

Chapter 4: Writing Classes/ Att skriva egna klasser.

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

Malmö högskola 2007/2008 Teknik och samhälle

Programmering i C, 7,5 hp

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

PROGRAMMERING-Java TENTAMINA

JAVA Mer om klasser och objektorientering

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

C++ Slumptalsfunktioner + switch-satsen

Att öva på och förstå ett program med flera samverkande klasser.

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

OOP Omtenta

Rekursion och induktion för algoritmkonstruktion

D0010E. Hello world! Nedräkning. Sågtand. Övningsuppgifter i Eclipse. Skapa ett program som skriver ut "Hello world" på skärmen.

Laboration 3. Uppgift 1

Objektorienterad programmering Föreläsning 2

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

Objektorienterad programmering i Java

OOP Tenta

Uppgift 1 (grundläggande konstruktioner)

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

HI1024 Programmering, grundkurs TEN

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Planering Programmering grundkurs HI1024 HT data

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

Objektorienterad programmering D2

1 Iteration. 1.1 for-satsen

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

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

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

Objektorienterad Programmering (TDDC77)

TDDC77 Objektorienterad Programmering

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Editering, Kompilering och Exekvering av Javaprogram

Lite logik. Kap 6: Sid 2

Användarhandledning Version 1.2

TENTAMEN OOP

Tentamen i Grundläggande Programvaruutveckling, TDA548

Lösningsförslag tentamen FYTA11 Java

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

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

Tentamen i Programmeringsteknik I,, KandMa/Fy,

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Tentamen, EDA501 Programmering M L TM W K V

Uppgift 1a (Aktiekurser utan poster)

Tentamen i Programmeringsteknik I, ES,

Dugga i Grundläggande programmering STS, åk

OOP Objekt-orienterad programmering

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

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

Transkript:

Laboration 6 Avsikten med denna laboration är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration6. Uppgifterna är lätt matematiska till sin natur men det är inte matematiken som ska övas. Den är bara tacksam att använda i mindre uppgifter. Lösningar till uppgifterna och extrauppgifterna finns i slutet av laborationen. Ta inte del av dessa lösningar förrän du har gjort en egen. Iterationerna som ska tränas i laborationen är: for-sats while-sats do-while-sats Program1 Skriv klassen Intervall1 vilken ska innehålla metoden intervall. Metoden intervall ska utföra följande: låter användaren mata in två intervallgränser (heltal) skriver ut intervallet skriver ut heltalen i intervallet skriver ut summan av talen i intervallet. Intervallgränserna ska ingå i summan. Du ska använda en for-loop när du löser uppgiften. Till höger ser du ett körresultat. Startklassen ska se ut så här: public class StartP1 { Intervall1 p1 = new Intervall1(); p1.intervall(); DA129A, Programmering 1 1

Program2 Skriv en klass Intervall2, med metoden public void intervall(int min, int max) Om du sedan startar programexekveringen i StartP2 så ska programmet fungera på samma sätt som i Program1. Klassen StartP2 ser ut så här: public class StartP2 { public void program() { Intervall2 p2 = new Intervall2(); int min,max; min = extra.input.readint("ange undre intervallgränsen"); max = extra.input.readint("ange övre intervallgränsen"); p2.intervall(min,max); StartP2 prog = new StartP2(); prog.program(); Program 3 Du ska utgå från klassen StartP2 när du skriver StartP3 (även StartP3 använder Intervall2). Skillnaden mellan programmen är att det är inmatningskontroll vid inmatningen av det andra heltalet. Det andra heltalet måste var minst lika stort som det första heltalet. Om t.ex. det första inmatade talet är 15 så ska programmet endast acceptera 15 och uppåt som värde i det andra heltalet. Om användaren matar in ett för litet tal ska användaren uppmanas att mata in ett värde på nytt. Du ska göra denna kontroll med en do-while-loop. Nedan ser du ett körresultat: 2

Program 4 Program 4 ska undersöka hur många tal det behövs i en serie för att uppnå en viss summa. I serien ökar alltid värdet med ett från ett tal till nästa. Exempel på serier är 7 8 9 10 11 12 19 20 21 22 23 24 25 26 27 Exempel på körresultat: Om en serie börjar med 7 och summan 30 ska uppnås krävs 4 tal: 7+8+9+10 (= 34) Om en serie börjar med 13 och summan 100 ska uppnås krävs 7 tal: 13+14+15+16+17+18+19 Om du studerar klassen StartP4 (vilken löser problemet) så ser du att det krävs ett par metoder i denna lösning. Därför ska du lösa uppgiften i ett par steg. Du skriver dina dellösningar i klassen Termer. Program 4a Skriv metoden public int antaltermer(int startvärde, int summa) vilken ska beräkna det antal termer som behövs för att minst komma upp i summan. I det första körresultatet ovan ska metoden returnera 4 och i det andra körresultatet ska metoden returnera 7. Du kan använda nedanstående program när du testar metoden: public class StartP4a { Termer p4 = new Termer(); int termer1, termer2, termer3, termer4; termer1 = p4.antaltermer(7,30); termer2 = p4.antaltermer(13,100); termer3 = p4.antaltermer(13,93); // krävs exakt 6 termer termer4 = p4.antaltermer(13,94); // krävs 7 termer extra.output.meddelande(termer1 + ", " + termer2 + ", " + termer3 + ", " + termer4); 3

Program 4b Skriv metoden public String serie(int startvärde, int antaltermer) vilken ska returnera en sträng på formen [7,8,9,10,11,12,13,14], dvs med hakparenteser och talen uppräknade med komma emellan. Anrop Resultat p4.serie(4,11) [4,5,6,7,8,9,10,11,12,13,14] (11 tal med start på 4) p4.serie(10,3) [10,11,12] (3 tal med start på 10) Tillverka på egen hand en testklass, StartP4b, och testkör tills du är nöjd med din lösning. Program4 Nu kan du testköra StartP4.java. Program5 Du ska skriva ett program vilket låter användaren mata in ett antal utgifter (t.ex. efter en inköpsrunda). När användaren är klar klickar hon på avbryt (värdet 0 returneras). Då berättar programmet följande: Antal inköp Total kostand för inköpen Inmatningsproblematiken kan du lösa med en while-loop. Strukturen kan vara följande: Inmatning av belopp while(belopp>0) { // nödvändig kod Inmatning av belopp Exempel på programkörning 4

Program 6 Du ska skriva ett program vilket är menystyrt. Användaren ska presenteras följande meny: 1. Intervallsumma Funktion som den i Program3 2. Seriesumma Funktion som i Program4 3. Inköp Funktion som i Program5 4. Avsluta programmet avslutas Exempel på programkörning Efter valet av 2kommer samma sak hända som vid körning av Program 4. Vad som krävs för detta är dessa två rader med kod: StartP4 prog = new StartP4(); prog.program(); 5

Lösningar Program 1 public class Intervall1 { public void intervall() { int min,max,summa=0; String res; min = extra.input.readint("ange undre intervallgränsen"); max = extra.input.readint("ange övre intervallgränsen"); res = "Intervall: [" + min + "," + max + "]\n" + "Tal i intervallet:"; for(int i=min; i<=max; i++) { summa += i; res += " " + i; res += "\ntalens summa: " + summa; extra.output.meddelande(res); Program 2 public class Intervall2 { public void intervall(int min, int max) { int summa=0; String res= "Intervall: [" + min + "," + max + "]\n" + "Tal i intervallet:"; for(int i=min; i<=max; i++) { summa += i; res += " " + i; res += "\ntalens summa: " + summa; extra.output.meddelande(res); Program 3 public class StartP3 { public void program() { Intervall2 p2 = new Intervall2(); int min,max; min = extra.input.readint("ange undre intervallgränsen"); do { max = extra.input.readint("ange övre intervallgränsen, lägst " + min); while(max<min); p2.intervall(min,max); StartP3 prog = new StartP3(); prog.program(); 6

Program 4 public class Termer { public int antaltermer(int min, int summa) { int antal=0; while(summa>0) { antal++; summa -= min; min++; return antal; public String serie(int start, int antal) { String res = "["; while(antal>0) { res += start; start++; antal--; if(antal>0) res += ","; return res + "]"; --------------------------------------------------------------------- public class StartP4b { Termer p4 = new Termer(); String intervall1,intervall2,intervall3; intervall1 = p4.serie(4,11); intervall2 = p4.serie(10,3); intervall3 = p4.serie(20,0); extra.output.meddelande("intervall1: " + intervall1 + "\n" + "intervall2: " + intervall2 + "\n" + "intervall3: " + intervall3); Program 5 public class Program5 { public void program() { double belopp, summa=0, antal=0; extra.output.meddelande("programmet beräknar kostnaden för ett antal inköp."); belopp = extra.input.readdouble("ange en utgift (Avbryt för att avsluta)"); while(belopp>0) { summa += belopp; antal++; belopp = extra.input.readdouble("ange en utgift (Avbryt för att avsluta)"); extra.output.meddelande("antal inköp: " + antal +"\ntotal kostnad: " + summa); ---------------------------------------------------------------------- public class StartP5 { Program5 p5 = new Program5(); p5.program(); 7

Program 6 public class Program6 { public void programloop() { StartP3 p3 = new StartP3(); StartP4 p4 = new StartP4(); Program5 p5 = new Program5(); String meny = "ALTERNATIV\n\n1. Intervallsumma\n" + "2. Seriesumma\n3. Inköp\n4. Avsluta\n\nVälj alternativ"; int val = extra.input.readint(meny); while((val!=4) && (val!=0)) { switch(val) { case 1 : p3.program(); break; case 2 : p4.program(); break; case 3 : p5.program(); break; val = extra.input.readint(meny); ---------------------------------------------------------- public class StartP6 { Program6 p6 = new Program6(); p6.programloop(); 8