Lund University / Lunarc / Python Lecture 1. CALFEM för Python

Storlek: px
Starta visningen från sidan:

Download "Lund University / Lunarc / Python Lecture 1. CALFEM för Python"

Transkript

1 CALFEM för Python

2 Vad är CALFEM för Python Delmängd av CALFEM implementerat i Python Använder Numpy för matrishantering Stödjer nätgenerering med triangle och gmsh Plottning med wxwidgets och PyOpenGL

3 CALFEM för Python pycalfem Elementrutiner Systemrutiner pycalfem_utils Inläsningsrutiner Nätgenerering Plottningsfunktioner pycalfem_classes Basklasser för plottning och uppritning

4 Generell procedur för FE beräkning Definiera modellen Generera element matriser Assemblera in elementraser i den globala styvhetsmatrisen Lös systemet av ekvationer Beräkna elementkrafter

5 Exempel 1 exs1.py

6 Example 1 system of springs

7 1. Importera NumPy och PyCALFEM from numpy import * from pycalfem import * Gör alla funktioner i numpy och pycalfem tillgängliga för skriptet

8 2. Skapa topologi-array edof Alla fält som definierar indata definieras som array:er i Numpy Edof = array([ [1,2], [2,3], [2,3] ]) Frihetsgrader i topologimatrisen börjar med index 1

9 3. Skapa styvhetsmatris / kraftvektor zeros funktionen returnerar en array med nollor K=matrix(zeros((3,3))) f=matrix(zeros((3,1))) matrix returnerar en matris instans, som kan användas i matrisfunktioner.

10 4. Skapa elementmatriser k=1500. ep1=k ep2=2.*k Ke1=spring1e(ep1) Ke2=spring1e(ep2)

11 5. Assemblera elementmatriser Index i NumPy börjar alltid med 0 assem(edof[0,:], K, Ke2) assem(edof[1,:], K, Ke1) assem(edof[2,:], K, Ke2) print("stiffness matrix K:") print(k) Stiffness matrix K: [[ ] [ ] [ ]]

12 6. Lösning av ekvationssystem NumPy index dvs börjar med 0. (frihetsgrad 2) bc = array med föreskrivna frihetsgrader. Värden föreskrivs i separat array. Om denna ej anges föreskrivs variablerna till 0.0 bc = array([1,3]) f[1]=100 a,r = solveq(k, f, bc) Löser ekvationsystem med avseende på randvillkor bc och krafvektor f. Returnerar nodvariabler och reaktioner.

13 6a Lösning av ekvations system utskrift print("displacements a:") print(a) print("reaction forces Q:") print(q) Displacements a: [[ 0. ] [ ] [ 0. ]] Reaction forces Q: [[-40.] [ 0.] [-60.]]

14 7. Beräkning av elementkrafter ed1=extracteldisp(edof[0,:],a) ed2=extracteldisp(edof[1,:],a) ed3=extracteldisp(edof[2,:],a) Extraherar element förskjutningarna från den globala lösningsvektorn es1=spring1s(ep2,ed1) es2=spring1s(ep1,ed2) es3=spring1s(ep2,ed3) Alterantiv användning av extract för att extrahera alla elementförskjutningar till ed ed=extract(edof, a)

15 7a Utskrift av elementkrafter print "N1 = "+str(es1) print "N2 = "+str(es2) print "N3 = "+str(es3) N1 = 40.0 N2 = N3 = -40.0

16 Exempel 2 exs3.py

17 Exempel 2

18 1. Topolgi-array Edof Edof = array([ [1,2,5,6], [5,6,7,8], [3,4,5,6] ]) Observera att inga elementnummer anges i första kolumnen.

19 2. Styvhetsmatris och lastvektor K=matrix(zeros((8,8))) f=matrix(zeros((8,1)))

20 3. Elementegenskaper E=2.0e11 A1=6.0e-4 A2=3.0e-4 A3=10.0e-4 ep1=[e,a1] ep2=[e,a2] ep3=[e,a3] Elementegenskaper kan ges som listor och arrayer

21 4. Elementkoordinater ex1=array([0., 1.6]) ex2=array([1.6, 1.6]) ex3=array([0., 1.6]) ey1=array([0., 0.]) ey2=array([0., 1.2]) ey3=array([1.2, 0.])

22 5. Elementmatriser Ke1=bar2e(ex1,ey1,ep1) Ke2=bar2e(ex2,ey2,ep2) Ke3=bar2e(ex3,ey3,ep3)

