Tentamen , Grundläggande programmering i Java

Relevanta dokument
Tentamen , Introduktion till Java, dtaa98, dtea53

System.out.println("Jaså du har "+ antaldollar + " stycken.");

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

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

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

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

1 Grafiska komponenter, händelsehantering

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

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

OOP Objekt-orienterad programmering

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

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

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

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

Tentamen. Lösningsförslag

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

F4. programmeringsteknik och Matlab

OOP Objekt-orienterad programmering

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

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.

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Laboration 13, Arrayer och objekt

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

OOP Tenta

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

JAVAUTVECKLING LEKTION 4

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.

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

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

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

DAT043 Objektorienterad Programmering

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Objektorienterad programmering i Java

TENTAMEN OOP

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

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

Del A (obligatorisk för alla)

Föreläsning 3-4 Innehåll

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

Språkkonventioner och redigering av tal.

SMD 134 Objektorienterad programmering

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Chapter 4: Writing Classes/ Att skriva egna klasser.

OOP Objekt-orienterad programmering

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

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

Typkonvertering. Java versus C

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

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

Föreläsning 1 & 2 INTRODUKTION

Malmö högskola 2008/2009 CTS

4.4 Swing ett interaktivt grafiskt gränssnitt

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

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

Föreläsning REPETITION & EXTENTA

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

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

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 OOP

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Tentamen FYTA11 Javaprogrammering

1 Iteration. 1.1 for-satsen

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

JAVAUTVECKLING LEKTION 7

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

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Lösningar för tenta 3 DAT043,

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

Del A (obligatorisk för alla)

Föreläsning 6: Metoder och fält (arrays)

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

TDDC77 Objektorienterad Programmering

2D1342 Programkonstruktion för F1, ht 2006

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

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

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

Mer om grafiska komponenter. Händelsestyrda program

Input. Programmering. Andra källor

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Skillnader mellan Python och Java

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Tentamen i Programmering

HI1024 Programmering, grundkurs TEN

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

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)

PROGRAMMERING-Java TENTAMINA

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

OOP Objekt-orienterad programmering

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:

Transkript:

Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java Uppgifter Läs skrivninsanvisningarna och följ dessa! Överträdelse har menlig inverkan på bedömning 1. Beskriv exekveringen av en javaapplikation. Hur skiljer den sig från en vanlig applikation? Lösningen ska minst innehålla - javaprogramkod kompileras till javabytekod - javabytekoden kan köras av en javatolk - javatolken är specifik för en speciell plattform/operativsystem - en vanlig applikation kan bara köra på en plattform, en java applikation kan i princip köras på alla javatolkar/plattformar 2. 3 p 3. 3 p Hur skiljer sig typerna double och Double? double är en enkel typ som representerar ett värde. Double är en klass som innehåller bland annat hjälpfunktioner till typen double; i synnerhet String-> double omvandling Not: Flera var inne på Scannerklassens metod nextdouble(), nextdouble() har ingenting med Double att göra, det är två helt olika namn. På samma sätt som System.out.print inte har någonting med typen int att göra. Det versala D i nextdouble kommer ju av namngivningskonventionen. Beskriv utförligt skillnaden mellan en klass och ett objekt. En klass är en beskrivning av ett objekt. Då en klass instansieras skapas ett objekt, med hjälp av en konstruerare. Objekt har en (klass)typ, klasser är en typ. 4. 5. Vilka namngivningskonventioner för identifierare finns i Java? Beskriv konventionen för medlemmar och klasser. Vad innebär "camel case"? Medlemmar - inleds med gemen, därefter camelcase. Klasser - inleds med Versal därefter CamelCase. CamelCase innebär att varje ord avstavas med versal. VarjeOrdAvstavasMedVersal. En konvention är en gemensamma överenskommelser som inte är implementerade i syntaxregler. Om det är ord man inte förstår på en tenta har man möjligheten att ställa frågor om frågan (naturligtvis aldrig om lösningen). Det finns som regel ordböcker och liknande till hjälp också. Vad blir utskriften av följande kompletta program? Motivera import java.text.*; public class Main{

Sid:2(3) public static void main(string [] a){ double sum = 0; for(int i=0;i< 100000;i++) sum += Math.random(); double result = sum/100000; DecimalFormat df=new DecimalFormat("0.00"); System.out.println( df.format( result ) ); Det är inte en slamkrypare! Det finns ett svar till uppgiften! Satsen sum += Math.random() itereras 100000 gånger. Math.random() ger ett värde mellan 0(inklusive) och 1(exklusive). Alltså måste sum efter iterationen ha ett värde som är större än 0 och mindre än 100000. Efter divisionen är värdet mellan 0 och 1. (denna del ger max två poäng) Ett slumpvärde kan liknas vid en slantsingling, det är lika vanligt att krona kommer upp som att klave kommer upp, så efter 100000 slantsinglingar har ungefär lika många krona som klave kommit upp, säg 50000 vardera. Om man tilldelar krona värdet 0, och klave värdet 1, max och min på slumpvärdet, blir summan alltså ungefär 50000 (mindre än +- 300 de flesta gångerna, för de som läst statistik på högskolan). Summar summarum, medelvärdet av flera slumptal ligger troligtvis i mitten av intervallet, det behövs ingen matematik för att inse det, man måste däremot tänka sig en körning av programmet och höfta värden på Math.random(). Utskriften blir 0.50. Denna betydligt svårare del av uppgiften ger max två poäng.

Sid:3(3) 6. 8 p 7. Skriv ett fullständigt javaprogram som producerar följande användardialog och utskrift: Hur många rader? 6 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 Användaren har matat in heltalet 6, och programmet skriver därför sex rader. Kärnan i lösningen är två for-satser, där den yttre for-satsen ger den inre for-satsen maxvärde. Som for(int rad=1;rad<=antalrader;rad++){ for(int kolumn=1;kolumn<=rad;kolumn++){ System.out.print(kolumn+" "); Eller att man lägger till motsvarande siffra för varje rad. Som String värden = ""; for( int i = 1;i<= antalrader;i++){ värden = värden + i + " "; System.out.println( värden ); Betrakta programavsnittet Scanner keyb = new Scanner(System.in); int i = keyb.nextint(); if ( villkor ){ System.out.println("Villkoret är sant!"); Skriv villkor så att villkoret är sant om a) heltalet i ligger i intervallet, från och med 1 till och med 3. ( i >=1 && i<=3) b) heltalet i ligger utanför intervallet från och med 1 till och med 3. ( i<1 i>3 ) c) heltalet i är udda. ( i%2 == 1 ), eller (i%2!= 0) 8. 5 p Beskriv steg för steg, algoritmen för sorteringsmetoden selection sort. se anteckningar

Sid:4(3) 9. 8 p 10. Skriv ett komplett program som skriver ut antalet textrader i en fil på skärmen. Textfilens namn är C:\texts\largefile.txt Du ska i din lösning använt klasserna FileReader och BufferedReader. Om du glömt bort vilka metoder som klasserna innehåller, så gissa. En rimlig gissning ger färre poängadrag. Glöm inte try / catch. Undantaget som ska fångas är av typen IOException. Lösningen innehåller följande steg (med klassdeklaration, main och deklarationer) try{ FileReader fr = new FileReader("c:\\texts\\largefile.txt"); BufferedReader reader = new BufferedReader( fr ); while( reader.readline()!= null ) nlines++; catch( IOException ioe){ System.out.println( nlines ); Följande är ett uttdrag ur dokumentationen av metod i klassen JOptionPane static String showinputdialog(component parentcomponent, Object message) Shows a question-message dialog requesting input from the user parented to parentcomponent. Förklara utförligt vad det står. Ge utifrån din förklaring ett exempel på hur metoden kan anropas. Frågan gäller vad som står i utdraget, ingenting annat. statisk metod - man använder Klassnamn.showInput... för att anropa metoden. returnerar ett Stringvärde - man har ett objekt av typen string i vänsterledet vid en tilldelning av metodens returvärde; String s = JOptionPane.ShowInput Component parentcomponent - Detta argument ger inga poängavdrag. Anger vilket fönster som är förälder till meddelanderutan. Används för att positionera fönstret. Object message - Anger vilket meddelande/fråga som ska visas i rutan. Ex: String answer = JOptionPane.showInputDialog( null, "Vad är svaret?");

Sid:5(3) 11. 12. Vilken funktion har klassen JScrollPane? Måste man instantiera klassen för att den ska vara användbar? Varför? Att förse olika komponenter med Rullningslister, ex en JEditorPane. Ja, klassen måste instansieras. Av flera anledningar - JScrollPane har inte staticmedlemmar för att påverka rullningslisterna - Varje rullningslist är oberoende av andra rullningslister - I NetBeans ger man JScrollPane-komponenten ett unikt namn. alltså är det ett objekt. Beskriv funktionen layouthanteraren BorderLayout En BorderLayout har 5 ytor, NORTH, SOUTH, WEST, EAST och CENTER. Med hjälp av borderlayout kan man placera in (max) 5 komponenter, i en yta avsedd för en komponent.