Inlämningsuppgift 1 Programmeringsteknik MN1 vt02

Relevanta dokument
Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

ID1004 Laboration 3, 5-6 November 2012

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

NetBeans 7. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Laboration 10 - Eclipse

Editering, Kompilering och Exekvering av Javaprogram

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Objektorienterad programmering i Java I

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

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

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Föreläsning 14: Grafik & mera händelsehantering

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion

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

Laboration 10 - NetBeans

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

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

OOP Objekt-orienterad programmering

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Eclipse en handledning

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

Word Grunderna 1. Om du kan det allra enklaste i Word, hoppa över uppgifterna A-E.

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Objektorienterad Programmering (TDDC77)

2 Eclipse en handledning

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

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Mer om grafiska komponenter. Händelsestyrda program

(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

Kort-kort om utdelade användarkonton och datormiljön på NADA

Att använda Java SE JDK 6

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen i Objektorienterad programmering

Vilken version av Dreamweaver använder du?

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

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

Laboration 15 Grafiskt användargränssnitt

Steg 1 Minnen, mappar, filer Windows 7

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

Hotspot låter användaren skapa genvägar till andra sidor.

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Arv och polymorfi. Lite terminologi; Basklass eller superklass: En klass som fungerar som bas för vårt arv. Vi skapar nya klasser utifrån den.

skapa genvägar till andra sidor (externa och interna)

Manual för banläggning i OCAD IF ÅLAND

Att använda Java SE JDK 6

Objektorienterad Programmering (TDDC77)

Föreläsning 14. Filhantering

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

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

ONEDRIVE ÖVERBLICK Vad är OneDrive?... 2 Molnet?... 2 Två typer av OneDrive... 2 Hitta sin OneDrive för företag... 3

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

Kompilera och exekvera Javakod

Lösningsförslag till tentamen

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

ALEPH ver. 16 Introduktion

Installationsanvisning för kursens programvara på egen dator

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

JAVAUTVECKLING LEKTION 7

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Eclipse en handledning

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

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

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

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Laboration 1 Introduktion till Visual Basic 6.0

Tentamen i Objektorienterad programmering E

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

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

JAVAUTVECKLING LEKTION 4

Välj bort om du vill. 96 Internet och e-post. 2. Mail-programmet finns i datorn. 1. Skriv mail i sökrutan. Windows Live Mail i Aktivitetsfältet.

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

FIRSTCLASS. Innehåll:

Lathund för BankID säkerhetsprogram

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

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

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Objektorienterad Programmering (TDDC77)

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

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Kom igång med. Windows 8. DATAUTB MORIN AB

Transkript:

Inlämningsuppgift 1 Programmeringsteknik MN1 vt02 Denna uppgift skall lösas individuellt och redovisas muntligt vid dator för läraren senast 2002-02-10. 1 Introduktionslaboration Uppgiftens syfte är att bekanta sig med systemet och att kunna skapa, kompilera och köra några enkla Java-program. Det är inte avsikten att du ska förstå alla detaljer i de program som du skapar nedan, det är en expose av olika möjligheter som vi ska diskutera mera under kursens gång. Börja med att logga in på ditt datorkonto. Se till att du befinner dig i din huvudkatalog. Det gör du automatiskt om du inte gör något särskilt. Börja med att starta programmet netscape. Det gör du med kommandot netscape & Sudda bort det som står i netscapes adressfält (location) och skriv dit adressen för kursens hemsida: http://www.tdb.uu.se/edu/course/homepage/progmn1/ Titta på sidan och se vad som finns där och lär dig hitta där. Du kommer antagligen att använda den en hel del under kursen. En del saker är ganska tomma i början och kommer att fyllas på under kursen. När du tittat klart kan du avsluta netscape. Skapa nu en arbetskatalog för Java, den kan t. ex. heta java. Skapa den med kommandot mkdir java Se sedan till att arbetskatalogen blir din aktuella katalog. 1

cd java Alla Javaprogram du skriver under kursen lägger du för enkelhets skull i denna katalog. Kursboken använder en del hjälpprogram som vi kommer att behöva under kursen, till exempel funktioner för att läsa och skriva flyttal. Först av allt ska du kopiera dessa hjälpprogram till din arbetskatalog. Det gör du med kommandot (se till att du skriver exakt som det står med alla tecken, inklusive mellanrum och den avslutande punkten) cp -r /it/kurs/progmn1/java/extra. Om du nu begär en lista av filer (ls kommandot) i din katalog ska du se en ny katalog med namnet extra. Du kan också titta i denna katalog (utan att byta aktuell katalog). Som du ser finns där ett antal filer. Du behöver ha dessa filer för att kunna använda bokens exempel men du behöver inte röra filerna på nåt sätt. Vi ska nu skriva in ett antal enkla Javaprogram och testköra dem. För att kunna göra detta måste du kunna använda en texteditor för att skriva in programmet. Under introduktionskursen har du använt programmet emacs. Du ska nu skriva ett Javaprogram med namnet Example1.java. Starta emacs på följande sätt: emacs Example1.java & Du får nu ett tomt fönster där du kan skriva in text. Se till att detta är ditt aktiva fönster. Skriv in följande lilla program, exakt som det står: public class Example1 { public static void main(string[] arg) { System.out.println("Välkommen till Java"); För att indentera (formatera) källkoden kan man trycka tab. Emacs kommer då att automatiskt att göra detta på den rad markören står. Man kan även få emacs att färgsätta källkoden, detta gör ingenting för pro- 2

grammets funktion, men många upplever källkoden som lättare att läsa då. Om du vill prova detta, gå in i menyn Help och sedan undermenyn Options, välj där slutligen Global Font Lock. När du skrivit in programmet, se till att du sparar det i emacs, men avsluta inte emacs. För att kunna köra programmet måste du nu kompilera programmet, dvs översätta det till något som maskinen förstår. Det gör du med kommandot ( i kommandofönstret, inte i emacsfönstret): javac Example1.java Om allting är bra nu så ska du efter en stund få tillbaka kommandopromptern i datorns fönster, om du skrev fel så har du antagligen fått ett antal felmeddelanden på skärmen. Om du fått några fel måste du rätta till dessa i emacs, spara och kompilera igen tills det blir rätt. I din javakatalog så ska nu finnas tre filer, Example1.java, Example1.class samt katalogen extra. Kolla detta med ls! För att få programmet utfört måste du starta en JVM (Java Virtual Machine). Det gör du så här: java Example1 Vad hände? Ändra nu lite grand i filen Example1.java (med hjälp av emacs), ändra lite på stavning eller lägg in några konstiga tecken. Gör om kompileringen ovan och se vad som händer. Förstår du de utskrifter som du fick? Som standard på vårt system körs Java version 1.3. Du kan kolla om vilken version av Java du använder genom att skriva java -version Förhoppningsvis kommer du att få en utskrift som ser ut som java version "1.3.1 02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1 02-b02) Java HotSpot(TM) Client VM (build 1.3.1 02-b02, mixed mode) 3

Ta kontakt med läraren om du får något annat, eftersom delar av materialet i kursen bygger på att Java-version 1.3 används. Skapa nu en ny fil Example2.java i emacs. Det kan du antingen göra genom att trycka CTRL-X CTRL-F eller genom att välja Open File i Files-menyn. I båda fallen får du sedan skriva filens namn (Example2.java) längst ned i emacsfönstret. När du gjort detta ska du ha ett tomt emacsfönster framme. Skriv nu in följande Javaprogram, precis som förut måste du skriva exakt rätt. import javax.swing.*; public class Example2{ private String utdata; public Example2(){ utdata = "Välkommen till Java"; JOptionPane.showMessageDialog(null,utdata); System.exit(0); public static void main(string[] arg){ Example2 e = new Example2(); Spara, kompilera och kör detta program precis som du gjorde förut. Vad händer? Förhoppningsvis fick du en dialogruta med texten Välkommen till Java och en OK-knapp. Stäng rutan genom att klicka på OK eller genom peka på den övre ramen och tryck ned höger musknapp. Du får då fram en meny, välj Close i denna meny för att avsluta programmet. Vi ska nu fortsätta med ytterligare ett exempel. Skapa filen Example3.java i emacs på samma sätt som tidigare. Skriv in följande program. import java.awt.*; import javax.swing.*; 4

class Example3 extends JFrame{ public Example3(){ JLabel l = new JLabel( Welcome to Java, JLabel.CENTER); getcontentpane().add(l); l.setopaque(true); l.setbackground(color.yellow); l.setforeground(color.blue); l.setfont(new Font( SansSerif,Font.BOLD,24)); setsize(400,150); setvisible(true); setdefaultcloseoperation(exit_on_close); public static void main(string[] arg){ Example3 d2 = new Example3(); Spara, kompilera och kör precis som tidigare. Denna gång får du ett fönster med en text i och inget mer. I det förra exemplet dök det också upp en OK-knapp i fönstret tillsammans med texten som du lade in. Som du såg i det första lilla programmet kan vi skriva ut saker i kommandofönstret genom att använda System.out. Det finns också en System.in för att datorn ska kunna fråga efter olika saker som du tillhandahåller. System.in är dock ganska korkad eftersom den bara kan ta emot text, inte tal (numeriska värden). För att möjliggöra detta måste man skapa lite egna utbyggnader av Java. Skansholm har i sitt extra-paket skapat två verktyg, Std.out och Std.in som ersätter System.out och System.in. Det är viktigt att komma ihåg att dessa inte ingår i Javaspråket, de är ett eget tillägg. Dock kan man använda extrapaketet på alla datorer, det är bara att själv lägga in det, så det är inte ett så stort problem. Så länge man känner till och dokumenterar att man använder paketet extra så är detta inget stort problem. Skriv in följande program, om du tycker det är för mycket att skriva kan du kopiera det från /it/kurs/progmn1/java/addsub.java. 5

import extra.*; public class AddSub { public static void main(string [] args) { double a,b; // fråga efter ett värde på a Std.out.print( Ge a s värde ); a = Std.in.readDouble(); // fråga efter ett värde på b Std.out.print( Ge b s värde ); b = Std.in.readDouble(); // räkna ut summa och skillnad double sum,diff; sum = a + b; diff = a - b; // skriv ut Std.out.println( Summan blev + sum + skillnanden blev + diff); // formatera Std.out.println( Summan blev + ExtendedWriter.formatNum(sum,6,2) + skillnanden blev + ExtendedWriter.formatNum(diff,6,2)); Kompilera detta och kör det. Ge a värdet 4.5 och b värdet 3.47. Notera att du skriver decimalpunkt och inte decimalkomma. Du kan dock ställa in Java för svensk standard om du vill, se kapitel 5 i kursboken för detaljer. Som du ser så skriver programmet först ut summan och skillnaden med väldigt många decimaler. Du ser också att de sista decimalerna är fel. Det 6

ser ut som om datorn räknar fel, kan den det? Ja alla räkningar med decimaler är alltid lite (oftast försumbart) inexakt. Därefter skrivs samma sak ut med färre decimaler, då ser man inte att värdena är lite felaktiga (fast det är de ju fortfarande, datorn har alla decimaler internt). Uttrycket ExtendedWriter.formatNum(sum,6,2) innebär att vi använder en formatterare från paketet extra (se kap 5 i boken) för att formattera svaret på ett annat sätt än standard. Vi vill ha 6 positioner, 2 decimaler. JAVA är ett språk med ett litet antal språkelement. Dessutom finns ett stort bibliotek med olika hjälpprogram. Eftersom dessa är mycket omfattande finns inte allting dokumenterat i kursboken eller i andra böcker. För att avhjälpa detta finns omfattande online-hjälp tillgänglig. Den generella javasiten är http://www.javasoft.com. Starta netscape och surfa till ovanstående adress och se vad som finns där. Du kan hitta olika saker, t. ex. gratis kompilator och JVM för Windows. Länkar till detta finns också på kursens hemsida. Dokumentationen för Java 1.1 finns på: http://java.sun.com/products/jdk/1.1/docs/api/packages.html och för Java2 (version 1.3) finns på: http://java.sun.com/products/jdk/1.3/docs/api/index.html Starta netscape och surfa till dokumentationen för java2 (det är den versionen vi använder). Leta upp dokumentation för metoderna drawoval och drawarc i klassen Graphics. Detta hittar du i paketet java.awt, klassen Graphics. Utför detta och läs hur man använder ovanstående två metoder. Java bygger på sina bibliotek och det finns inga böcker som dokumenterar allt detta. Därför måste man ofta slå upp saker via internet på detta sätt. Nu ska vi skapa ett sista exempel. Skapa en fil KattRitare.java. Den ska se ut som nedstående. Om du tycker det verkar vara jobbigt att skriva så mycket text kan du kopiera den från /it/kurs/progmn1/java/kattritare.java, du behöver dessutom skapa och kopiera filen /it/kurs/progmn1/java/katt.java. import java.awt.*; 7

import javax.swing.*; public class KattRitare extends JPanel { Font f = new Font(Serif", Font.ITALIC, 18); public KattRitare() { setbackground(color.white); setpreferredsize(new Dimension(300,300) ); public void paintcomponent(graphics g) { super.paintcomponent(g); g.setcolor(color.black); g.drawrect(50, 50, 60, 60); // huvud g.drawrect(80, 225, 140, 5); // svans g.setcolor(color.white); g.filloval(20, 110, 120, 120); // vitt inne i kroppen g.setcolor(color.black); g.filloval(75, 75, 10, 10); // nos g.drawoval(20, 110, 120, 120); // rita kropp, kontur g.filloval(60, 60, 10, 10); // ögon g.filloval(90, 60, 10, 10); g.setcolor(color.black); g.drawline(50, 50, 60, 30); // öron g.drawline(60, 30, 70, 50); g.drawline(110, 50, 100, 30); g.drawline(100, 30, 90, 50); g.setcolor(color.red); g.drawarc(60, 80, 40, 20, 180, 180); // mun g.setcolor(color.black); g.setfont(f); g.drawstring(mjava", 200, 50); Du måste också skapa filen Katt.java som ser ut som 8

import java.awt.*; import javax.swing.*; public class Katt extends JFrame { private KattRitare l; public Katt(){ Container c = getcontentpane(); l = new KattRitare(); c.setbackground(color.white); c.setlayout(new FlowLayout() ); setsize(300,300); c.add(l); setvisible(true); setdefaultcloseoperation(exit_on_close); public static void main(string[] arg){ Katt k1 = new Katt(); Kompilera båda filerna och kör detta Katt. Efter att du fått den att fungera ska du modifera kattens utseende en smula. I programmet ovan finns ett avsnitt (en metod) som heter paintcomponent. Den gör själva ritandet av katten. Katten ritas i en ruta som är 300 punkter bred och 300 punkter hög. Punkten i övre vänstra hörnet heter (1,1) och punkterna räknas sedan upp åt höger och nedåt vilket betyder att det nedre högra hörnet heter (300,300). Med hjälp av denna information kan man lista ut hur ritandet fungerar ovan. Din uppgift är nu att ändra ovanstående program så att Munnen blir gul Ögonen blir gröna Öronen blir dubbelt så långa Svansen blir hälften så lång. 9

Kom ihåg att varje gång du ändrat något i programmet måste du spara det i emacs och kompilera det med javac innan du ser någon skillnad vid testkörning. 10