23 6. Assemblering och lösning av ekv. system assem(edof[0,:],k,ke1) assem(edof[1,:],k,ke2) assem(edof[2,:],k,ke3) Assemblering print("stiffness matrix K:") print(k) bc=array([1,2,3,4,7,8]) f[5]=-80e3 [a,r]=solveq(k,f,bc) Lösning av ekvationssystem print("displacements a:") print(a) print("reaction forces r:") print(r)

24 7. Beräkning av elementkrafter ed1=extracteldisp(edof[0,:],a); N1=bar2s(ex1,ey1,ep1,ed1) ed2=extracteldisp(edof[1,:],a); N2=bar2s(ex2,ey2,ep2,ed2) ed3=extracteldisp(edof[2,:],a); N3=bar2s(ex3,ey3,ep3,ed3) print("n1 = "+str(n1)) print("n2 = "+str(n2)) print("n3 = "+str(n3))

25 Exempel 3 exs4a.py

26 Exempel 3

27 Topologi - Edof Edof = array([ [1, 2, 5, 6], [3, 4, 7, 8], [5, 6, 9, 10], [7, 8, 11, 12], [7, 8, 5, 6], [11, 12, 9, 10], [3, 4, 5, 6], [7, 8, 9, 10], [1, 2, 7, 8], [5, 6, 11, 12] ])

28 Styvhetsmatris och elementegenskaper K=zeros([12,12]) f=zeros([12,1]) A=25.0e-4 E=2.1e11 ep=[e,a]

29 Elementkoordinater ex = array([ [0., 2.], [0., 2.], [2., 4.], [2., 4.], [2., 2.], [4., 4.], [0., 2.], [2., 4.], [0., 2.], [2., 4.] ]) ey = array([ [2., 2.], [0., 0.], [2., 2.], [0., 0.], [0., 2.], [0., 2.], [0., 2.], [0., 2.], [2., 0.], [2., 0.] ])

30 Assemblering med loopar elx = rad n i ex ely = rad n i ey eltopo = rad n i Edof Loop över flera variabler for elx, ely, eltopo in zip(ex, ey, Edof): Ke = bar2e(elx, ely,ep) assem(eltopo,k,ke)

31 Beräkning av elementkrafter kompakt form ed=extracteldisp(edof,a) N=zeros([Edof.shape[0]]) Extraherar alla element förskjutningar till ed print("element forces:") i = 0 for elx, ely, eld in zip(ex, ey, ed): N[i] = bar2s(elx,ely,ep,eld) print("n%d = %g" % (i+1,n[i])) i+=1

32 Använda koordinat matriser

33 Skapa ex, ey från coord, dof och edof coord = array([ [0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0] ]) dof = createdofs(coord.shape[0],1) edof = array([ [1,2,3], [1,3,4] ]) # --- Beräkna element koordinater ex, ey = coordxtr(edof, coord, dof)

34 Tips Storlek på systemmatris ndofs = edof.max() Skapa en matris med samma storlek som en annan matris B = zeros([a.shape[0],a.shape[1]])

35 Modulstruktur # -*- coding: utf-8 -*- from numpy import * from pycalfem import * def createinput():... def solveproblem(...):... def createreport(...):... if name == main :... = createinput()... = solveproblem(...) createreport(...) name == main när filen körs från IDLE eller Python. name!= main när filen importeras som en modul dvs import model Huvudprogram

36 Allmänt om uppgiften Indatagenerering Användargränssnitt Nätgenerering Beräkning Elementmatriser Assemblering Lösning Elementkrafter Redovisning av utdata Resultatrapport Diagram Arbetsblad 2

37 Nätgenerering " eller hur man syr ihop många element "

38 Nätgenerering För större problem måste topologin skapas med hjälp av algoritmer Utgår ofta från en geometrisk beskrivning Kriterier kan sättas som anger hur tätt elemennätet skall genereras Area/Volymskriterier Explicit angivelse av antal element på ränder Resultat från tidigare beräkning kan ligga till grund för hur ett nät skall förbättras, adaptivt nät.

39 Nätgenering Strukturerad nätgenerering Regel finns för strukturen på nätet Koordinatsystem anger element position Ostrukturerad nätgenerering Algoritm fyller volym ytor med element Ofta begränsade till triangel- eller tetraederelement

40 Ostrukturerat nät

41 Strukturerade nät

42 Strukturerade nät

