Programutveckling för Tekniska Tillämpningar Arbetsblad 4
|
|
- Barbro Sandberg
- för 4 år sedan
- Visningar:
Transkript
1 Programutveckling för Tekniska Tillämpningar Arbetsblad 4 I detta arbetsblad innehåller följande moment: 1. Skapa en wxpython applikation med huvudfönster och rapportfönster. 2. Integrering av beräkningskod i användargränssnitt. 3. Uppritning av geometri, elementnät och elementflöden. Skapa en wxpython applikation i wxglade Starta wxglade. Marker Application i trädvyn. I egenskapsfönstret sätts Name till applikationens namn. Namnge på samma sätt applikationens klass i rutan Class. För att programmet skall bli lättare att underhålla är det bra om varje klass i wxglade genereras som separata filer. Detta sätts i rutan Code Generation genom att välja Separate file for each class. Det sista vi gör för applikationsklassen är att ange var de genererade filerna skall placeras. Detta anges i rutan Output path. Vi har nu definierat applikationsklassen och de övergripande inställningarna i wxglade. I nästa steg skall vi definiera huvudfönstret för programmet. Huvudfönster Huvudfönstret är programmets centralpunkt. Det är från detta fönster som flödet i programmet styrs och underfönster öppnas. En klass för huvudfönstret skapas genom att välja en wx.frame i verktygslådan. Figur 1 Skapa en wx.frame för huvudfönster En dialogruta visas där wxglade frågar efter vilken typ av Frame klass som skall skapas. Ange wxframe och ge klassen namnet mainwindow. I nästa steg skall vi sätta en del standardvärden för fönstret i egenskapsmenyn. Under Common fliken sätt följande egenskaper: Egenskap Värde Name mainwindow Size 640, 480
2 Under fliken Widget anges applikationens titel i rutan Title. Denna titel kommer att visas längst upp i fönstret. Kryssa sedan för Has menubar. Nu skapas en MenuBar instans som i sin tur kopplas till huvudfönstret. I egenskapsfönstret sätts namnet på meny instansen till mainmenu. Klicka sedan på "Edit menus..." för att skapa meny strukturen. Ange följande struktur: När strukturen är klar väljs OK. Figur 2 Menystruktur I nästa steg skall vi skapa ett verktygsfält. Klicka på mainwindow i trädvyn. Under fliken Widget i egenskapsfönstret markeras alternativet Has ToolBar. Ange namnet på det skapade verktygsfältet till maintoolbar. Bilderna till verktygsfältet har storleken 22x22 varför egenskapen Bitmapsize sätts till 22, 22. Egenskaperna wxtb_flat, wxtb_text skall också markeras. Klicka därefter på Edit tools och skapa på samma sätt som för menyraden följande struktur:
3 Figur 3 Struktur för verktygsfält (maintoolbar) Generering av programkod Innan vi kan gå vidare och integrera beräkningskoden måste wxglade generera källkod för det skapade gränssnittet. Innan kodgenereringen kan påbörjas måste indata i wxglade sparas. Detta görs genom att välja File/Save i menyn i verktygsfältet för wxglade. I nästa steg markeras instansen Application i trädvyn. Under Application fliken i egenskapsfönstret sätts egenskapen Top window till det just skapade huvudfönstret. Om allt fungerat kan koden genereras genom att klicka på knappen Generate code. Nu skall det finnas två Python filer i målkatalogen, en för applikationsklassen och en för själva huvudfönstret. Integrering av beräkningskod i användargränssnittet Lägg till följande i början av MainWindow.py: # * coding: utf 8 * # generated by wxglade on Sun Apr 19 16:39: import wx from model import * # begin wxglade: dependencies För att hantera programmets initiering skapar vi en egen initieringsmetod _initapp(). Metoden placeras efter de av wxglade genererade metoderna set_properties och do_layout(). def _initapp(self): Initiera program variabler. # Skapa en instans av datamodellen
4 self._model = FlowModel() Metoden anropas sist i MainWindow klassens init () metod. def init (self, *args, **kwds): # begin wxglade: MainWindow. init kwds["style"] = wx.default_frame_style wx.frame. init (self, *args, **kwds) # < bortklippt kod > self.bind(wx.evt_tool, self.oncalcstart, id=5) # end wxglade self._initapp() Var noga med att inte ändra kod mellan de speciella taggar som wxglade skapar (# begin wxglade, # end wxglade) Modellhantering (Ny, Öppna och Spara) För att kunna hantera öppna och spara modeller i programmet uppdateras vår modellklass med en variabel, filename, som skall lagra modellens aktuella filnamn. Variabeln läggs till i klassens konstruktor. class FlowModel: def init (self): self.filename = "" self.createinput() Eftersom vi nu lagrar vilket filnamn som modellen användare modifierar vi också metoden read FromFile som skapades i förra arbetsbladet. Nu anges parametern till denna metod med standardvärdet, filename=, vilket medför att vi kan utelämna denna parameter vid anrop och istället använda den inbyggda variabeln, self.filename, för att ange från vilken fil indata skall läsas. def readfromfile(self, filename=""): if filename!= "": self.filename = filename inputfile = open(self.filename, 'r') Vi skall nu koppla kod till händelsemetoderna skapade tidigare. Metoden onnew() används för att skapa en ny modell. Detta görs enkelt genom att skapa en ny instans och tilldela denna till klassvariabeln self._model. def onnew(self, event): # wxglade: MainWindow.<event_handler> self._model = FlowModel() För att öppna en fil behöver vi visa en standard fildialogruta där användaren kan välja en fil som skall läsas in. wxpython innehåller en sådan klass wx.fileselector. Nedan visas hur metoden onopen() implementerats med hjälp av denna. def onopen(self, event): # wxglade: MainWindow.<event_handler>
5 Menyhändelse för att spara öppna en modell. self._model.filename = wx.fileselector( "Open file", default_extension="*.flw", wildcard="*.flw", flags=wx.fd_open) if self._model.filename!="": self._model.readfromfile() Om användare avbryter dialogrutan returnerar metoden en tom sträng. Parametern flags=wx.fd_open anger att dialogfönstret skall användas för att välja en existerande fil som skall öppnas. Motsvarande flagga för en dialogruta som uppmanar om filnamn för att spara är flags=wx.fd_save. Skapa på motsvarande sätt händelsemetoderna onsave() och onsaveas(). Skapa en tom metod, savetofile(), i modellklassen för att spara modellen till fil (Denna implementeras i nästa arbetsblad). Exekvering av beräkning Beräkningen skall utföras när menyn Beräkning/Starta eller knappen Beräkna väljs. Metoden som är kopplad till dessa metoder är definierad i oncalcstart(). I denna metod skall koden för exekvering av beräkningen flyttas, dvs den kod som i arbetsblad 3 låg i huvudprogrammet för model.py. En flagga läggas till i modellklassen, som sätts till True när en modell har lästs in från fil. Använd denna flagga i oncalcstart() för att se till att beräkningen inte exekveras utan inlästa data. Fönster för resultatrapport Klicka på Application Skapa en wxframe med klassnamnet ReportWindow Flik Common Ange namnet till reportwindow Sätt Size till 700,500 Flik Widget Sätt Title = Report Window Lägg till en TextCtrl Flik Common Sätt namn till reporttext Sätt Font till Courier New/Consolas 11 Flik Layout
6 Sätt proportion till 1 Sätt wxexpand Flik Widget Sätt wxte_multiline, wxte_rich2, wxte_readonly Trädvyn. Klicka på Application. Spara. Välj Generate code. För att kunna använda fönsterklassen, ReportWindow, måste modulen för denna importeras från MainWindow.py. # * coding: utf 8 * # generated by wxglade on Sun Apr 19 16:39: import wx from model import * from ReportWindow import * För att kunna använda den nya klassen måste denna instantieras. Detta görs lämpligtvis i onshow Report() metoden. Ett fönster i wxpython visas inte bara för att en instans av det skapats, utan metoden Show() måste anropas för att visa det på skärmen. Koden blir då: def onshowreport(self, event): # wxglade: MainWindow.<event_handler> self._reportwindow = ReportWindow(self, 1) self._reportwindow.show() För att kunna presentera en resultatrapport måste metoden createreport() i model.py modifieras så att all utdata skrivs till en fil istället för till skärmen. En klassvariabel läggs också till i modellklassen för att lagra filnamnet till den genererade rapporten. print kommandot är inte tillgängligt för att skriva till fil utan write() metoden för filklassen används istället. Följande exempel visar hur data kan skrivas till fil. def createreport(self): reportfile = open(self.reportfilename, "w") reportfile.write("element koordinater\n\n") reportfile.write( "%5s %10s %10s %10s %10s %10s %10s\n" % ("Elnr", "x1(m)", "x2(m)", "x3(m)", "y1(m)", "y2(m)", "y3(m)") ) i = 1 for elx, ely in zip(self._ex, self._ey): reportfile.write( "%05d %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n" % (i, elx[0], elx[1], elx[2], ely[0], ely[1], ely[2]) ) i+=1 Lägg märke till att \n används för att göra radbrytningar i utskrifter när write() metoden används.
7 Uppritning av geometri När programmet läst in indata skall geometrin visas i huvudfönstret. För att kunna implementera uppritningen av detta måste en wxpanel kontroll läggas till huvudfönstret. Välj sizer1 i trädvyn och ändra namnet till mainsizer. En sizer är en kontroll som själv innehåller andra kontroller. Klicka på wxpanel kontrollen i verktygslådan. Figur 4 wxpanel kontroll Klicka sedan på det streckade området i huvudfönstret för att placera kontrollen. Ge kontrollen namnet mainpanel (i property fönstret). Sätt också bakgrundsfärgen till vit genom att ange egenskapen Background = #ffffff. Om allt fungerat skall fönstret se ut som i följande figur: Figur 5 Fönster med wxpanel För att kunna rita på mainpanel måste först två stycken händelsemetoder skapas och knytas till händelser. Uppritningen skall ske i metoden onpaint(). Metoden har som parameter variabeln event. wxpython fyller denna variabel med information om den aktuella händelsen. def onpaint(self, event): Uppritningshändelse för fönster. dc = wx.paintdc(self.mainpanel) gc = wx.graphicscontext.create(dc) # Rita linjer gc.setpen(wx.pen('blue',1))
8 gc.strokeline(20,20,150,150) # Rita punkter gc.setpen(wx.nullpen) gc.setbrush(wx.brush('red')) gc.setfont(self._font) gc.drawellipse(50, 50, 20, 20) gc.drawtext(u"det är kul att rita i wxpython", 50, 50) För att metoden skall utföra uppritning måste den kopplas till en händelse. Detta görs med metoden Bind() för kontrollen mainpanel i metoden _oninitapp(). På samma gång skapas också klassvariablen self._font som behövs för uppritningen in onpaint(). # Skapa en font för att rita med self._font = wx.font(10, wx.swiss, wx.normal, wx.bold, False, "Arial") # Koppla uppritning och omskalningshändelser till metoder. self.mainpanel.bind(wx.evt_paint, self.onpaint) För att kunna skala om uppritningen i fönstret då detta ändrar storlek måste ytterligare en händelsemetod skapas och kopplas, onsize(). Denna metod kommer att anropas varje gång fönstret ändrar storlek. Storleken på det uppdaterade fönstret kan hämtas med metoden GetSize() i event variabeln. def onsize(self, event): Storleksändringshändelse för fönster. self._width, self._height = event.getsize() På samma sätt som för onpaint() metoden kopplas händelsemetoden, onsize(), till händelsen med hjälp av Bind() metoden för mainpanel instansen. # Koppla uppritning och omskalningshändelser till metoder. self.mainpanel.bind(wx.evt_paint, self.onpaint) self.mainpanel.bind(wx.evt_size, self.onsize) Nu finns metoderna på plats för att implementera uppritningen av geometri och elementnät. För att rita upp elementnät kan det var bra att Koordinattransformation För att objektet skall ritas upp i lämplig storlek måste en skalning göras. Detta går till så att man bestämmer lägsta och högsta värdet på koordinaterna och till detta lägger en marginal på exempelvis 10% av objektets storlek. På detta sätt bestämmer man x min, y min, x max och y max. Utifrån dessa värden bestämmer man skalfaktor s och translation x 0 och y 0 enligt
9 k Width xmax xmin s = min k Height ymax ymin 1 k x0 = s xmin + Width 2 1 k y0 = Height s ymin Height 2 Koordinater för uppritning kan då bestämmas enligt x y s s = x 0 = y 0 + s x s y Följande figur visar hur koordinatsystemet är definierat i en wxpanel kontroll samt det nya koordinatsystemet för uppritning. y (0,0) (0,width) x s Canvas k * height height (x 0, y 0 ) x (0,height ) (height, widt h) k * width width y s Figur 6 Koordinatsystem i wxpanel kontroll För att hantera koodinattransformationen implementeras en metod, calcscaling(), i MainWindow för beräkning av skalfaktorerna. Variablerna self.width och self.height läggs till init metoden i MainWindow. Variablerna kommer att innehålla stoleken på fönstret. def _initapp(self): # < bortklippt kod > # Koppla uppritning och omskalningshändelser till metoder.
10 self._width, self._height = self.mainpanel.getsize() self.mainpanel.bind(wx.evt_paint, self.onpaint) self.mainpanel.bind(wx.evt_size, self.onsize) def calcscaling(self): Beräkna skalfaktorer för uppritning. limits = self._flowmodel.limits self._k = 0.8 # < bortklippt kod > self._x0 =... self._y0 =... För att förenkla hanteringen av koordinattransformationerna kan det vara lämpligt att implementera en metod som konverterar från verkliga koordinater till skärmkoordinater. Denna kan ha följande principiella utseende (Implementerad i MainWindow): def worldtoscreen(self, x, y): return ( {skärmkoordinat x}, {skärmkoordinat y}) Där {skärmkoodinat x} och {skärmkoodinat x} ersätts med beräkningar för skärmkoordinater. Skalfaktorerna beräknade tidigare är beroende av storleken på fönstret. Eftersom fönstrets storlek kan ändras av användaren måste detta också hanteras av programmet. Vi har tidigare implementerat metoden onsize() och nu utökas denna metod med ett anrop till calcscaling(). Uppritning def onsize(self, event): Storleksändringshändelse för fönster. self._width, self._height = event.getsize() self.calcscaling() Eftersom programmet skall kunna rita upp ett antal olika saker skapas en variabel self._drawmode, samt ett antal konstanter som anger olika typer av uppritning. Denna anger vilken typ av uppritning som skall göras. När programmet startas är self._drawmode satt till self.dm_none för att ingen uppritning skall göras. def _initapp(self): Initiera program variabler. # < borklippt kod > # Uppritningsvariabler self._width, self._height = self.mainpanel.getsize() self.dm_geometry = 0 self.dm_mesh = 1
11 self.dm_flow = 2 self.dm_scalar = 3 self.dm_none = 1 self._drawmode = self.dm_geometry # Koppla uppritning och omskalningshändelser till metoder. self.mainpanel.bind(wx.evt_paint, self.onpaint) self.mainpanel.bind(wx.evt_size, self.onsize) Uppritningen i formuläret implementeras lämpligen i metoden, onpaint(), i MainWindow. def onpaint(self, event): Uppritningshändelse för fönster. dc = wx.paintdc(self.mainpanel) gc = wx.graphicscontext.create(dc) self.calcscaling() if self._drawmode == self.dm_geometry: self.drawgeometry(gc) if self._drawmode == self.dm_mesh: self.drawmesh(gc) if self._drawmode == self.dm_flow: self.drawmesh(gc) self.drawflow(gc) För att inte överlasta onpaint() metoden med kod delas denna upp i fler metoder för uppritning. Lägg märke till att GraphicsContext variabeln, gc, skickas med anropen till de olika metoderna. Detta medför att metoderna för uppritning inte bara kan användas för uppritning till skärmen utan också kan användas för att göra uppritning till skrivare. Implementera metoder för uppritning av geometri, elementnät och elementflöde (huvudspänningar för plan spänning) Redovisning Redovisningen av uppgiften skall innehålla: Programlista Beskrivning av indataformat Skärmdumpar (Alt+Print Screen)
Programutveckling för Tekniska Tillämpningar Arbetsblad 5
Programutveckling för Tekniska Tillämpningar Arbetsblad 5 I detta arbetsblad innehåller följande moment: 1. Skapa metod för att spara indata till fil. 2. Skapa användargränssnitt för noder, linjer, föreskrivna
Läs merHome Nerladdning typsnitt Ladda Ladda fonter Menyn Skrivare Menyn teckensnitt Menyn Verktygsfält Menyn Hjälp Snabbtangenter
Nerladdning typsnitt Ladda 2 Ladda fonter 2 Menyn Skrivare 3 Avsluta programmet 3 Menyn teckensnitt 3 Välj Teckensnitt 4 Ladda ner ett teckensnitt 7 Ta bort teckensnitt 7 Teckensnitt Information 8 Menyn
Läs merLaboration 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.
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 merEnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass
Övningstillfälle 4 Klasser och objekt (s. 221 ff.) Syfte 1: En naturlig fortsättning på koncepten abstraktion och inkapsling! Funktion (återanvändning av skyddad, säker och testad kod) Modul (återanvändning
Läs merSpråket Python - Del 2 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Funktioner Filhantering Felhantering 2 Funktioner 3 FUNKTIONER Att dela upp program Att dela upp program i mindre delar, funktioner är ett viktigt koncept i programmering. Viktigt
Läs mer3.5 Visuell programmering
3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens
Läs merProgramutveckling 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å.
Läs merAtt skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Läs merGran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)
Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) I detta exempel kommer du att lära dig Att skapa en ny presentation från början Att skapa en enkel knapp Att använda händelseinställningar, events
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 mer1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add...
Kort beskrivning av klassvariabler, något om instansvariabler för klasser samt en introduktion till gränssnittsbyggande med hjälp av gränssnittsbyggare i VisualWorks 5i 1. Definiera klassvariabel Selektera
Läs mer6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.
Fiskar Arbetsbeskrivning knappmeny (Mediator 8) I detta exempel kommer du att lära dig Att göra en mastersida med knappar Att använda en mastersida på andra sidor Att använd funktionen Alignment Arbetsgång
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 merKodexempel från Programmering 2 Tobias Wrigstad, Ph.D.
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel
Läs merFöreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.
Föreläsning 4 meringsteknik DD1310 Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None try och except är reserverade ord som används för hantering av exekverings fel.
Läs merEVO DEV. EvodevExcel.GarpReportAddin
EVO DEV EvodevExcel.GarpReportAddin Evodev AB web www.evodev.se epost info@evodev.se Telefon 033-4300300 Fax 033-126697 Innehåll Installera programmet 1 Installation 1 Registerinställningar 1 Start av
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016
Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik
Läs merFö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,
Läs merFö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[]
Läs merPaneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2
Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering
Läs merAdministrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering
Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad
Läs merHär beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:
Bilaga C Eclipse 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: www.eclipse.org help.eclipse.org www.eclipse.org/downloads/
Läs merOEvent Manual. Version 1.2. ÅID-orientering
OEvent Manual Version 1.2 ÅID-orientering Innehåll 1. Import fil från ÅIDs kansli Emit.txt och Tider.txt 2. Logga in och starta OEvent och importera filen Emit.txt Välj databas och importera från Emit.txt
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 merKARLSTADS 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.
Läs merLaboration: Whitebox- och blackboxtesting
Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska
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 merFöreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul
Föreläsning 8 Programmeringsteknik och Matlab DD1312 er, Self Metoderna:, av metoder, Det är en metod som tillhör klassen och inte objektet. class Skylt(object): antal=0 def init (,r):.reklam=r def antal():
Läs merDatorövning 1 Statistik med Excel (Office 2010, svenska)
Datorövning 1 Statistik med Excel (Office 2010, svenska) I processövningen som ni ska genomföra ingår det att konstruera samt sammanställa en enkät. Denna sammanställning ska göras med hjälp av programmet
Läs mer3.0. Tips och Trix Sida 1 av 18
3.0 https://beta.scratch.mit.edu/ Tips och Trix 2018-08-31 Sida 1 av 18 Innehåll Starta nytt program 3 Scenens koordinatsystem 3 Centrumpunkt / rotationspunkt 4 Sprajtens inställningar 5 Placering i Z-led
Läs merÖvning 6. Ali Tofigh 24 Oktober, 2006
Övning 6 Ali Tofigh 24 Oktober, 2006 1 Sortering Att sortera behöver man göra väldigt ofta i programmering. Python tillhandahåller bland annat en metod i listor för detta ändamål. Det enda metoden behöver
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs mer4.4 Swing ett interaktivt grafiskt gränssnitt
4.4 Swing ett interaktivt grafiskt gränssnitt Våra javaprogram har hittills bara haft utdata, inga indata. Det var utdata som skrevs ut från programmet till bildskärmen antingen med metoden showmessagedialog()
Läs merTentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
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 merUppgift 18 Eget programval 2010 02 02
Prezi lathund Vi skall skapa en presentation med hjälp av Prezi. För att använda Prezi behöver man logga in, dvs. skapa ett konto hos Prezi. När man sedan loggat in kan man skapa en ny Prezi. Det första
Läs merInledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio
Ditt första C#-program med Visual Studio 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å
Läs merKlasser och objekt, referenser Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Klasser och objekt Referenser 2 Klasser och objekt 3 KLASSER OCH OBJEKT Relaterat data Information om en fyrkant Bredd Höjd Färg 4 KLASSER OCH OBJEKT Egna datatyper Skapa en
Läs mer729G04 Programmering och diskret matematik. Föreläsning 7
729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt
Läs merFöreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
Läs merSätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Läs merFöreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Läs merObjektorienterad 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
Läs merWindows Forms Winstrand Development
2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade
Läs merMirasys 5.10. Användarguide: Live Sök Export. November 2010. Bygger på delar ur dokumentet Mirasys NVR 5.10 Användarvägledning Mirasys, Ltd.
Mirasys 5.10 Användarguide: Live Sök Export November 2010 TTC_TI_Mirasys_Anvandarguide/EW Bygger på delar ur dokumentet Mirasys NVR 5.10 Användarvägledning Mirasys, Ltd. Sida 1 Innehållsförteckning Inloggning...
Läs merLabora&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
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 merKlasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.
TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program
Läs merKomponenter med COM (och COM+/VC++ 7.0)
MÄLARDALENS HÖGSKOLA Komponenter med COM (och COM+/VC++ 7.0) Med Visual C++ 7.0 COM-komponent EI0230 Komponentbaserad applikationsutveckling oktober 2003 Om denna sammanfattning Denna sammanfattning innehåller
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 merF6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander
F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning
Läs merMicrosoft Excel. Avancerade funktioner
Microsoft Excel Avancerade funktioner Avancerade funktioner OM() Returnerar ett värde om ett angivet villkor beräknas till SANT och ett annat värde om det beräknas till FALSKT. =OM(A6>A5;C9;OM(A6>A4;C10;OM(A6>A3;C11;
Läs merProblemlösning och funktioner Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till
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 merMicrosoft Word. Lathund för. Innehåll. www.bit.mah.se/support. Autokorrigering. Autotext. Format
Lathund för Microsoft Word Innehåll Autokorrigering 1 2 3 4 5 6 7 8 9 4 Format På denna rullgardinsmeny väljer du om du vill skriva brödtext, rubriker osv. Mycket bra verktyg om du arbetar med formatmallar.
Läs merIntroduktion 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
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015
Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation
Läs merHos vad? och bör därför vara instanseller klassvariabel i vilken klass?
Övningstillfälle 5 Lite kort repetition om klasser och objekt class EnKlass(KlassAttÄrvaFrån): klassvariabel = 5 def init (self) KlassAttÄrvaFrån. init (self) self.instansvariabel = 10 s = 'klassvariabel=
Läs merArbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).
Arbeta med databas Översikt Arbeta med Entity Data Models. LINQ (Language Integrated Query). Lektion 1: Arbeta med Entity Data Models Introduktion till ADO.NET Entity Framework. Stöd i ADO.NET Entity Framework.
Läs merDatorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;
Datorövning 1 A) Kör igång MicrosoftVisualC++-miljön. Välj File New Project från huvudmenyn och skapa ett nytt Win32 Console Project med namnet Mittnamn. Skapa en ny katalog, Oop, genom att vid Location
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 merMigrera till Access 2010
I den här guiden Microsoft Microsoft Access 2010 skiljer sig rent utseendemässigt mycket, så vi har skapat den här guiden för att hjälpa dig att snabbare lära dig programmet. Här kan du läsa om de viktigaste
Läs merFactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28
FactoryCast HMI Premium & Quantum PLC Applets 2004-10-28 INNEHÅLLSFÖRTECKNING 1 OM DETTA DOKUMENT...3 2 FÖRUTSÄTTNINGAR...3 3 PROJEKT I J++...4 3.1 LÄSA PLC-VARIABLER...4 3.1.1 Gränssnittet...4 3.1.2 Upprätta
Läs merLaboration 3 GUI-programmering
Laboration 3 GUI-programmering Syfte Erbjuder studenterna en möjlighet att lära sig grunderna i gränssnittsprogrammering i Java. Genomförande Genomförs individuellt eller i grupp om 2 personer. Uppskattad
Läs merIn- och utenheter. Händelsebaserad programmering i GLUT. Interrupt-baserad interaktion. Sampling / polling. Händelsebaserad interaktion (forts.
Den första datormusen Douglas Englebart, 1968. programmering i GLUT Gustav Taxén CID gustavt@nada.kth.se In- och utenheter Alla datorsystem har in- och utenheter som behandlar information. Data skickas
Läs merAtt 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:
Läs merLaboration: Grunderna i MATLAB
Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar
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 merBilaga 2. Layoutstöd för examensarbeten och uppsatser
Bilaga 2 Layoutstöd för examensarbeten och uppsatser Lärstöd Karlstads universitetsbibliotek ht 2007 Layoutstöd examensarbeten och uppsatser ht -07 Innehåll 1. Inledning...1 1.1 Dispositon...2 2. Om omslag...3
Läs merSkolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15
Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15 Grafiska gränssnitt - GUI Tkinter Tillstånd Komponenter Layout Händelser LÄNKAR & EXEMPEL...finns på kurswebsidan under "GUI
Läs merHandbok KXSLDbg. Keith Isdale Översättare: Stefan Asserhäll
Keith Isdale Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Funktioner.......................................... 5 2 Använda KXSLDbg 6 2.1 Anpassa en KXSLDbg-session...............................
Läs merDet ä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
Läs merHandbok Kig. Dominique Devriese Översättare: Stefan Asserhäll
Dominique Devriese Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Grundläggande användning 6 2.1 Konstruera objekt...................................... 6 2.1.1 Konstruera punkter................................
Läs merIntroduktion 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
Läs merÖvningar i JavaScript del 3
Övningar i JavaScript del 3 I dessa övningar tar vi upp datumbjektet Date, arrayer ch lpar. Du utgår från ett prgram där man kan klicka på små bilder ch mtsvarande stra bild visas. Detta är i princip samma
Läs merFrekvenstabell över tärningskast med C#
Instruktion Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Innehåll Du ska följa steg för steg -instruktionen i
Läs merID1004 Laboration 3, 5-6 November 2012
18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön
Läs merALEPH ver. 16 Introduktion
Fujitsu, Westmansgatan 47, 582 16 Linköping INNEHÅLLSFÖRTECKNING 1. SKRIVBORDET... 1 2. FLYTTA RUNT M.M.... 2 3. LOGGA IN... 3 4. VAL AV DATABAS... 4 5. STORLEK PÅ RUTORNA... 5 6. NAVIGATIONSRUTA NAVIGATIONSTRÄD...
Läs mer2 Eclipse en handledning
2 Eclipse en handledning Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: http://www.eclipse.org http://help.eclipse.org http://www.eclipse.org/downloads/
Läs merPampas Arbetsbeskrivning gif-animering (Mediator 8)
Pampas Arbetsbeskrivning gif-animering (Mediator 8) I detta exempel kommer du att lära dig Att använda det inbyggda multimediabiblioteket Att lägga in rörliga bilder, gif-animeringar Att skapa animeringsbanor
Läs merÖverlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar
Läs merCalligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll
En allmän inledning Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Komponenter i Calligra.................................. 5 1.2 Översikt över funktioner i
Läs merJAVA 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
Läs merExemple på Tentauppgifter Webbprogrammering
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Exemple på Tentauppgifter Webbprogrammering 2019 02 28 version 2019-03-20 15:36:14+01:00 Tillåtna hjälpmedel: inga. Detta är ett exempel på
Läs merArv: 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
Läs merIntroduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder
Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i
Läs merDatorövning 1 Statistik med Excel (Office 2007, svenska)
Datorövning 1 Statistik med Excel (Office 2007, svenska) I processövningen som ni ska genomföra ingår det att konstruera samt sammanställa en enkät. Denna sammanställning ska göras med hjälp av programmet
Läs merEnkla variabler kontra referensvariabel
Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen
Läs merHjälp för Timmerweb Mobil 3
1 (8) 2012-11-20 Hjälp för Timmerweb Mobil 3 (ArcPad 10.0) INNEHÅLL Starta och Avsluta... 2 Välj aktivt objekt... 2 Zooma till aktivt objekt... 3 Redigera attribut... 3 Typ av Bakgrundskarta... 3 Redigera
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Läs merIdag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.
Skolan för Datavetenskap och kommunikation Idag: DD1311 Programmeringsteknik med PBL Granskning Felhantering GUI Föreläsning 15 På torsdag: Mer om GUI På grupptimmen: genomgång av granskningsprotokollet
Läs mer4 Kolumn Kalkylbladet är uppdelat i rader (horisontellt) och kolumner (vertikalt). Där dessa möts finns alltid en cell.
Lathund för Microsoft Excel 1 2 9 4 Kolumn Kalkylbladet är uppdelat i rader (horisontellt) och kolumner (vertikalt). Där dessa möts finns alltid en cell. Innehåll Autofyll Celler Diagram Ändra diagramtyp
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 merSMART Ink 3.0 ANVÄNDARHANDBOK FÖR MAC OS X-OPERATIVSYSTEM
SMART Ink 3.0 ANVÄNDARHANDBOK FÖR MAC OS X-OPERATIVSYSTEM Varumärkesinformation SMART Ink, SMART Meeting Pro, smarttech, SMART-logotypen och alla SMART-slogans är varumärken eller registrerade varumärken
Läs merSå här skriver du ditt första program i C++
Så här skriver du ditt första program i C++ Introduktion till att skapa Solution, Project och källkodsfil i Visual Studio 2013 Författare Anne Norling Kurs: Strukturerad programmering med C++ Kurskod:1DV433
Läs merGrafiska användargränssnitt i Java
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har
Läs merTentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär
Läs mer