Tjoho. Applikationsutvecklarens handledning. Maj 2003
|
|
- Ann-Christin Sandberg
- för 5 år sedan
- Visningar:
Transkript
1 Tjoho Applikationsutvecklarens handledning Maj 2003 Uppdragsgivare: Ylva Dalén, KI Starthus Projektmedlemmar: Sophia Demnert, Elina Eriksson, Kamilla Johansson Per-Jonny Käck, Ingela Linered, Åsa Moum, Michael Stockman, Stefan Trolle
2 Innehåll Inledning... 2 Bakgrund... 2 Beskrivning av systemet... 2 Applikationsvision... 3 Applikationen... 4 Funktioner i systemet... 4 Översiktlig beskrivning av applikationen... 4 Hur applikationen kommunicerar med servern... 4 Signaler... 5 Insignaler... 5 Utsignaler... 6 Hintar
3 Inledning Nedan följer en beskrivning av vad man ska tänka på och hur man ska gå till väga när man utvecklar en applikation. Dokumentet är skrivet i första hand för den som utvecklar en applikation i programspråket JAVA och som använder sig av det klientbibliotek som finns tillgängligt för detta programspråk. Det är möjligt att utveckla applikationer i andra programspråk, men då får utvecklaren antingen skriva ett nytt klientbibliotek för detta programspråk eller i sin applikation kommunicera direkt med servern med hjälp av tjohoxml, se bilaga TjohoXML. Bakgrund Bakgrunden till projektet är att tillhandahålla roliga och stimulerande applikationer som handikappade barn kan använda. Tanken är också att applikationerna ska ge barnet möjlighet att själv generera rörelser på plattformen. Förhoppningen är att rörelserna på plattformen ska stärka barnets benstomme samtidigt som barnet har roligt. Eftersom vi inte har haft någon möjlighet att testa vårt system på barnen så har vi lagt ned mest arbete på kommunikationen mellan plattform och applikationer samt att förenkla utarbetandet av nya applikationer i framtiden. Beskrivning av systemet Systemet består i stort av tre olika delar. En server, en plattform, (själva maskinen), och ett klientbibliotek. Plattformen är själva maskinen som barnet står i, det är där knapparna finns som styr alla händelser och rörelser. Servern är den del som sköter kommunikationen mellan applikationen och plattformen. För att underlätta kommunikationen mellan applikationen och servern finns ett klientbiblioteket utvecklat i Java. Om man utvecklar en applikation i Java innebär det att man inte behöver tänka på i vilken form servern vill ha informationen utan endast använda sig av befintliga metoder i klientbiblioteket. Kommunikationen mellan applikationen och servern går via klientbiblioteket och sker med hjälp av signaler som skapas av applikationen och registreras hos servern. För fullständig beskrivning av systemet, se bilaga TjohoUML. I en applikation definieras hur de olika knapparna på plattformen ska styra händelser och rörelser. Det sker med hjälp av tips, (hintar), som skrivs i applikationen och som under körning skickas till servern. Om man ansluter flera applikationer på en gång så är det den applikation som sist registrerade sina hintar som får högst prioritet. Plattformen kan också ersättas av en simulator som med fördel kan användas för att testa applikationerna. Den agerar då istället för plattformen. För mer 2
4 information om hur simulatorn fungerar, se bilaga Simulator. Man kan inte ansluta både plattformen och simulatorn samtidigt. Om man vill utveckla applikationer i ett annat programspråk än java så går det bra eftersom all kommunikation med servern sker via XML, se bilaga TjohoXML, se bilaga TjohoXML. Om man ska utveckla flera applikationer i samma språk bör man skriva ett nytt klientbibliotek för det språket. Applikationsvision Tanken om hur en applikation skulle kunna utnyttja de funktioner som systemet tillhandahåller. En av tankarna är att det är lättare att skriva en applikation som använder sig av servern för att styra plattformen Tjoho än att kommunicera direkt med plattformen. Ytterligare en tanke är att det är lättare att kommunicera med klientbiblioteket än med servern, även om den möjligheten fortfarande finns kvar. En applikation som är till mest glädje och nytta för barnen utnyttjar en så stor del som möjligt av de funktioner som finns tillgängliga på plattformen. På så sätt blir det så omväxlande som möjligt för barnen som använder plattformen. Det är därför lämpligt att det finns flera svårighetsgrader på en applikation så att man kan ändra funktionerna lite efter barnens utveckling, men också så att flera barn kan ha glädje av samma applikation trots att de kan olika mycket. En applikation ska fungera på så sätt att när den startas av en användare så försöker den att ansluta sig till servern via klientbiblioteket. När detta har lyckats får användaren välja svårighetsgrad mm i ett grafiskt gränssnitt för login som finns i klientbiblioteket. Nästa steg för applikationen är att registrera de signaler, funktioner och tips, (hintar), som den behöver för att kunna fungera som tänkt. Därefter kan applikationen utföra sitt huvudsyfte, att roa barnet. När barnet har använt applikationen klart ska applikationen, innan den stängs av, avregistrera de signaler och hintar som den tidigare registrerat. På så sätt kan plattformen fortsätta att köras utan just denna applikation. 3
5 Applikationen Funktioner i systemet De funktioner som finns tillgängliga i systemet: - Knapptryckningar - Vridning - Höjning/Sänkning - Vibration - Lutning - Hopp Det finns dock inte stöd för alla dessa funktioner på den nuvarande plattformen Hoppolek men det kommer att finnas på nästa version, Tjoho. Översiktlig beskrivning av applikationen Det första man måste göra när man ska utveckla en applikation är att tänka ut vad som ska hända om man trycker på de olika knapparna på plattformen och vilka signaler som behövs för att styra detta. Alla signaler från applikationen måste registreras hos servern. För att koppla ihop en signal med en knapp använder man sig av hintar. Om man vill att flera knappar ska styra samma funktion finns det hint-kommandon även för detta. Hintar består av signaler och kanter mellan dem samt noll eller flera olika operationer. Operationerna kan till exempel koppla ihop flera knapptryckningar så att de gemensamt styr en signal. När applikationen har körts klart är det viktigt att komma ihåg att avregistrera de signaler och hintar som tidigare blev registrerade. Hur applikationen kommunicerar med servern För att applikationen ska kunna kommunicera med servern måste den hämta en tillgänglig instans av klientbiblioteket genom att anropa metoden CRMClient.getInstance(). Det är sedan denna instans som används nedan i metodanropen. För att applikationen ska kunna startas måste servern först vara startad. Detta behöver man inte ta hänsyn till vid utvecklandet av applikationen men kan vara bra att känna till om det inte fungerar som väntat när man startar applikationen. Man måste också ansluta sin instans av klientbiblioteket till servern. Det sker genom metoden connect(). Ex CRMClient.getInstance().connect(). Applikationen måste också registreras för att kunna fungera. Det sker genom att skriva CRMClient.getInstance().registerApplication(applikationsNam n). Om applikationen av någon anledning skulle bli nedkopplad från servern finns en metod reconnect() tillgänglig, som har sparat all information om 4
6 applikationens namn samt vilka signaler och hintar som har registrerats så att man slipper tänka på att göra om detta om man blir nedkopplad. Man kan stänga anslutningen till servern genom metoden close(). All sparad information i klientbiblioteket, som till exempel applikationens namn, behålls dock så att ett anrop till reconnect() är möjligt. Det finns möjlighet att få information varje gång en registrerad insignal ändrar värde genom att ärva ett interface SignalListener, och sedan registrera sig som lyssnare till insignalen. Så fort en signal ändrar värde anropas då metoden valuechanged(). Det är i denna metod man får kontrollera vilken signal som hade ändrat värde. Man måste dock inte använda sig av SignalListener utan man kan också själv kontrollera vilket värde de olika signalerna har genom att anropa getvalue() i signalen. Signaler Det finns två olika sorters signaler, insignaler och utsignaler. Insignalerna kommer in till applikationen och innehåller information om vad som har hänt på plattformen, t ex att en knapp har tryckts ned. Utsignalerna är signaler från applikationen till plattformen med information om hur plattformen ska röra sig. Både insignaler och utsignaler kan vara av två olika typer, frekvens eller binär. Frekvenssignalerna kan endast anta värdet 0 eller något positivt heltal. Binärsignalerna kan anta värdet 0, eller 1. Följande metoder finns tillgängliga i Signal: gettype(), anger vilket typ signalen är av. getname(), anger vilket namn signalen har. getvalue(), anger vilket värde signalen har. Insignaler Insignaler är de signaler som kommer från plattformen till applikationen, dvs de talar om att någonting har hänt på plattformen. Ett exempel kan vara att en knapp har blivit nedtryckt eller uppsläppt. Om man har implementerat SignalListener och lagt till sig som lyssnare till insignalerna, så anropas metoden valuechanged(signal sig, int val) så fort en insignal ändrar värde. Vad som ska hända i den metoden är fritt för applikationen att välja. sig anger vilken signal det är som har ändrat värde, och ett bra sätt att få inormation om denna signal är att anropa metoden getname().val anger signalens nya värde. Ett annat sätt att få information om att en signal ändrat värde är att kontinuerligt avläsa (polla) signalens värde genom att anropa metoden getvalue(). 5
7 För att skapa en insignal skriver man till exempel new InSignal( signalnamn, SignalType.BINARY) eller new InSignal( signalnamn, SignalType.FREQUENCY);. För att insignalen ska fungera som tänkt måste man registrera signalen. Det görs genom ett anrop till metoden CRMClient.getInstance().registerSignal(signalnamn). För att man ska få information om att signalen har ändrat värde måste man också lägga till en signallyssnare. Det görs genom ett anrop till metoden addsignallistener(signallistener listener), exempelvis signalnamn.addsignallistener(applikationsnamn). Efter detta ska värdeändringar i någon signal medföra att metoden valuechanged() exekveras. Om man inte behöver en signal mer kan man avregistrera den hos servern genom att anropa metoden CRMClient.getInstance().unregisterSignal(Signal signal). Utsignaler Utsignaler är de signaler som applikationen skickar till plattformen för att tala om hur den ska röra sig. Det krävs en signal för varje rörelse, det vill säga en utsignal för att plattformen ska röra sig upp och en annan för att den ska röra sig ned. Man måste skapa en utsignal för varje rörelse man vill att plattformen ska kunna utföra i applikationen. Utsignaler skapas på ett sätt som liknar insignalernas, genom att skriva new OutSignal( signalnamn, SignalType.BINARY) eller new OutSignal( signalnamn, SignalType.FREQUENCY). För att sedan ändra värdet på en utsignal anropar man metoden setvalue(int value), där value anger det nya värdet. Exempelvis signalnamn.setvalue(1). De utsignaler som finns tillgängliga för att styra plattformen Tjoho är följande. up signal för att röra plattformen uppåt, binär down signal för att röra plattformen nedåt, binär jump signal för att plattformen ska hoppa, binär left signal för att plattformen ska svänga vänster, binär right signal för att plattformen ska svänga höger, binär lean_left signal för att plattformen ska luta åt vänster, binär lean_right signal för att plattformen ska luta åt höger, binär vibrate signal för att plattformen ska vibrera, frekvens Om man inte behöver en signal mer kan man avregistrera den hos servern genom att anropa metoden CRMClient.getInstance(). unregistersignal(signal signal). 6
8 Hintar En hint beskriver en bra koppling för en given signal för att en applikation ska fungera på det sätt som applikationsprogrammeraren vill. En hint innehåller information om ett generellt bra sätt att koppla ihop signaler i ett logiskt nät med hjälp av logiska operatorer. En hint definieras av den minsta och högsta svårighetsgraden, som gäller för den hinten, samt hintens namn. Hinten kan bestå av en eller flera objekt (object) och kanter (edge). Alla objekt till alla kanter måste deklareras innan kanterna kan deklareras. En hint skapas när man skriver hint = new Hint(Hint.DIFFICULTY_EASY, HINT.DIFFICULTY_HARD, app). Första och andra parametern representerar den lägsta respektive den högsta svårighetsgrad som hinten ska vara giltig för. De svårighetsgrader som är definierade är: DIFFICULTY_EASY, DIFFICULTY_MEDIUM och DIFFICULTY_HARD. Sista parametern app är en String med applikationens namn, samma namn som applikationen registrerat hos klientbiblioteket. För att lägga till en plattformssignal i hinten skriver man t ex Object o1 = hint.addsyssignal( button1 ). Plattformen Tjoho har 9 knappar och en del andra signaler som finns specificerade i samma dokument som tjohoxml, se bilaga TjohoXML. Knapparna heter button1 till button9. En beskrivning av den nuvarande applikationens signal skapas när man skriver Object o2 = hint.addappsignal(app, sign.getname(). Första parametern app är en String med applikationens namn. Andra parametern är namnet på en instans av antingen klassen InSignal eller OutSignal. För att lägga till en beskrivning av en funktion till en hint skriver man Object o3 = hint.addfunction( or1, Or )eller Object o4 = hint.addfunction( pulse1, PulseControl,20000 ). Den första parametern i metoden addfunction är det namnet som operationen får av applikationsutvecklaren och den andra är den logiska operatorn. Namnet på operationen ska vara unikt inom samma hint. Det vill säga att två operationer inom samma hint inte kan heta pulse1. De logiska operatorerna, med dess parametrar är; (se även bilaga TjohoXML) - And kräver att alla insignaler till operationen ska vara ickenoll för att utsignalen ska bli ett. Parametrar: inga - CountMemory (typ 1) kräver precis två insignaler och ger som utdata en frekvens ur en frekvenstabell. I minnet finns ett index till frekvenslistan som bestämmer utsignalen. Den ena insignalen ökar index med ett och den andra insignalen minskar index med ett. CountMemory startar på den första frekvensen i frekvenslistan. 7
9 Parametrar: typnamnet stable, uppapplikationsnamn, uppsignalnamn, nerapplikationsnamn, nersignalnamn, lista med frekvenser. - CountMemory (typ 2) kräver precis två insignaler och ger som utdata en av tre frekvenser. Den första frekvensen i frekvenslistan är defaultfrekvens som används när båda insignalerna är 0. Kopplad till respektive insignal finns dessutom en frekvens som används när den insignalen är ickenoll. Om båda insignalerna är ickenoll så används frekvensen till den insignal som först blev ickenoll. Parametrar: typnamnet unstable, applikationsnamn1, signalnamn1, applikationsnamn2, signalnamn2, defaultfrekvens, frekvens1, frekvens2. - Not negerar insignalen, ickenoll ger noll som utsignal och noll ger ett som utsignal. Parametrar: inga - OnOffSwitch växlar mellan ett och noll. Växlingen sker när insignalen går från noll till ickenoll. Parametrar: inga - Or kräver att någon av insignalerna till operationen ska vara ickenoll för att utsignalen ska bli ett. Parametrar: inga - PulseControl ger ett som utsignal så länge som insignalen är ickenoll men inte längre än en specificerad tid. Parametrar: tid i millisekunder. En hint består också av flera kanter (edge). En kant innehåller information om hur de tidigare beskrivna signalerna och operationerna ska kopplas samman, till exempel att en signal ska kopplas till en logisk operator eller direkt till en annan signal. En kant läggs till hinten genom att skriva hint.addedge(o3, o4). Varje kant måste gå mellan två objekt. Hinten registreras hos servern genom att använda sig av metoden CRMClient.getInstance().addHint(hint). 8
Systembeskrivning Tjoho Maj 2003
Systembeskrivning Tjoho Maj 2003 Uppdragsgivare: Ylva Dalén, KI Starthus Projektmedlemmar: Sophia Demnert, Elina Eriksson, Kamilla Johansson Per-Jonny Käck, Ingela Linered, Åsa Moum, Michael Stockman,
Läs merLab5 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
Läs merTentamen. 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
Läs merkl Tentaupplägg
Tentaupplägg Allmänna Tips Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut
Läs merIdag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Läs merObjektorienterad programmering med Java Swing: Händelser, lyssnare och applets
GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet
Läs merSimulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2017 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D Linköpings universitet SE-581 83
Läs merTJOHO PROJEKTSPECIFIKATION FEBRUARI 2003. Uppdragsgivare: Ylva Dalén, KI Starthus
TJOHO - LEK OCH TRÄNING FÖR BARN PROJEKTSPECIFIKATION FEBRUARI 2003 Uppdragsgivare: Ylva Dalén, KI Starthus Projektmedlemmar: Sofia Demnert Elina Eriksson Kamilla Johansson Per-Jonny Käck Ingela Linered
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merSamlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!
Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar Vi kommer att behöva hantera samlingar av objekt - Har oftast använd Array (fält) - Bra om
Läs merDet här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.
Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av
Läs merHitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet
Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merTENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).
1 (7) TENTAMEN: Objektorienterad programmering Läs detta! Uppgifterna är inte ordnade efter svårighetsgrad. Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen. Ordna bladen i uppgiftsordning.
Läs mer2D1311 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
Läs merOperatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )
TDDC76 PoD OH Föreläsning C++ 83 Operatoröverlagring endast operatorsymboler definierade i C++ kan överlagras + - * / % ^ & ~! > = += -= *= /= %= ^= &= = = < > = ==!= && ++ -- -> ->*, [ ]
Läs merTeoretisk del. Facit Tentamen TDDC (6)
Facit Tentamen TDDC30 2013-06-05 1 (6) Teoretisk del 1. (3p) "Snabba frågor" Alla svar motiveras väl. a) Vad skiljer en statisk metod från en icke-statisk? (0.5p) Svar:En statisk metod är associerad till
Läs merLaboration 2: Designmönster
Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om
Läs merImperativ programmering. Föreläsning 4
Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
Läs merObjektorienterad programmering. Grundläggande begrepp
Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller
Läs merLaboration 2: Designmönster
Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en
Läs merProjektarbete 2: Interaktiv prototyp
Projektarbete 2: Interaktiv prototyp Jonatan Hilmarch (Grupp 13) 880427-5595 hilmarch@skip.chalmers.se Kurs: Människa-Datorinteraktion TIG061 HT 2010 Projekt 1 - en tillbakablick Enligt projektets systemdefinition
Läs merSystemkonstruktion LABORATION REALTIDSPROGRAMMERING
Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen
Läs merProgrammering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Läs merImperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merDatalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Läs merLabb 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
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merParameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Läs merSimulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2018 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D TSEA51 Digitalteknik Y TSEA52 Digitalteknik
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
Läs merApplikationsexempel Timer med tryckknapp
Applikationsexempel Timer med tryckknapp Document title Document Identity 4655_024_01 Valid for IMSE WebMaster Pro Firmare version 1.09 or higher Date 08-04-14 Webpages version 1.09 or higher Abelko Innovation
Läs meri LabVIEW. Några programmeringstekniska grundbegrepp
Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar
Läs merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merKungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass
Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klassen Mio ffl Särfall ffl Interface Kungl. Tekn. Högskolan
Läs merLÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
Läs merKlassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Läs merFöreläsnings 11 - GUI, Händelsestyrda program, MVC
Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs merDAT043 - föreläsning 8
DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns
Läs mer(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
Läs merTentamen i Digitalteknik, EIT020
Elektro- och informationsteknik Tentamen i Digitalteknik, EIT020 4 april 2013, kl 14-19 Skriv namn och årskurs på alla papper. Börja en ny lösning på ett nytt papper. Använd bara en sida av pappret. Lösningarna
Läs merInledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Läs merProgramutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document
Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merTentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merTestning av program. Verklig modell för programutveckling
Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket
Läs merObjektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim
Objektorienterad programmering Föreläsning 12 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till Arv Superklasser och Subklasser Dolda medlemmar (new och base) Statisk
Läs merAnmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Läs merTor Sterner-Johansson Thomas Johansson Daniel Henriksson
Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...
Läs merDagens 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
Läs merHjälpmedel för kompilatorkonstruktion, DVB004
Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,
Läs merLycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen
1 (6) TENTAMEN: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv din tentamenskod på varje blad (så att
Läs merTentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.
Tentamen i EDAF60 29 oktober 2018 Skrivtid: 14-19 Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Skriv inte med färgpenna enda tillåtna färg är svart/blått/blyerts.
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
Läs merBeskrivning av gesällprov RMI Chat Mikael Rydmark
Beskrivning av gesällprov RMI Chat Mikael Rydmark rydmark@kth.se Mikael Rydmark 1(8) 12-06-06 Innehållsförteckning Inledning...3 Server...3 Klient... 3 Ansluta till servern...3 Huvudchat...4 Privat kommunikation...5
Läs merObjektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo
Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till
Läs merÖvningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.
1 Samlingar 1.1 Frekvenstabell En Integer är icke-muterbar (precis som String, Float, Boolean et.c.). Ickemuterbarhet har många fördelar, men en nackdel är att ett helt nytt objekt måste skapas när ett
Läs merFöreläsning 13. Träd
Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.
Läs merKort 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å
Läs merFöreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt
Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras
Läs merKopiering av objekt i Java
1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom
Läs mer5. 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
Läs merF5 Introduktion till digitalteknik
Exklusiv eller XOR F5 Introduktion till digitalteknik EDAA05 Roger Henriksson Jonas Wisbrant På övning 2 stötte ni på uttrycket x = (a b) ( a b) som kan utläsas antingen a eller b, men inte både a och
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Läs merGränssnitt för FakeGranska. Lars Mattsson
Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Läs merFö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
Läs merProgramstruktur 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
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merStatistik över heltal
Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande
Läs merInledande programmering med C# (1DV402) Introduktion till C#
Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i
Läs merDAT043 - Föreläsning 7
DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar
Läs merFöreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
Läs merElisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.
Administrera din SAS miljö med SAS Metadata Server och SAS Management Console. Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. SAS Intelligence Value Chain
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merPROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI
PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg
Läs merGeneriska konstruktioner. Kursbokens kapitel 13
Generiska konstruktioner Kursbokens kapitel 13 1 Vad är en generisk konstruktion? Generisk står för; allmän eller generell En generisk konstruktion kan användas för olika typer av data Med hjälp av templates
Läs merFöreläsning 3: Händelsestyrda program och användargränssnitt
(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september
Läs merTentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merTENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.
Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:
Läs merFör att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.
1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som
Läs merOBJEKTORIENTERAD 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.
Läs merBeräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #9 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola ekvensnät Vad kännetecknar ett sekvensnät? I ett sekvensnät
Läs merLaboration 3, uppgift En klass för en räknare
Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer
Läs merFöreläsningsmaterial (Arv) Skrivet av Andreas Lund
Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Inledning Arv är ett begrepp som är tätt förknippat med objektorientering. Principerna bakom arv är grundade i högst vardagliga relationer mellan olika
Läs merObjektorienterad 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
Läs mer