43 GMSH 3D finite element grid generator Pre- och postprocessering Hanterar både strukturerade och ostrukturerade mesh Använder en rand-beskrivning för att beskriva geometrier Linjer, cirklar, splines ytor mm Geometrier beskrivs i ett eget språk

44 Nätgenerering och Calfem för Python Nätgenerering med GMSH kan göras direkt i CALFEM för Python Modulerna pycalfem_geodata och pycalfem_mesh Geometri beskrivs i GeoData klassen Nätgenerering görs sedan med GmshMesher klassen Resultatet av nätgenereringen är matriser som kan användas direkt i CALFEM

45 Exempel t d h w

46 Importera moduler # Needed module imports from pycalfem import * from pycalfem_utils import * from pycalfem_geodata import * from pycalfem_mesh import * import pycalfem_vis as pcv import visvis as vv from math import sqrt, pow

47 Variabler för problembeskrivning # Problem parameters w = h = 10.0 t = 1.0 d = h/2 D = identity(2,'float') * 1.0 ep = [1.0, 1]

48 Skapa punkter # Create geometry instance g = GeoData() g.addpoint([0, 0]) # 0 g.addpoint([w, 0]) # 1 g.addpoint([w, h]) # 2 g.addpoint([w-w/2.+t/2., h]) # 3 g.addpoint([w-w/2+t/2, h-d]) # 4 g.addpoint([w-w/2-t/2, h-d]) # 5 g.addpoint([w-w/2-t/2, h]) # 6 g.addpoint([0.,h]) # 7

49 Skapa linjer Markörer för att ange var randvillkoren skall tillämpas g.addspline([0, 1]) #0 g.addspline([1, 2]) #1 g.addspline([2, 3], marker=80) #2 g.addspline([3, 4]) #3 g.addspline([4, 5]) #4 g.addspline([5, 6]) #5 g.addspline([6, 7], marker=90) #6 g.addspline([7, 0]) #7

50 Skapa yta/ytor Linjer som beskriver ytan g.addsurface([0,1,2,3,4,5,6,7])

51 Nätgenerering eltype = 3 dofspernode = 1 Variabler för elementtyp. Kan vara bra att ha senare mesher = GmshMesher(geoData = g, gmshexecpath = None, elsizefactor = 0.5, eltype = eltype, dofspernode= dofspernode) Styr storleken på de genererade elementen coords, edof, dofs, bdofs, elementmarkers = mesher.create() Strukturer som anger frihetsgrader och information för de tidigare definierade markörerna

52 Assemblering ndofs = size(dofs) ex, ey = coordxtr(edof, coords, dofs) K = zeros([ndofs,ndofs]) Beräkna totala antalet frihetsgrader for eltopo, elx, ely in zip(edof, ex, ey): Ke = flw2i4e(elx, ely, ep, D) assem(eltopo, K, Ke) Extraherar elementkoordinater och topologi för ett element i taget assem modifierar styvhetsmatrisen direkt behöver inte returneras som i MATLAB

53 Randvillkor f = zeros([ndofs,1]) bc = array([],'i') bcval = array([],'i') Randvillkor lagras i 2 arrays en för frihetsgrad och en för värdet bc, bcval = applybc(bdofs, bc, bcval, 80, 0.0) bc, bcval = applybc(bdofs, bc, bcval, 90, 10.0) applybc tillämpar randvillkoret på angiven markör. Finns också applyforce för att uppdatera lastvektorn

54 Lösning av ekvationssystem a,r = solveq(k,f,bc,bcval) ed = extracteldisp(edof,a) Samma syntax som CALFEM Beräkning av elementkrafter maxflow = [] for i in range(edof.shape[0]): es, et, eci = flw2i4s(ex[i,:], ey[i,:], ep, D, ed[i,:]) maxflow.append( math.sqrt( math.pow(es[0,0],2) + math.pow(es[0,1],2)) ) Värdet på flödet i element beräknas här.

55 Visualisering pcv.drawgeometry(g, drawpoints=true, labelcurves=true, title="geometry") vv.figure() pcv.drawelementvalues( maxflow, coords, edof, dofspernode, eltype, dodrawmesh=false, title="max flows") vv.figure() pcv.drawnodalvalues(a, coords, edof, dofspernode, eltype, dodrawmesh=false, title="nodal values") app = vv.use() app.create() app.run() Ser till att uppdatera fönstren Värdet på flödet i element beräknas här.

56 Visualisering - Geometri

57 Visualisering - Nodvärden

58 Visualisering - Elementflöden

59 Objektorientering

