Programkonstruktion för F, 2D1342, Laboration 0: Kom igång med Java-programmering - förberedande uppgifter
|
|
- Andreas Blomqvist
- för 6 år sedan
- Visningar:
Transkript
1 Programkonstruktion för F, 2D1342, Laboration 0: Kom igång med Java-programmering - förberedande uppgifter [Sista redovisningsdatum för tidsbonuspoäng: fredagen den 31 oktober 2008] [Grundpoäng: 2] [Tidsbonus: +1] Målsättning Under denna laboration ska du skriva flera små Java-program. Följande ska du kunna när du är klar med labben: För fristående program kompilera och köra fristående program göra enkel inmatning från tangentbordet och utskrifter i terminalfönstret skapa objekt av några biblioteksklasser (Scanner, Random och String) och använda objektens metoder använda villkor använda enkla repetitioner För applets kompilera ett appletprogram och köra det med appletviewer definiera utseendet på skärmen för en applet genom att skriva en egen metod paint() anropa metoder ur klassen Graphics för att rita enkla figurer som streck, ovaler och rektanglar byta koordinatsystem från skärmens pixelkoordinater till mer fysikaliska koordinater skriva och använda små metoder med returvärde skriva och använda små metoder utan returvärde rita en matematisk funktion i en applet Sista uppgiften där man skriver flera egna metoder, byter koordinatsystem och ritar en kurva är större och lite svårare än de övriga. Den uppgiften är en direkt förberedelse för Laboration1: Linser. Man får öva på en av svårigheterna i Linsuppgiften och kan föra över både sina kunskaper och de metoder man skrivit till Linsuppgiften. 1
2 Tidsplan Laborationen är tänkt att genomföras under veckorna 41 och 42. Den är uppdelad i två delar, avsedda att utföras respektive vecka. Sista redovisningsdag för tidsbonuspoäng är fredagen den 31 oktober vilket är i vecka 44 (det är ingen undervisning på kursen vecka 43). Man bör dock börja med nästa labb under vecka 44 för att hinna med den före sitt bonusdatum! OBS! Det är inte säkert att den schemalagda labtiden räcker för att göra uppgifterna! Förberedelser Som förberedelse bör ni läsa igenom labbanvisningen samt studera anteckningar och utdelat material från föreläsningar och övningar. Tag med detta material till labben så ni kan titta på det när ni jobbar! Det kan också vara bra att förbereda sig genom att skriva programmen eller delar av dem på papper. 2
3 Första veckan Kursanpassningar För att automatiskt få tillgång till moduler som används på kursen (t.ex. Sima- Manager), direktlänk till kursens hemsida och meddelanden från kursledaren ska följande kommando ges i ett terminalfönster: course join progk08 Res-register För varje kurs här på CSC har vi ett s.k. Res register där delresultat för studenterna på kursen lagras. Ni lägger in er själva i detta register med kommandot res checkin progk08 Det kommer då frågor som ni svarar på efter bästa förmåga. Frågan om grupp är egentligen utan betydelse och det går bra att svara 0. Obs! Man kan bara checka in sig själv från sitt eget konto. Varje person måste göra både course join.. och res checkin.. från sitt eget konto. Ni som jobbar i par får logga ut och logga in igen på den andres konto för incheckning. Gemensam katalog (frivilligt) För er som jobbar två tillsammans är det praktiskt att ha en gemensam katalog som kan nås från båda användarnas konton. Ni kan då arbeta med programmet var för sig och det spelar ingen roll vem av er som loggar in då ni labbar tillsammans. Den gemensamma katalogen kan skapas genom att från den ena gruppmedlemmens konto ge kommandot course labdir progk08 kompisid där progk08 blir namnet på den gemensamma katalogen och kompisid är labbkompisens användarnamn. Ni kan använda ett annat katalognamn om ni vill, t.ex. om någon av er redan har en katalog som heter progk08 och som inte ska vara gemensam. Logga sedan ut, logga in på kompisens konto och ge kommandot från hennes/hans konto med samma katalognamn men använd den första personens användarnamn som kompisid. Den gemensamma katalogen kommer att läggas direkt under hemkatalogen hos båda. Ett annat sätt att få en gemensam katalog är att skapa en katalog med kommandot mkdir från ena kontot, sätta åtkomsträttigheter för kompisen med kommandot fs sa och från kompisens konto med kommandot ln -s skapa en symbolisk länk till den skapade katalogen. Se Unix-häftet för detaljerna, eller fråga en handledare! De åtgärder vi har beskrivit här behöver bara göras en gång. Om ni senare under kursen ska byta labb-kompis eller får problem så be en handledare om hjälp! Kataloger för kursen Om ni inte skapat gemensam katalog enligt föregående stycke, skapa en underkatalog för den här kursen genom att gå till hemkatalogen (antagligen står ni redan där) och skriv mkdir progk08 3
4 Det är förstås tillåtet att välja ett annat namn på katalogen än just progk08. Gå till den katalogen med cd progk08 Var och en av kursen labbar bör ha en egen underkatalog under progk08 Skapa en underkatalog för den labb ni nu ska göra, t.ex. med mkdir lab0 eller liknande. Labbkatalogerna kan i sin tur ha underkataloger om det behövs. SimaManager för hjälp och redovisning SimaManager är ett program som hanterar kön för hjälp under laborationerna. Ni som läst den frivilliga kursen i Datorintroduktion har redan stött på SimaManager. SimaManager startas genom att man skriver sm i ett terminalfönster. Om man inte loggat in någon gång efter att ha gjort så kan det extra kommandot course join progk08 module add sima behövas innan man kan göra sm. Från och med nästa inloggning fungerar det bra med sm direkt. Efter en liten stund får man upp ett fönster med en lång lista med kursnamnsförkortningar. Välj nu progk i listan och tryck sen på Login-knappen. Då visas den aktuella kön för kursen Programkonstruktion för F. Om ni vill ha hjälp eller redovisa så tryck på knappen Queue och bekräfta med OK. Om ni behöver hjälp med att få igång själva Sima-programmet, kalla förstås på en handledare! 4
5 Uppgifter på fristående program är ett intressant tal. Enligt en välkänd anekdot besöker den engelske matematikern Hardy den indiske matematikern Ramanujan på ett sjukhus i London år Hardy åker taxi till sjukhuset och memorerar taxins nummer, När Hardy träffar Ramanujan berättar han vilket nummer taxin hade: Taxins nummer var 1729, det verkar vara ett mycket tråkigt tal. Hoppas det inte är ett dåligt tecken. Inte alls svarar Ramanujan är ett mycket intressant tal. Det är det minsta (positiva) tal som kan skrivas som summan av två kuber på två olika sätt. Uppgift 1 Skriv ett program som frågar användaren efter två heltal, hämtar dem från terminalfönstret och beräknar och skriver ut deras kubsumma, dvs a 3 + b 3. Det duger bra att beräkna värdet som a a a+b b b! Genom att köra programmet upprepade gånger och prova med olika a och b kannitaredapåvilkadetvåsättenattskriva 1729 som kubsumma är! Hitta alltså de positiva heltalen a, b, c, d som är sådana att a 3 + b 3 = c 3 + d 3 = 1729 och a<b, c<d, a<c.obs!programmetskainte leta efter lösningar, bara hämta in två tal och skriva ut kubsumman! Skriv programmet som en klass med endast en main-metod. Använd klassen Scanner från paktetet java.util för att hämta värden från tangentbordet till programmet! På föreläsningarna och första övningen finns program att använda som förlaga. Skriv in progammet med emacs och lägg det i en fil vars namn börjar på en stor bokstav och slutar på.java, t.ex.kubsumma.java. Kompilera programmet med javac Kubsumma.java Om felmeddelanden skrivs ut, rätta felen i emacs och kompilera igen. När kompileringen gått bra, kör programmet med Slumptal java Kubsumma Många datorprogram behöver använda slumptal. Spelprogram kan använda tärningar, blanda kortlekar eller låta monster dyka upp slumpmässigt. En flygsimulator kan slumpa när oförutsedda besvärliga situationer ska uppstå för flygeleven. Ett glosförhörsprogram slumpar fram nästa glosa att fråga om. I moderna programspråksbibliotek brukar man ha tillgång till s.k. pseudoslumptal, tal som ser ut att vara slumpmässiga men i själva verket beräknas av datorn. I Java finns flera sätt att få tillgång till pseudo-slumptal. Ett av dem är klassen Random. Uppgift 2 Börja med att titta på dokumentationen av klassen Random. Ni hittar hela Javadokumentationen antingen genom att gå via kurshemsidans rubrik Användbara länkar eller genom att skriva in följande i en webbläsare: I den långa spalten nederst till vänster finns alla biblioteksklasser i bokstavsordning. Leta rätt på Random och klicka på den! I fönstrets högra fält kommer nu dokumentationen om Random upp. Högst upp står namnet på det paket där Random ligger. 5
6 Vad heter det? En bit ner finns Constructor Summary och Method Summary. Titta särskilt på de två metoderna nextint() och nextint(int n). Ettanrop av den första metoden (för ett Random-objekt) ger ett slumptal som kan vara vilket heltal som helst som datorn kan lagra som typen int, dvs ett tal i intervallet [ , ]. Vad ger den andra metoden? Hur kan man använda den för att få ett likadant resultat som från en tärning, dvs ett slumptal som är 1,2,3,4,5 eller 6? Skriv ett program som först skriver ut minst tre olika slumptal slumpade från hela int-intervallet. Låt sedan programmet skriva ut resultaten av två slag med två tärningar. Det ska finnas förklarande text till alla utskrifter. Utskriften från hela programmet kan se ut så här. Rramen ska inte vara med i utskriften, den är bara till för att förtydliga här i labbanvisningen: Tre slumtal: Två tärningsslag med två tärningar: Tärning 1: 4 Tärning 2: 6 Tärning 1: 5 Tärning 2: 1 Provkör programmet flera gånger. Det ska bli olika värden på slumptalen. Kontrollera särskilt att tärningsvärdena håller sig inom det tillåtna intervallet! π = Det lär finnas klubbar där man som inträdesprov har att rabbla några hundra decimaler ur talet π i rätt ordning. I den här uppgiften ska ni skriva ett enkelt program som hjälper en användare att öva på decimalerna i π. Niskasjälvaövaerpåatt använda klassen String ur Javas bibliotek men också öva på if-satser. Katalogen /info/progk08/ är kursbibliotek för progk08. Där kommer kursledaren att lägga diverse filer som är användbara för labbarna. Filen /info/progk08/java/lab0/pi innehåller π med rätt många decimaler. Hela talet ligger på en enda rad. Det finns alltså inga tecken för ny rad i filen även om utskrift av den måste ta upp många rader i terminalfönstret eller i emacs-fönstret. Uppgift 3 Kopiera π-filen enligt ovan till er egen katalog. Läs om klassen String i dokumentationen eller någon annanstans. Hitta den metod som ger längden (antalet tecken) för ett String-objekt. Skriv ett Java-program som skapar ett String-objekt vars värde är π med många decimaler enligt filen PI t.ex. genom att utgå från den filen och fylla i programkod runt om π. Det är tillåtet att korta ner filen lite om ni tycker den är otymplig men gör den inte så kort att det går lätt att se hur många siffror det är!. Låt programmet skriva ut antalet decimaler, t.ex. så här. 6
7 Programmets PI har 1729 decimaler. Obs! Antalet decimaler ska beräknas av en metod från String. Det duger inte att räkna för hand. Utvidga sedan programmet så att det frågar användaren efter ett förslag på π och hämtar in förslaget som en String, intesomtypendouble eller int. Programmet ska sedan jämföra förslaget med det korrekta π som finns lagrat i programmet och skriva ut en text enligt nedanstående alternativ. Programmets PI har 6480 decimaler Vad är pi? Dina 4 decimaler var rätt! Programmets PI har 6480 decimaler Vad är pi? Dina 15 decimaler var rätt! Programmets PI har 6480 decimaler Vad är pi? Det var tyvärr fel nånstans! Metoden startswith i klassen String kan användas för att lösa uppgiften. Metoden fungerar så här: Om vi definierar String s1 = "ANNAPANNA"; String s2 = "ANN"; så kommer s1.startswith(s2) att ge värdet true eftersom "ANNAPANNA" börjar med "ANN". s1.startswith("apa") ger däremot false. Observera att programmet får vara lite korkat på så sätt att om någon av de inmatade decimalerna är fel men många är rätt så får man ändå bara veta att det är fel. I sista exemplet ovan är ju 13 decimaler rätt och först den fjortonde är fel. 7
8 Applet-uppgifter Under detta första labbtillfälle ska ni också prova på applets. Applets är (små) program som startas från webbsidor. På kursbiblioteket finns en fil med en applet som ritar en linje och en oval /info/progk08/java/lab0/rita.java Kopiera filen till er egen katalog eller skriv av den med Emacs. import java.awt.*; import java.applet.*; public class Rita extends Applet { } public void paint(graphics page) { page.drawline(100, 250, 200, 100); page.drawoval(100, 100, 100, 150); } När programmet är en applet måste det startas från en webbsida. Skapa med hjälp av Emacs filen Rita.html med följande innehåll: Detta är html-kod för en minimal webbsida som vi bara använder för att kunna provköra programmet. <applet code="rita.class" width=400 height=300> </applet> Detta betyder att programmet Rita.class är koden för en applet som ska synas i ett fönster som är 400 bildpunkter brett och 300 högt. Applet-programmet kompileras på samma sätt som fristående program javac Rita.java När kompileringen lyckats är det dags att provköra appleten: Medan man utvecklar och testar en applet är det mest praktiskt att göra provkörningar med appletviewer men när programmet är klart kan det vara roligt att ha det på sin egen webbsida. Provkör nu med appletviewer Rita.html Om ni har gjort allt rätt så ska det dyka upp ett nytt fönster med titeln»appletviewer: Rita.class» på skärmen. När appleten har startat ska linjen och ovalen synas i dess fönster. Det finns också en meny med namnet Applet som du framförallt använder för att avsluta provkörningen (alternativet Quit längst ned). 8
9 Figur 1: Uppgift 4 - appletens utseende När man använder applets så skapar java-systemet ett objekt från den mall som applet-klassen utgör. Här skapas alltså ett objekt av klassen Rita automatiskt, utan att vi själva begärt det med new. Java-systemet anropar också metoden paint() när systemet tycker att det är dags att uppdatera appletens utseende. Dessutom så skickar java-systemet ett objekt av klassen Graphics (till paint(..)). Detta objekt kan bl.a. rita linjer, rektanglar och ovaler. De kan ha olika färger och vara fyllda eller ofyllda. Vårt Graphics - objekt finns tillgängligt inuti paint()-metoden och kallas för page i vår applet. Koordinatsystemet som används har origo i övre vänstra hörnet och y-axeln riktad nedåt, x-axeln åt höger. Alla värden på linjers ändpunkter m.m. är pixelvärden och måste anges som heltal. Uppgift 4 - Ändra i applet-programmet Ändra nu i appletens paint()- metod så att följande ritas Ett kors Fyra parallella horisontella linjer Fyra ovaler som är 100 pixlar höga och 20 pixlar breda. Rita dem bredvid varandra. Två av ovalerna ska vara fyllda med någon färg som inte är svart ochtvåskavaraofyllda. Se figur 1) för ett exempel på hur det kan se ut. Er applet behöver inte se ut exakt som på bilden! 9
10 Uppgift5-Egenmetodförenegenfigur Skriv en ny applet. Det går bra att utgå från samma fil som den förra, Rita.java men ni får ändra namnet på filen och på klassen. Hitta på en egen figur som ritas upp av minst tre anrop av metoder ur Graphics. Definiera en metod som ritar figuren. Metoden ska ha minst en lägesparameter och minst en storleksparameter. Man ska alltså kunna välja var figuren ska placeras i x-led eller i y-led (eller båda) och minst en storleksparameter ska kunna varieras. Titta gärna på metoden för Smiley-gubben från föreläsning 2! Det duger förstås inte att bara skriva av den! Definiera paint()-metoden i den nya appleten så att er egen figur ritas upp minst fem gånger m.h.a. anrop av den nya metoden. Att redovisa första veckan Observera att detta bara är första halvan av lab0. 1 Programmet som beräknar kubsumman samt lösning på 1729-problemet. 2 Slumptalsprogrammet med utskrift enligt rutan på sidan 6. 3 π-programmet med utskrifter enligt sidan sidan 7. 4 Appleten Rita som ritar kors, parallella streck och ovaler på rad. 5 Applet som ritar er egen figur på fem (eller fler) olika ställen m.h.a. anrop av er egen metod. Ni kan redovisa så snart ni är klara så här långt eller vänta tills ni gjort även nästa veckas uppgifter. Kom ihåg att be om handledarens signatur på kvittensbladet när ni redovisat! 10
11 Andra veckan Även den här veckan har vi uppgifter både med fristående program och med applets. Uppgifter med fristående program Här kommer vi att öva på följande: Repetitionssater Principen för summera ett okänt antal värden Principen för hur värden överförs från ett steg i en repetition till nästa. Villkor De fristående program som skrivs här kommer att bestå av endast en klass med en main()-metod. Uppgift 1 - Beräkna medelvärde Skriv en klass med enbart en main-metod där följande uppgift utförs: Fråga användaren efter ett antal, n, läs in det från tangentbordet med hjälp av Scanner. Fråga därefter efter n st tal, läs in dem också med Scanner, summera talen och skriv ut deras medelvärde. När det programmet fungerar, utvidga det med en test på det först inlästa värdet, antalet. Om antalet, n, som användaren skrivit är <= 0,ge ett vänligt meddelande om att ett antal > 0 bör anges. Efter meddelandet behöver det inte hända något annat än att programmet avslutas, ni behöver inte upprepa frågan om antalet. Programmet får startas igen ifall man vill ge ett positivt antal. Uppgift 2 - Beräkna Fibonaccital En definition av Fibonacci-talen är följande: f 0 =0 f 1 =1 f n = f n 1 + f n 2 för n =2, 3, 4,... Skriv en klass med enbart en main()-metod där ett värde på max läses in till programmet och alla Fibonacci-tal som är mindre än talet max skrivs ut. Obs! Variabler med index ska inte användas. Man kan ändå inte veta hur många man behöver för att lösa uppgiften. Tre variabler räcker för att lagra Fibonaccitalen. Programmet behöver inte komma ihåg alla! Dessutom behövs förstås en variabel för max-värdet. Så här kan en körning av programmet se ut: Välkommen till Fibonacci-programmet! Hur stora tal vill du ha? 1729 Här kommer alla Fibonacci-tal < 1729: Radbytet efter talet 144 är inlagt i efterhand förattdetskaseprydligtuthäri labbanvisningen. Era program får skriva alla tal på samma rad eller varje tal på egen rad eller göra radbyten på annat sätt, det spelar ingen roll! 11
12 Uppgift med applet Uppgift 3 - Byt koordinatsystem och rita en kurva Skriv en applet som ritar upp en matematisk funktion genom att i appletens paint()- metod dra små streck mellan punkter på funktionskurvan. Funktionens argument och värden ska anges som decimaltal och inte som heltal. Funktionen ska ritas i ett koordinatystem som har sitt origo ungefär mitt i appletfönstret och där en enhet är mycket mer än en pixel. Skalfaktorn får ni själva bestämma men den ska vara minst 10! Läs hela anvisningen innan ni börjar jobba med uppgiften! För att byta koordinatsystem krävs en del förberedelsearbete. Det går inte att ge datorn ett kommando för att byta utan man måste själv definiera de metoder gör det möjligt att använda det nya koordinatsystemet och som blir redskap för att rita ifönstret. Koordinatsystemet Java, liksom många andra datorbaserade grafiksystem, använder ett för en matematiker lite bakvänt koordinatsystem: origo ligger i övre vänstra hörnet med x-axeln åt höger och y-axeln nedåt. Vi kallar detta för skärmkoordinater med beteckningen x screen respektive y screen. Skärmkoordinaterna är alltid heltal som motsvarar antal bildpunkter. När man arbetar med naturvetenskapliga problem är det ofta mycket mer naturligt att använda ett koordinatsystem med y-axeln riktad uppåt och med reella tal som koordinater. Man vill vanligen också ha en lämplig skala, en enhet längs en koordinataxel ska ofta vara mycket längre än en pixel (motsatsen förekommer förstås). Det är också bekvämt att kunna lägga sitt origo var man vill och inte vara låst till övre vänstra hörnet. (se figur 2). Vi ska alltså rita i samma pixelbaserade fönster som förut men vi ska kunna tänka på fönstret med ett vanligt koordinatsystem. Origo ska vara ungefär mitt i fönstret (inte i övre vänstra hörnet) och punkten (1, 1) ska ligga en synlig bit till höger och uppåt från origo och inte nedåt och jättenära origo som i det ursprungliga systemet. Hur långt ifrån origo punkten (1, 1) ligger beror helt på vilken skalfaktor man valt när man definierat sitt nya koordinatsystem. Nya metoder Till att börja med behövs metoder som räknar om koordinater mellan de två koordinatsystemen. Sedan ska en metod som ritar linjer uttryckta i det nya koordinatsystemet definieras. Denna nya metod ska användas när funktionen ritas upp och inte den metod drawline() som användes förut och som endast kan ta emot parametrar som är heltal. OBS! Uppgiften ska lösas på det sätt som beskrivs här. Det duger inte att bara rita upp en funktion som ser bra ut. Uppgiften är en direkt förberedelse för laborationen Linser där man byter koordinatsystem på samma sätt. Ni får väldigt gärna välja själva vilken funktion som ska ritas och anpassa skalningen av koordinatsystemet och origos placering efter funktionen. Senare i labbanvisningen finns dock ett förslag på funktion och tillhörande lämplig skalning. Koordinatomvandlingar Eftersom x-axlarna respektive y-axlarna i de två koordinatsystemen är parallella kan vi konvertera x-koordinaten och y-koordinaten separat. För att konvertera åt båda hållen behöver vi fyra funktioner: 12
13 avbildningen x x screen, kallad xtoxscreen avbildningen y y screen, kallad ytoyscreen avbildningen x screen x, kallad xscreentox avbildningen y screen y, kallad yscreentoy Vi kan här begränsa oss till konverteringen från det reella systemet till skärmkoordinater, d.v.s. de två första funktionerna. Det är dessa som behövs när vi ska rita. I Java kan man definiera metoder som motsvarar matematiska funktioner. Metoden för konvertering från x (det reella koordinatvärdet) till x screen eller X (heltalet) kan illustreras med följande figur: x xtoxscreen Givet att metoden xtoxscreen definierats kan man använda den i beräkningsuttryck, t.ex. vid tilldelningar som denna: int xcoord = 2 * xtoxscreen( a + b ); eller vid beräkning av parametrar vid anrop av andra metoder, t.ex. på detta sätt: page.drawline( xtoxscreen( a ), 0, 100, 100 ); För att Java ska kunna utföra sater som innehåller xtoxscreen(..) måste vi definiera vad vi menar med»xtoxscreen». Detta gör man genom att skriva en metoddefinition med följande principiella utseende: X int xtoxscreen( double x ) { return <beräkning av x screen } från x>; Ordet int anger att resultatet från metoden är ett heltal (integer). xtoxscreen är metodens namn. Texten ( double x ) betyder att metoden tar en parameter och att denna parameter är ett ett reellt tal (double betyder reella tal lagrade som flyttal med s.k. dubbel precision). Namnet x används inne i metoddefinitionen för att beteckna värdet av parametern. Det speciella ordet return skall följas av ett beräkningsuttryck som anger hur det resulterande värdet ska beräknas m.h.a. parametern x. Hela uttrycket <...> ska ersättas av beräkningsuttrycket. Metoddefinitioner skall alltid placeras inuti en klassdefinition men utanför alla andra metoddefinitioner. 13
14 x screen y x y screen Figur 2: Java använder ett koordinatsystem där man räknar i bildpunkter från övre vänstra hörnet (skärmkoordinaterna x screen och y screen). Kalla pixelvärdena för origo i (x,y)-systemet för (x0,y0). Definiera metoderna för koordinatomvandlingar Skriv nu definitionerna för de två metoderna xtoxscreen och ytoyscreen. Välj gärna nya kortare (men ändå tydliga) namn. Tänk först igenom hur koordinaterna ska räknas om. Det är lämpligt att definiera pixelkoordinaterna för nya koordinatsystemets origo samt skalfaktorn som variabler i programmet. Då är det lätt att ändra på dem när man experimenterar med sitt ritande. Tips: Eftersom omvandlingen från ett reellt tal till heltal innebär att man tappar noggranhet (decimalerna försvinner) så måste man uttryckligen begära denna omvandling. Man använder då det speciella skrivsättet: (int)double-uttryck Exempelvis: double a = ; int k = (int) a; int m = 25 * (int)(a + 0.5); Uttrycket (a + 0.5) beräknas här som ett double-tal som sedan omvandlas till ett heltal. Detta heltal multipliceras sedan med 25 för att få det slutliga heltalet som lagras i variabeln m. Typomvandling med (int) hugger av talets decimaler så att t.ex. (int)3.9 blir 3. En riktigare typomvandling får man genom att avrunda. Metoder för avrundning finns i klassen Math. Det är frivilligt att använda dem. Definiera metoden line Den tredje metoden vi behöver för koordinatsystembytet är line(). Det är en metod som ritar linjer i det nya koordinatsystemet. Vi ska kunna begära att få en linje ritad t.ex. från punkten (0, 0) till punkten (0.17, 3.14). Metoden line() har inte något returvärde. Detta markerar man i definitionen genom att ange»typen» void för resultatet och att utelämna return-satsen. En 14
15 annan skillnad mot de tidigare metoderna vi skrivit är att vi måste ha mer än en parameter. Metoden line() ska rita en linje mellan punkterna (x1,y1) och (x2,y2). Ritandet kan bara utföras av metoden drawline() som finns i klassen Graphics. Metoden line() måste därför ha tillgång till ett Graphics - objekt som kan utföra ritandet. Närmare bestämt måste det vara det objekt som den aktuella appleten använder. Ett vanligt sätt att ge en metod tillgång till något är att bestämma att metoden skall ha detta något som parameter. Sedan får man vid anropet av metoden se till att rätt sak ges som parameter. Låt alltså line() ha en parameter av typen Graphics. Se till att metoden line() räknar ut vilka pixelvärden som doublevärdena x1, y1, x2, y2 motsvarar med hjälp av koordinatomvandlingsmetoderna och sedan använder drawline() för att rita linjen. Metoden line() bör ha fem parametrar: g x1 y1 x2 y2 line vilket i programform motsvaras av: void line( Graphics g, double x1, double y1, double x2, double y2 ) { satser som ritar linjen m.h.a. drawline, xtoxscreen och ytoyscreen } Metoden line() ska kunna anropas så här: line(page, 0, 0, 0.5, 2.0); och en linje ska då ritas från vårt nydefinierade origo till en punkt 0.5 enheter till höger och 2 enheter uppåt. Om skalfaktorn satts till 80 så betyder det 40 pixels åt höger och 160 pixels uppåt. Definiera metoden line. Börja testa Om ni inte redan gjort det så kopiera skelett-programmet för kurvritningen från följande fil. Listning av filen finns på nästa sida. /info/progk08/java/lab0/ritafunktion.java eller börja från början på en egen applet. Skriv in metoderna för koordinatomvandling samt linjeritning. Kompilera programmet. Rita koordinataxlar Nu är det dags att prova metoden line() genom att anropa den från paint()- metoden för att rita det nya koordinatsystemets axlar. Det är inte noga med att rita exakt till fönstrets kanter. 15
16 Funktion att rita Funktionen som ska ritas definieras lämpligen också som en metod med samma enkla struktur som xtoxscreen och ytoyscreen men där både parametern x och returvärdet har typen double. Rita funktionen Det som återstår nu är att se till att den vackra funktion ni har valt ritas upp. Det är lämpligt att rita funktionen som några hundra små streck. Enklast är nog att välja ett startvärde på x, ett steg dx i x-led och rita funktionen genom att repetera ritandet av streck mellan punkterna (x, f(x)) och (x+dx, f(x+dx)) för ökande värden på x. Repetera så länge x är mindre än något max-värde. Skelett till kurvritarappleten import java.applet.applet; import java.awt.*; public class RitaFunktion extends Applet { int XMAX = 800, YMAX = 800; int x0 = XMAX/2, y0=ymax/2; // (x0,y0) = origo i // pixelkoordinater double scale = 80; // skalfaktor, // 80 pixlar = 1 enhet. // Definiera metoderna xtoxscreen, ytoyscreen och line här // Här följer ett förslag på funktion att rita // Byt gärna mot någon annan double f (double x) { return 3*Math.sin(4*x)/(4*x); } // I init-metoden kan man initiera (sätta starttillståndet) i // appleten. Här väljer vi att sätta bakgrundsfärgen tillvit // Metoden anropas av Java-systemet när appleten startar public void init () { setbackground(color.white); } } // I paint-metoden bestäms hur det ska se ut på skärmen // när appleten körs public void paint (Graphics page) { // Här ska det stå satser som ser till att // koordinataxlar och funktionskurvan ritas upp } 16
17 Figur 3: Exempel på applet med uppritad funktion. Ni får naturligtvis gärna definiera en annan funktion att rita och då en annan skalning och placering av origo behövas. En körning av den färdiga appleten kan se ut som i figur 3). Att redovisa från andra labbtillfället 1 Ett fristående program med endast main()-metod som beräknar medelvärdet av n st tal samt skriver felmeddelande om n<0. 2 Ett fristående program med endast main()-metod som beräknar och skriver ut alla Fibonacci-tal som är mindre än något visst tal, max, somläsesin till programmet. 3 Applet som ritar upp koordinataxlar och en vacker funktion. Metoder för koordinattransformationer samt metod som ritar en linje i den nya koordinatsystemet ska finnas med. 17
UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning
Numerisk analys och datalogi KTH 100 44 Stockholm Ann Bengtsson, Kerstin Frenckner 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1 UNIX Mål Syftet med denna laboration är att ni ska
Laboration 1: Linser
Programkonstruktion för F, DD1342, 2008 2009 Laboration 1: Linser [Sista redovisningsdatum för tidsbonuspoäng: fredagen den 28 november 2008] [Grundpoäng: 4] [Tidsbonus: +1] Målsättning Under denna laboration
k 1 k 2 y a b Figur 1: En ljusstråle genom en tunn lins ändrar sin vinkel då den passerar genom linsen. Ljusstrålens lutning före linsen är här k1 = y
Programkonstruktion för F, 2D1342, 2000 2001 Laboration 1: Linser [Sista tid för redovisning: vecka 48] 1 Målsättning Under denna laboration ska du skriva ett mindre Java-program. Följande ska du kunna
Laboration 1: Linser
Programkonstruktion för F, DD1342, 2007 2008 Laboration 1: Linser [Sista redovisningsdatum för tidsbonuspoäng: fredagen den 23 november 2007] [Grundpoäng: 4] [Tidsbonus: +1] 1 Målsättning Under denna laboration
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.
Datateknik A, Syfte: 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. Att läsa: Lektion 2 Uppgifter:
Laboration 1: Linser
Programkonstruktion för F, 2D1342, 2006 2007 Laboration 1: Linser [Sista redovisningsdatum för bonuspoäng: 3 november 2006] [Grundpoäng: 2] [Tidsbonus: +1] 1 Målsättning Under denna laboration ska du skriva
Laboration 1: Linser
Programkonstruktion för F, 2D1339, 2005 2006 Laboration 1: Linser [Sista redovisningsdatum för bonuspoäng: 4 november 2005] [Grundpoäng: 2] [Tidsbonus: +1] 1 Målsättning Under denna laboration ska du skriva
2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Fiktiv Kontrollskrivning 1 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga hjälpmedel är tillåtna
Laboration 1: Linser
Programkonstruktion för F, 2D1339, 2002 2003 Laboration 1: Linser [Sista tid för redovisning: vecka 47] 1 Målsättning Under denna laboration ska du skriva ett litet Java-program. Följande ska du kunna
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
Laboration 1: Linser
Programkonstruktion för F, 2D1339, 2004 2005 Laboration 1: Linser [Bör redovisas senast 22 november] 1 Målsättning Under denna laboration ska du skriva ett litet Java-program. Följande ska du kunna närduärklarmedlabben:
2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
k 2 k 1 = y a a y f = k 1 y f y 2 = y 1 + k 1 (x 2 x 1 ) k 2 = k 1 y 2
Programkonstruktion för F, 2D1342, 1998 1999 Laboration 1: Linser [Sista tid för redovisning: vecka 49] 1 Målsättning Under denna laboration ska du skriva ett mindre Java-program. Följande ska du kunna
Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
2D1339 Programkonstruktion för F1, ht 2004
2D1339 Programkonstruktion för F1, ht 2004 Kontrollskrivning 1 Onsdag 24/11 2004 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
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 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng
TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,
Lab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Föreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
(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
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
2D1342 Programkonstruktion för F1, ht 2006
2D1342 Programkonstruktion för F1, ht 2006 Lappskrivning 1 Tisdag 7/11 2006 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
Kort-kort om utdelade användarkonton och datormiljön på NADA
Kort-kort om utdelade användarkonton och datormiljön på NADA UNIX-konto, användaridentitet Namn Du har fått ett konto med ett användarnamn bestående av prefixet ip99_ och ytterligare tre bokstäver. Dessa
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
2D4112 Datalogi I, grundkurs med Java, 2003 2004. Labkurs 1. Godkänd Labkurs 1 ger 2p (högskolepoäng) av kursens totalt 10p
2D4112 Datalogi I, grundkurs med Java, 2003 2004 Labkurs 1 Godkänd Labkurs 1 ger 2p (högskolepoäng) av kursens totalt 10p Denna labkurs omfattar 7 olika moment, där moment 3 7 skall redovisas. Tag med
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se
Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
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
OOP Tentamen
DVS SU/KTH 1 (6) OOP OOP Tentamen 2010-01-15 15.00 20.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv
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
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
DD1311 Programmeringsteknik för S1 Laborationer läsåret 2007-2008
DD1311 meringsteknik för S1 Laborationer läsåret 2007-2008 Fyll i ditt namn och personnummer med bläck eller motsvarande. Kursledare är Linda Kann, linda@nada.kth.se. Namn... Personnr... Laborationer Labb
Introduktion till Matlab
Introduktion till Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1, ht10 1 Inledning Ni kommer använda Matlab i nästan alla kurser i utbildningen. I matematikkurserna kommer vi ha studio-övningar nästan
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
OBJEKTORIENTERAD PROGRAMVARUUTVECKLING
Institutionen för Data- och informationsteknik TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer. Denna tentamen gäller
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
HI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början
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. -
Introduktion till Matlab
Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar
TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg 1.1-1.17) behöver inte redovisas
DN1212, Numeriska metoder & grundläggande programmering för P1. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg 1.1-1.17) behöver inte redovisas Introduktion till UNIX och MATLAB Del 1: UNIX och
TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter
TENTA: TDDD11 & TDDC68 Tillåtna hjälpmedel Det är tillåtet att ha böcker (t.ex. Ada-bok, formelsamlingar, lexikon,...) med sig samt utdelade lathundar (finns på kurshemsidan) för Ada, Unix och Emacs. Utdraget
Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel
Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
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 Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift
Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012
DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012 Räkna med att varje laboration kan ta upp till 10 timmar att göra. Du behöver alltså tillbringa en hel del tid i datorsalarna.
Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets
Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets 1 Läsanvisningar Den här föreläsningen syftar till att ge en bild av vad en Java-Applet är och är ganska fristående från föregående
DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB
DN1240, Numeriska metoder för O1. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB Del 1: UNIX och kontoadministration Uppgift 1.1 Ni bör jobba
Labora&on 2 Funk&oner, if och loop övningar/uppgi:er
Labora&on 2 Funk&oner, if och loop övningar/uppgi:er 1M322 Webbteknik 2, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se 1. Ladda ner arbetsdokument Till övningarna i denna labora&on finns
Använda Python Laboration 1 GruDat, DD1344
Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig
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å
OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.
OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1. Laboration 0 del 1-3 (frivilliga delar) Del 1-3 (dvs upg
Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer
Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded
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,
DD1311 Programmeringsteknik för CL1 Laborationer läsåret 2008-2009
DD1311 Programmeringsteknik för CL1 Laborationer läsåret 2008-2009 Fyll i ditt namn och personnummer med bläck eller motsvarande. Kursledare är Linda Kann, linda@nada.kth.se. Namn... Personnr... Laborationer
KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09
Laboration 4, ISG A04 och DVG A08 HT-09 Laborationen går ut på att skapa en enkel bankbok. Ni skall i bankboken kunna registrera upp till 30 transaktioner som kan bestå av insättning, uttag eller checkuttag.
5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
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
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)
UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.
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
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt
Applets med komponenter
5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det
Kort-kort om utdelade användarkonton och datormiljön på NADA
Kort-kort om utdelade användarkonton och datormiljön på NADA UNIX-konto, användaridentitet Namn Du har fått ett konto med ett användarnamn bestående av prefixet ip98- och ytterligare tre bokstäver. Dessa
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
PROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet
Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de
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.
Föreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen 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
Objektorienterad programmering Föreläsning 2
Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination
SF1672, Linjär Algebra med Matlab för F1 Lab0
SF1672, Linjär Algebra med Matlab för F1 Lab0 Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns en hel del uppgifter så att alla kan få något att
OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1
Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.
Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:
Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk
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
Inledning till OpenOffice Calculator Datorlära 2 FK2005
Inledning till OpenOffice Calculator Datorlära 2 FK2005 Mål Lära sig att skapa och använda ett räkneblad med OpenOffice Calculator Beräkna medelvärde och standardavvikelsen med räknebladet Producera en
Kort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg
Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
DATORINTRODUKTION. Laboration E850-2000 ELEKTRO. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Ulf Holmgren
UMEÅ UNIVERSITET Tillämpad fysik och elektronik Ulf Holmgren 2000-03-17 specialversion inför kursstart Elektronik och mätteknik 2000 DATORINTRODUKTION Laboration E850-2000 ELEKTRO Personalia: Namn: Kurs:
HI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2014-10-27 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
DD1342 Programkonstruktion för F1, ht 2007
DD1342 Programkonstruktion för F1, ht 2007 Lappskrivning 1 Torsdag 22/11 2007 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar markerats räknas det som fel svar. Alla skriftliga
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
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
Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska
Introduktion till datormiljön och Python
Introduktion till datormiljön och Python Nyckelord: katalog, katalogträd, rot, fil, källkod, program, exekvering, tilldelning, inmatning, utmatning. Mål: Att du efter laborationen ska klara dig på egen
Uppgift 1a (Aktiekurser utan poster)
Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har
Laboration 1 Introduktion till Visual Basic 6.0
Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.
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
Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa
Planering Programmering grundkurs HI1024 HT 2014
Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
System.out.println("Jaså du har "+ antaldollar + " stycken.");
1 Vad vi vet Vi har tidigare sett exemplet med inmatning från tangentbordet. Exemplet innehåller flera aspekter av klasser och objekt. import java.util.*; class KeyboardReading { public static void main(string
Övningsuppgifter till föreläsning 2 Variabler och uttryck
Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna
Uppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
JAVA Mer om klasser och objektorientering
JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det
Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.
Kom igång Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.se/login Nu dyker en ruta upp på skärmen. Fyll i ditt användarnamn och lösenord och klicka på "logga in". Nu