60 Klasser Grupperar data och funktioner till en enhet Funktioner i klassen opererar på data i klassen Möjligör enklare och mer lättförstådd kod Kan utökas i framtiden utan att existerande kod behöver ändras Alla datatyper i python är klasser

61 Exempel på klass Konstruktor. Anropas när klassen instantieras (skapas) Alla klassfunktioner har self som första parameter, vilken är en variabel som pekar på den egna instansen. Skickas automatiskt till funktionerna. class Point: def init (self, x, y): self._x = x self._y = y def show(self): print "x =", self._x, ", y =", self._y def setposition(self, x, y): self._x = x self._y = y def getposition(self): return self._x, self._y p1 = Point(0.0, 0.0) p1.show() p1.setposition(2.0, 3.0) p1.show() x = 0.0, y = 0.0 x = 2.0, y = 3.0 x = 1.0, y = p2 = Point(1.0, 2.0) p2.show() x, y = p2.getposition() print x, y

62 Arv Nya klasser kan ärva funktionalitet från andra klasser Funktionalitet kan läggas till utan att påverka existerande kod

63 Exempel på arv class Circle(Point): def init (self, x, y, radius): Point. init (self, x, y) self._radius = radius Anropa Points konstruktor def show(self): x, y = self.getposition() print "x =", x, ", y =", y, ", radius =", self._radius def setradius(self, radius): self._radius = radius def getradius(self): return self._radius def getarea(self): return pi*self._radius**2 if name == " main ": c1 = Circle(0.0, 0.0, 1.0) c1.setposition(1.0, 2.0) c1.show() print "area =", c1.getarea() setposition från Point

64 Visualisation in Python

65 2D 3D Tkinter Canvas widget Python Gnuplot matplotlib Outline PyOpenGL vpython Visualisation Toolkit VTK

66 Python Gnuplot Python interface to Gnuplot Allows direct plotting of Python and Numeric data types in Gnuplot Depends on an external application Does not integrate with GUI-toolkits

67 Examples

68 Code import Gnuplot from Numeric import * points1 = [[0,1.2],[1.1,5.2],[2,-0.3]] x = arrayrange(0.0, 1.8, 0.1) y = 3-2*x + 2*sin(4*x) points2 = transpose(array([x,y])) gnuplot = Gnuplot.Gnuplot() d1 = Gnuplot.Data(points1, with='lines', title='points1') d2 = Gnuplot.Data(points2, with='linespoints', title='points2') d3 = Gnuplot.Data(x, y, with='linespoints', title='x and y') gnuplot.title('simple Python-Gnuplot demo') gnuplot.xlabel('t') gnuplot.plot(d1, d2) gnuplot.hardcopy(filename='tmp.ps', enhanced=1, mode='eps', color=0, fontname='times-roman', fontsize=28) gnuplot('set term png small') gnuplot('set output "tmp.png"') gnuplot.plot(d1, d2, d3)

69 matplotlib Python module for 2D plotting No dependencies on external applications Close to MATLAB syntax Many backends for export Integrates into wxwindows, Tkinter etc. Supports Numeric

70 Examples

71 Simple from pylab import * plot([1,2,3,4]) show()

72 from pylab import * plot([1,2,3,4],[1,4,9,16]) show() x and y series

73 axis and saving from pylab import * plot([1,2,3,4], [1,4,9,16], 'ro') axis([0, 6, 0, 20]) savefig('secondfig.png') show()

74 Setting properties from pylab import * from Numeric import * x = arange(0.0, 2*pi, 0.1) y = sin(x) x1 = arange(0.0, 2*pi, 0.1) y1 = cos(x1) x2 = arange(0.0, 2*pi, 0.1) y2 = sin(2*x2) plot(x, y, linewidth=2.0) line, = plot(x, y, 'o') line.set_antialiased(false) # turn off antialising lines = plot(x1, y1, x2, y2) set(lines, color='r', linewidth=2.0) set(lines, 'color', 'r', 'linewidth', 2.0) show()

75 Setting properties

76 Subplots from pylab import * def f(t): s1 = cos(2*pi*t) e1 = exp(-t) return multiply(s1,e1) t1 = arange(0.0, 5.0, 0.1) t2 = arange(0.0, 5.0, 0.02) numrows=2 numcols=1 fignum=1 figure(1) subplot(211) plot(t1, f(t1), 'bo', t2, f(t2), 'k') subplot(212) plot(t2, cos(2*pi*t2), 'r--') show() numrows=2 numcols=1 fignum=1

77 Subplots

78 Multiple figures from pylab import * figure(1) plot([1,2,3]) figure(2) plot([4,5,6]) figure(1) title('easy as 1,2,3') show() # the first figure # a second figure # figure 1 current # figure 1 title

79 Multiple figures

80 Fonts from pylab import * font = {'fontname' : 'Courier', 'color' : 'r', 'fontweight' : 'bold', 'fontsize' : 11} plot([1,2,3]) title('a title', font, fontsize=12) text(0.5, 2.5, 'a line', font, color='k') xlabel('time (s)', font) ylabel('voltage (mv)', font) show()

81 Fonts

82 Mathematical text from pylab import * t = arange(0.0, 2.0, 0.01) s = sin(2*pi*t) plot(t,s) title(r'$\alpha_i > \beta_i$', fontsize=20) text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20) text(0.6, 0.6, r'$\cal{a}\rm{sin}(2 \omega t)$', fontsize=20) xlabel('time (s)') ylabel('volts (mv)') savefig('mathtext_tut', dpi=50) show()

83 Mathematical text

84 Plot window controls Save plot Zoom Pan Next view Previous view Reset view to default

85 Visualisation Toolkit Open Source 3d graphics toolkit Language bindings to C++, Java, Python, Tcl Implements most visualisation algorithms available Uses a the Visualisation network concept Large and complex to use Easier in Python : )

86 Simple example # load VTK extensions from vtkpython import * # create a rendering window and renderer ren = vtkrenderer() renwin = vtkrenderwindow() renwin.addrenderer(ren) renwin.setsize(300,300) iren = vtkrenderwindowinteractor() iren.setrenderwindow(renwin) # create an actor and give it cone geometry cone = vtkconesource() cone.setresolution(8) conemapper = vtkpolydatamapper() conemapper.setinput(cone.getoutput()) coneactor = vtkactor() coneactor.setmapper(conemapper) # assign our actor to the renderer ren.addactor(coneactor) # enable user interface interactor iren.initialize() iren.start()

Regel finns för strukturen på nätet Koordinatsystem anger element position

Regel finns för strukturen på nätet Koordinatsystem anger element position Nätgenerering Nätgenerering För större problem måste topologin skapas med hjälp av algoritmer Utgår ofta från en geometrisk beskrivning Kriterier kan sättas som anger hur tätt elemennätet skall genereras

Läs mer

Programutveckling för Tekniska Tillämpningar Arbetsblad 5

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 mer

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,

Läs mer

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Kodexempel 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 mer

Programutveckling för Tekniska Tillämpningar Arbetsblad 4

Programutveckling för Tekniska Tillämpningar Arbetsblad 4 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

Läs mer

Sätt att skriva ut binärträd

Sä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 mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Numerisk lösning av PDE: Comsol Multiphysics

Numerisk lösning av PDE: Comsol Multiphysics J.Oppelstrup p 1 (5) Numerisk lösning av PDE: Comsol Multiphysics I denna lab ska du bekanta dig med programmet Comsol Multiphysics för numerisk lösning av PDE med finita element. Programmet har många

Läs mer

Övning 1 - Abstrakta datatyper

Övning 1 - Abstrakta datatyper /home/lindahlm/activity-phd/teaching/12dd1320/exercise1/exercise1.py September 3, 20121 0 # coding : latin Övning 1 - Abstrakta datatyper 18 Summering Vi gick igenom betydelsen av abstrakta datatyper/datastrukturer.

Läs mer

Manual för ett litet FEM-program i Matlab

Manual för ett litet FEM-program i Matlab KTH HÅLLFASTHETSLÄRA Manual för ett litet FEM-program i Matlab Programmet består av en m-fil med namn SMALL_FE_PROG.m och en hjälp-fil för att plotta resultat som heter PLOT_DEF.m. Input För att köra programmet

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Fö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 mer

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

Idag: 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 mer

Kort om programmering i Python

Kort om programmering i Python CTH/GU mmgl50-2018 Matematiska vetenskaper Kort om programmering i Python 1 Inledning Redan i första laborationen gjorde ni ett litet program. Ni skrev en script eller skriptfil som beräknade summan 5

Läs mer

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 TAIU07 Föreläsning 2 Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 Matriselement och Index För att manipulera

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Fö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 mer

TSBB14 Laboration: Intro till Matlab 1D

TSBB14 Laboration: Intro till Matlab 1D TSBB14 Laboration: Intro till Matlab 1D Utvecklad av Maria Magnusson med mycket hjälp av Lasse Alfredssons material i kursen Introduktionskurs i Matlab, TSKS08 Avdelningen för Datorseende, Institutionen

Läs mer

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Introduktion till programmering SMD180. Föreläsning 3: Funktioner Introduktion till programmering Föreläsning 3: Funktioner 1 1 Mer matematik Vi har sett matematiska uttryck med variabler, värden och operatorer, ex: 17+n pi/2 hours*60+minutes Kan man även skriva uttryck

Läs mer

Konvexa höljet Laboration 6 GruDat, DD1344

Konvexa höljet Laboration 6 GruDat, DD1344 Konvexa höljet Laboration 6 GruDat, DD1344 Örjan Ekeberg 10 december 2008 Målsättning Denna laboration ska ge dig övning i att implementera en algoritm utgående från en beskrivning av algoritmen. Du ska

Läs mer

Introduktion till Python Teoridel

Introduktion till Python Teoridel Institutionen för teknikvetenskap och matematik, LTU 2 november 2014 Laboration 1, M0043M, HT14 Laborationsuppgifter skall lämnas in senast 21 november 2014. Introduktion till Python Teoridel 1 Inledning

Läs mer

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

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Introduktion till MATLAB

Introduktion till MATLAB 29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna

Läs mer

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi. Grunderna i MATLAB eva@it.uu.se Innehåll Vad är MATLAB? Användningsområden MATLAB-miljön Variabler i MATLAB Funktioner i MATLAB Eempel och smakprov: Grafik Beräkningar Bilder GUI Vad är MATLAB? Utvecklat

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

Övning 1. Abstrakta datatyper. 1. Stacken. class Stack: """A representation of a last-in-first-out (LIFO) stack of objects."""

Övning 1. Abstrakta datatyper. 1. Stacken. class Stack: A representation of a last-in-first-out (LIFO) stack of objects. Per Sedholm DD1320 (tilda11) 2011-09-02 Övning 1 Abstrakta datatyper 1. Stacken -*- coding: utf-8 -*- """Classroom exercise 1, example 1.""" class Stack: """A representation of a last-in-first-out (LIFO)

Läs mer

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler 21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse

Läs mer

TENTAMEN I DATAVETENSKAP

TENTAMEN I DATAVETENSKAP Umeå Universitet Datavetenskap Marie Nordström Thomas Johansson Jürgen Börstler 030124 TENTAMEN I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH PROGRAMMERING I JAVA, 5P. (TDBA63) Datum : 030124 Tid : 9-15 Hjälpmedel

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

TMV225 Inledande matematik M. Veckoprogram för läsvecka 4

TMV225 Inledande matematik M. Veckoprogram för läsvecka 4 MATEMATISKA VETENSKAPER TMV5 016 Chalmers tekniska högskola Läsvecka 4 Examinator: Anders Logg TMV5 Inledande matematik M Veckoprogram för läsvecka 4 Denna vecka kommer vi först att definiera och studera

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se

Läs mer

Användargränssnitt för proaktiv störningshantering för utilities

Användargränssnitt för proaktiv störningshantering för utilities ISSN 0280-5316 ISRN LUTFD2/TFRT--7623--SE Användargränssnitt för proaktiv störningshantering för utilities Martin Carlson Lund University Department of Automatic Control August 2012 Lund University Department

Läs mer

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Moduler Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Vi har också ofta behov av att skapa överblick i våra program. Som ett

Läs mer

Arrayer. results

Arrayer. results Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1

Läs mer

Umeå universitet Tillämpad fysik och elektronik Annika Moström Fackverk. Projektuppgift 1 Hållfasthetslärans grunder Våren 2012

Umeå universitet Tillämpad fysik och elektronik Annika Moström Fackverk. Projektuppgift 1 Hållfasthetslärans grunder Våren 2012 Umeå universitet Tillämpad fysik och elektronik Annika Moström 212-3-6 Fackverk Projektuppgift 1 Hållfasthetslärans grunder Våren 212 Fackverk 1 Knut 3 Knut 2 Stång 2 Stång 3 y Knut 4 Stång 1 Knut 1 x

Läs mer

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15

Skolan 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 mer

Modeller och teknik Grundl program och gränssnitt. Matlab-tips

Modeller och teknik Grundl program och gränssnitt. Matlab-tips Matlab-tips Matlab Guide För att underlätta programmerandet av Grafiska användargränssnitt (GUI Graphical User Interface) så finns en modul i Matlab som heter Guide och där kan man rita upp sitt användargränsnitt

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2015 2014 jonas.kvarnstrom@liu.se

Läs mer

Funktioner. Linda Mannila

Funktioner. Linda Mannila Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen

Läs mer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering I Tobias Wrigstad fredag, 2009 augusti 28 Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2016 2014 jonas.kvarnstrom@liu.se

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2015/2016 Matematiska vetenskaper Introduktion till Matlab 1 Inledning Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor och universitet runt

Läs mer

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.

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

Läs mer

Umeå universitet Tillämpad fysik och elektronik Annika Moström Rambärverk. Projektuppgift 2 Hållfasthetslärans grunder Våren 2012

Umeå universitet Tillämpad fysik och elektronik Annika Moström Rambärverk. Projektuppgift 2 Hållfasthetslärans grunder Våren 2012 Umeå universitet Tillämpad fysik och elektronik Annika Moström 01-0-3 Rambärverk Projektuppgift Hållfasthetslärans grunder Våren 01 Rambärverk 1 Knut Balk Knut 3 Balk 1 Balk 3 Knut 1 Knut 4 1 Figure 1:

Läs mer

Språket Python - Del 2 Grundkurs i programmering med Python

Språ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 mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

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

Läs mer

ATT RITA GRAFER MED KOMMANDOT "PLOT"

ATT RITA GRAFER MED KOMMANDOT PLOT MATLAB, D-plot ATT RITA GRAFER MED KOMMANDOT "PLOT" Syntax: Vi börjar med det enklaste plot-kommandot i matlab,,där x är en vektor x- värden och y en vektor med LIKA MÅNGA motsvarande y-värden. Anta att

Läs mer

Laboration: Grunderna i Matlab

Laboration: Grunderna i Matlab Laboration: Grunderna i Matlab Att arbeta i kommandofönstret och enkel grafik Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs kommandofönster. Det kan liknas vid

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2014 2017 jonas.kvarnstrom@liu.se

Läs mer

Grundläggande datalogi - Övning 1

Grundläggande datalogi - Övning 1 Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Laboration 3, uppgift En klass för en räknare

Laboration 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 mer

TDDD78 Objektorientering: Lagring och livstid

TDDD78 Objektorientering: Lagring och livstid jonas.kvarnstrom@liu.se 2017 TDDD78 Objektorientering: Lagring och livstid Tre sorters variabel (1): Lokal 3 Deklareras i en metod Lokal variabel Varje anrop får sin egen "kopia": Två anrop till foo()

Läs mer

TDDC30. 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 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 mer

Skillnader mellan Python och Java

Skillnader mellan Python och Java Java Utvecklat på SUN Microsystems mitten 1990-talet Ursprungligen för Webprogram Nu mycket spritt Massor med läroböcker Vi använder Lewis&Loftus http://javasuncom/javase/6/docs/api/ Skillnader mellan

Läs mer

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python

Läs mer

Fö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 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 mer

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015 Objektorienterad Programkonstruktion Föreläsning 7 24 nov 2015 Observer (GoF) Man definierar ett "ett-till-många"-förhållande mellan objekt så att när ett objekt byter tillstånd så uppdateras alla beroende

Läs mer

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning CTH/GU LABORATION 1 MVE16-1/13 Matematiska vetenskaper 1 Inledning Mer om grafritning Vi fortsätter att arbeta med Matlab i matematikkurserna. Denna laboration är i stor utsträckning en repetition och

Läs mer

Allmänt om Mathematica

Allmänt om Mathematica Allmänt om Mathematica Utvecklades av Wolfram Research (Stephen Wolfram) på 80-talet Programmet finns bl.a. till Windows, Mac OS X, Linux. Finns (åtminstone) installerat i ASA B121 (Stansen), i matematik

Läs mer

GNU Octave 2.1.72 under Cygwin Spara grafik i postscriptfiler. Per Jönsson, NMS, Malmö högskola

GNU Octave 2.1.72 under Cygwin Spara grafik i postscriptfiler. Per Jönsson, NMS, Malmö högskola GNU Octave 2.1.72 under Cygwin Spara grafik i postscriptfiler Per Jönsson, NMS, Malmö högskola 1 1 Gnuplot Octave använder Gnuplot för att visa grafik. Gnuplot är ett mycket kraftfullt programpaket som

Läs mer

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor Teorifrågor : Visa att gradienten till en funktion pekar i den riktning derivatan är störst och att riktingen ortogonalt mot gradienten är tangent till funktionens nivåkurva. Visa hur derivatan i godtycklig

Läs mer

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

Beräkningsverktyg HT07

Beräkningsverktyg HT07 Beräkningsverktyg HT07 Föreläsning 1, Kapitel 1 6 1.Introduktion till MATLAB 2.Tal och matematiska funktioner 3.Datatyper och variabler 4.Vektorer och matriser 5.Grafik och plottar 6.Programmering Introduktion

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: 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 mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Grundkurs Programmering

Grundkurs Programmering HI124 Grundkurs Programmering F7b: Funktioner på djupet! A. Cajander, STH 6 1 5 42 3.14f a float char short circuit order of subexp eval. Dagens fokus = + - * / % ++ -- + - * / % & ^ > ==!= > < >=

Läs mer

Laboration 2, M0043M, HT14 Python

Laboration 2, M0043M, HT14 Python Laboration 2, M0043M, HT14 Python Laborationsuppgifter skall lämnas in senast 19 december 2014. Förberedelseuppgifter Läs igenom teoridelen. Kör teoridelens exempel. Teoridel 1 Att arbeta med symboliska

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Matrismetod för analys av stångbärverk

Matrismetod för analys av stångbärverk KTH Hållfasthetslära, J aleskog, September 010 1 Inledning Matrismetod för analys av stångbärverk Vid analys av stångbärverk är målet att bestämma belastningen i varje stång samt att beräkna deformationen

Läs mer

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)

Läs mer

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering TDP002 - Imperativ programmering Underprogram Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Underprogram Parametrar Returvärden Räckvidd och skuggning

Läs mer

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

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

Läs mer

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser Hur används hierarkier för att modellera nära relaterade typer? Nu:

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer

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

Fö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 mer

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 3: Loopar 729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel

Läs mer

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,

Läs mer

Studio 6: Dubbelintegral.

Studio 6: Dubbelintegral. Studio 6: Dubbelintegral. Analys och Linjär Algebra, del C, K1/Kf1/Bt1, vt09 20 februari 2009 1 Repetition av enkelintegral I ALA B skrev du en MATLAB-funktion minintegral som beräknar integralen av en

Läs mer

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Samlingar, 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 mer

DAT043 - Föreläsning 7

DAT043 - 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 mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 215, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Linjära ekvationssystem

Linjära ekvationssystem CTH/GU LABORATION MVE0-0/0 Matematiska vetenskaper Inledning Linjära ekvationssystem Redan i första läsperioden löste vi linjära ekvationssystem Ax = b med Matlab. Vi satte ihop koefficentmatrisen A med

Läs mer

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 2 november 2015 Sida 1 / 23 Föreläsning 2 Index. Kolon-notation. Vektoroperationer. Summor och medelvärden.

Läs mer

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Objektorienterad Programmering (OOP) Murach s: kap 12-16 Objektorienterad Programmering (OOP) Murach s: kap 12-16 2013-01-28 1 Winstrand Development Objektorienterad Programmering Förkortas OOP Objektorientering innebär att man delar in koden i olika block,

Läs mer

MATLAB. En kort praktisk introduktion. Olof Hultin FAFA Omarbetad efter original av Henrik Persson

MATLAB. En kort praktisk introduktion. Olof Hultin FAFA Omarbetad efter original av Henrik Persson MATLAB En kort praktisk introduktion Olof Hultin olof.hultin@ftf.lth.se Omarbetad efter original av Henrik Persson FAFA10 2014-11-06 Dagens föreläsning K404: Kort introduktion till MATLAB - ca 40 min H212:

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 TMV216/MMGD20-2017/2018 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska

Läs mer

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara

Läs mer

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2015 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

PROGRAMMERING-Java TENTAMINA

PROGRAMMERING-Java TENTAMINA PROGRAMMERING-Java TENTAMINA Nicolina Månsson 2010-03-17 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För

Läs mer

PROGRAMMERING-Java Omtentamina

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. -

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 23 24 Konstruktion av Fält Fysisk datatyp i

Läs mer

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 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 mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN 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 mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning läsvecka 4 Magnus oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/17 Denna föreläsning (läsvecka 4) Kursadministration (redovisning projekt 2,

Läs mer

Objektorientering: Lagring och livstid

Objektorientering: Lagring och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Objektorientering: Lagring och livstid Tre sorters variabler Tre sorters variabel (1): Lokal 2 Lokal variabel Deklareras inuti en metod Vid varje anrop

Läs mer