TBSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet
|
|
- Maj Jakobsson
- för 6 år sedan
- Visningar:
Transkript
1 TBSK03 Teknik för avancerade Datorspel Jens Ogniewski Information Coding Group Linköpings universitet
2 Representation av rotation Eulervinklar Y = Ryaw Rpitch Rroll X Intuitivt, fast svårt att göra Interpolation av rotation nontrivialt, problem med nonlinearbeteende Problem med gimbal lock kan förekomma 1/18
3 Representation av rotation Gimbal lock 2/18
4 Representation av rotation Ortogonal matris 3/18
5 Representation av rotation Ortogonal matris Enkelt att kombinera olika operationer med varann Information (t.ex. fram-vektor) kan läsas ut direkt från matrixen Interpolation? Det är möjligt att göra sucessiva rotationer, men hur hittar man rotationssteget? 3/18
6 Representation av rotation Rotationsmatrix och vinkel Interpolation mellan axlarna? 4/18
7 Representation av rotation 3-komponent vektor Längd = rotationsvinkel Enkelt att göra linear interpolation Nästan som Kvaternioner 5/18
8 Kvaternioner Flerdimensionell generalisering av komplexa tal i² = j² = k² = ijk = -1 Flesta operationer funker som vanligt, fast ingen kommunitativitet på multiplikation qp pq Definition: Kvaternion q = w + xi + yj + zk, med w,x,y,z reella tal Alternativ: q = (w,n) med n tredimensionell vektor w kallas skalar del, n vektor del (alt. imaginativ del) Om w=0: ren imaginativ 6/18
9 Kvaternioner Multiplikation med imaginärdelen 1 i j k 1 1 i j k i i -1 -k j j j k -1 -i k k -j i -1 7/18
10 Kvaternioner Multiplikation av två kvanterjoner: (w1 + x1i + y1j + z1k)(w2 + x2i + y2j + z2k) = w1w2 x1x2 y1y2 z1z2 + (w1x2 + x1w2 + y1z2 z1y2)i + (w1y2 x1z2 + y1w2 + z1x2)j + (w1z2 + x1y2 y1x2 + z1w2)k 8/18
11 Kvaternioner Konjugat q*: q=(w,n), q*=(w,-n) = (w - xi - yj - zk) Magnitude: q ² = qq* = q*q = w² + n ² = w² + x² + y² + z² Kvadratrot från magnitude = norm Enhetskaternjon: kvaternion med norm=1 Erhålles genom att dela kvaternion med norm Eller: q = (cos(v/2),sin(v/2)n) Inverse: 9/18
12 Kvaternioner Exponentialfunktioner: Vi definerar för q = (w, tn): qt = (cos(tv/2),sin(tv/2)n) exp(q) = ew(cos(t), sin(t)n) <=> q = R exp((0,n)t), med n = 1 log(q) = (log(r), nt) <=> qt = exp(t log(q)) 10/18
13 Kvaternioner q = (cos(v/2),sin(v/2)n): q reprensenterat som rotation med vinkel v om axal n Vektor r: Skapa Kvaternion p = (0,r) Kan nu roteras meddels: p' = q p q* Kan enkelt kombinera rotationer 11/18
14 Kvaternioner Som matris: Kvaternioner kan konverteras till matris genom: alt.: 12/18
15 Kvaternioner Men hur kommer vi från rotationsrepresentation till matris? Tredimensionell matris: Matrisspår: T=a+e+m+1 13/18
16 Kvaternioner Men hur kommer vi från rotationsrepresentation till matris? Om T w= 0: = Men: problem om T är nästan noll (t.ex. rotationer om 1800) 14/18
17 Kvaternioner Möjlig lösning: w = sqrt( max( 0, 1 + a + e + m) ) / 2 x = sqrt( max( 0, 1 + a - e - m) ) / 2 y = sqrt( max( 0, 1 - a + e - m) ) / 2 z = sqrt( max( 0, 1 - a - e + m) ) / 2 x = copysign( x, h - f ) y = copysign( y, c - g ) z = copysign( z, d - b ) med copysign(a, b) = a sign(a) sign(b) 15/18
18 Slerp Interpolation med Kvaternioner Spherical linear interpolation q = (q2q1-1)t q1 = q1(q1-1q2)t = q2(q2-1q1)1-t = (q1q2-1)1-t q2 slerp(t, q1, q2) = (q2 q1-1)t q1 Interpolera med konstant hastighet 16/18
19 Squad Problem: Vid interpolation mellan flera kvaternioner med slerp blir det diskontinuitet i hastigheten när vi byter från ett kvaternionpar till nästa Samma problem om interpolation mellan punktpar 17/18
20 Squad Lösning (liknar Bézier el. Hermite splines): Definerar: squad(t,a,p,q,b) = slerp(2t(1-t), slerp(t,a,b), slerp(t,p,q)) för att få kontinuitet vid interpolation: qi = aiexp(-(log(ai+1ai-1) + log(ai-1ai-1))/4) och interpolera med squad(t, ai, qi, qi+1, ai+1) 18/18
21 Länkar Wikipedia: Slerp paper: Bok om matematik inom datorgrafik: id=bfcleqrusm8c&lpg=pa86&ots=fpupf6p_hw&dq=quat ernions%20in%20computer %20graphics&pg=PA88#v=onepage&q=quaternions%20in %20computer%20graphics&f=false 18/18
22 OpenCL Jens Ogniewski Information Coding Group Linköpings universitet
23 OpenCL - Introduktion Språk för programmering av parallela datorer Programmerare bestämmer explicit vilka delar som körs parallelt Oberoende av arkitektur, hårdvaruimplementation transparent (fast båda med undantag) Baserad på C99 (med ändringar) Först föreslaget av Apple 1/13
24 OpenCL - Introduktion 2/13
25 OpenCL - Introduktion 3/13
26 OpenCL Plattform model En host, en el. flera compute device (t.ex. grafikkort) Varje compute device består av en el. flera compute units (t.ex. shader) Varje compute unit består av en el. flera processing elements 4/13
27 OpenCL Exekveringsmodell Hur fungerar det? Funktion för att kontrollera hur många och vilka compute units som är lediga Funktion för att kontrollera hur många processing elements en särskild compute unit har Alla work items i en workgroup har samma kod och körs parallellt: Funktioner finns för att få work item-id och workgroup-id => kan användas för att få en offset på input och output data Får inte bero på varandra Fast barrier funktion finns: ingen compute unit fortsätter innan alla andra har kommit dit Ingen sykronisering (t.ex. av variabler) annars! 6/13
28 OpenCL Exekveringsmodell 7/13
29 OpenCL Minnesmodell Private memory: Bara en särskild work item har tillgång (t.ex. register) Local memory: Bara en särskild work group har tillgång Oftast använt för variabler som inte får plats i private memory Global memory Constant memory 8/13
30 OpenCL Minnesmodell Kan specificera var en variabel skulle vara Minne kan specificeras som read-only, write-only el. readwrite Stött objekt: buffer (som array i c, bara endimensionell möjlig), image (2D el. 3D) Tänk på: ingen automatisk synkronisering! Dock: efter barrier är allt minne inom en work group garanterat synkroniserat Restsynkronisering måste man ta hand om själv! Funktioner finns som väntar tills en händelse skett (e.ex. output skrivits) 9/13
31 OpenCL Språk Baserat på C99, fast: Inga funktionspekare! Inga pekare till pekare i funktionsanrop! Ingen rekursion! Inga arrays med dynamisk längd! Inga bitfields! Dessutom optional: Skriver till pekare som är mindre än 32 bitar Skriver till 3D images Double och half types Atomic funktioner 10/13
32 OpenCL Språk Primitive datatypes: Bool, char, short, int, long, float, size_t, void Integrerade funktioner: math.h, läser / skriver till en image, konverteringsfunktioner (inkl. saturation och rounding) 11/13
33 OpenCL Kompabilitet med OpenGL Kommunikation medels API-funktioner OpenGL- och OpenCl-funktioner kan dela data t.ex. OpenCL objekt från OpenGL objekt Blir inte koperat! Applikation kan blanda OpenCL- och OpenGL-funktioner, delar resurser mellan dem 12/13
34 OpenCL Exempelarkitektur Nvidia GeForce GTX 280 / 285: 30 computing units med 8 processing elements vardera register ( private memory ) per processing element 64 kbyte constant memory 16 kbyte shared memory 16 kb local memory Stöd för 64 bit words och double types Stöd för atomic functions 13/13
35 Thank you very much!
TBSK03 Teknik för avancerade Datorspel 49(68)
49(68) TBSK03 Teknik för avancerade Datorspel 49(68) Representation av rotation 1/17 Eulervinklar Rotation kring axlarna (t.ex. Zyx) A' = R yaw R pitch R roll A Intuitivt, fast svårt att göra Interpolation
T BSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet
T BSK03 Teknik för avancerade Datorspel Jens Ogniewski Information Coding Group Linköpings universitet Representation av rotation Eulervinklar Rotation kring axlarna (t.ex. Zyx) A' = R yaw R pitch R roll
TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY
TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY Fysik Datorgrafik Spelmekanismer AI Nätverk Spelaspekter i vetenskaplig litteratur M. Mauve, J. Vogel, V. Hilt, W. Effelsberg
Skinning and Animation
Skinning and Animation Skelett Keyframe animation BSpline Quaternioner Kinematics Animation Blending Skinning Skinning på GPU:n Skelett Hierarkiskt Kan närmast liknas vid en trädstruktur Ben och leder
Innehåll. Referenssystem. Matriser. Rotationsmatrisen. Euler angle. Animering av ett objekts rotation
Innehåll Den här föreläsningen fokuserar på animering (läs interpolation) av rotationer En snabb genomgång av koordinatsystem görs för att ha kontroll på åt vilket håll vi egentligen roterar och kring
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet
TBSK 03 Teknik för avancerade datorspel Jens Ogniewski Information Coding Group Linköpings universitet Problemdefinition Fleranvändarspel på webben (framförallt MMPORG) populärare än lokala nätverk- eller
Information Coding / Computer Graphics, ISY, LiTH. Minnesaccess. Vitalt för prestanda! Minnestyper. Coalescing
Minnesaccess Vitalt för prestanda! Minnestyper Coalescing Exampel på hur man kan använda delat minne Minnestyper Global Shared Constant (read only) Texture cache (read only) Local Registers Viktiga när
Information Coding / Computer Graphics, ISY, LiTH. Compute shaders!! Framtiden för GPU computing eller sen efterapning av Direct Compute?
Compute shaders Framtiden för GPU computing eller sen efterapning av Direct Compute? Compute shaders Tidigare rent Microsoft-koncept, Direct Compute Numera även i OpenGL, ny shadertyp från OpenGL 4.3 Varför
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
F5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
F5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
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
FRITHIOF HELLBERG TRÄFFAS SÄKRAST KL. 2 3.
: 38 (769) : 6:» 8:» 5: > 3: : V 2 V: 2 3 : 0 90 Y X V j»yé z» - y j y y y j j X V : Wy j - Y 6 V V 0 5 : 6 4 7 6 4 6 y j j j - y ' é :» j j» 4: Y 8 9 5 3000 6 0 0 y éé y j j j y 889 j y y j j y j y 9
Föreläsning 10. Pekare (Pointers)
Föreläsning 10 Pekare (Pointers) Dagens kluringar int a=5; int f(int b) a--; b++; return b; int main() int a=3; printf("%d,",f(a)); printf("%d",a); return 0; int f(int a) if(a==1) return a; else return
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler
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:
Transformationer i 3D. Gustav Taxén
Transformationer i 3D Gustav Taén gustavt@csc.kth.se 2D64 Grafik och Interaktionsprogrammering VT 27 Bakgrund Ett smidigt sätt att arbeta med 3D-grafik är att tänka sig att man har en virtuell kamera som
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
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk
CUDA En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk Minnesareor och minnesaccess Delat minne Exempel CUDA = Compute Unified Device Architecture Utvecklat av NVidia
Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
Föreläsning 8: Aritmetik och stora heltal
2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen
Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström
DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)
Grafiska pipelinens funktion
LUNDS TEKNISKA HÖGSKOLA CAMPUS HELSINGBORG Grafiska pipelinens funktion Ludvig von Sydow EDT62, HT17 Datorarkitekturer med Operativsystem Sammanfattning Denna rapport syftar till att beskriva hur en graphics
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Parameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Beräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.
Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk
3D: transformationer:
3D: transformationer: ramar, matriser, kvaternioner perspektiv: ortografisk, perspektiv kurvor, ytor: parametriska, kubiska - interpolerande, Bézier, spline Inlämningsuppgift 3 Yngve Sundblad y@kth.se
LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer
LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska
Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar
Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden
F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander
F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng
Att använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Tentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -
Variabler, värden och typer
Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Fråga kommentera
Variabler, värden och typer
Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! jonas.kvarnstrom@liu.se 2017 Fråga kommentera avbryt! Intro till variabler
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
tentaplugg.nu av studenter för studenter
tentaplugg.nu av studenter för studenter Kurskod Kursnamn D0017E Inledande programmering för ingenjörer Datum 2014-10-31 Material Tentamen Kursexaminator Betygsgränser Tentamenspoäng 3 14; 4??; 5?? 25/25
SMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning
Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.
Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define
Övning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
HF0010. Introduktionskurs i datateknik 1,5 hp
HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se
TDP002 - Imperativ programmering
TDP002 - Imperativ programmering Algoritmer Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Datatyper Tal UTF-8 2 Procedurell abstraktion Repetition
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
Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
OOP Objekt-orienterad programmering
OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första
Styrteknik : Funktioner och funktionsblock
PLC2A:1 Variabler och datatyper Allmänt om funktioner och funktionsblock Programmering av funktioner Programmering av funktionsblock PLC2A:2 Variabler i GX IEC Developer Global and Local Variables Variables
Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare
Funktionspekare, inledning: funktionsanropsmekanismen Vid funktionsanrop läggs aktuella argumentvärden och återhoppsadressen på stacken, därefter sker ett hopp till adressen för funktionens första instruktion.
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
F7 - Arrayer. ID1004 Objektorienterad programmering Fredrik Kilander
F7 - Arrayer ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Array, arrayer, arrayen En array är en lista av variabler av samma typ Arrayen har en fast längd (antal element) Enskilda
Objektorienterad programmering Föreläsning 4
Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion
TENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00
TENTAMEN CD5250 Objektorienterad programutveckling med C++, 5p Max poäng: 40 Betygsgränser: 3: 20 4: 28 5: 36 Datum: 1999-06-01, Tid: 14:00-19:00 Ansvarig: Ivica Crnkovic Upp till 5 poäng kan komma från
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
Analys o Linjär algebra. Lektion 7.. p.1/65
Analys o Lektion 7 p1/65 Har redan (i matlab bla) stött på tal-listor eller vektorer av typen etc Vad kan sådana tänkas representera/modellera? Hur kan man räkna med sådana? Skall närmast fokusera på ordnade
Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011
1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?
Repetition, Matematik 2, linjär algebra 10 Lös ekvationssystemet 5 x + 2 y + 2 z = 7 a x y + 3 z = 8 3 x y 3 z = 2 b 11 Ange för alla reella a lösningsmängden till ekvationssystemet 2 x + 3 y z = 3 x 2
F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen
68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder
Introduktion till programmering SMD180. Föreläsning 8: Listor
Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal
Programmering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33
Programmering i C++ EDA623 Typer EDA623 (Föreläsning 4) HT 2013 1 / 33 Typer Innehåll Heltalstyper Flyttalstyper Pekare Minnesallokering Funktionspekare Typdeklarationer med typedef Typomvandlingar (casting)
Approximation av funktioner
Vetenskapliga beräkningar III 8 Kapitel Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner I allmänhet kan inte ens elementära funktioner
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
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Grafiska pipelinen. Edvin Fischer
Grafiska pipelinen Edvin Fischer Sammanfattning Rapporten behandlar den grafiska pipelinen och dess steg, vilka stegen är och hur de funkar. Inledning Rapporten har till syfte att beskriva hur den grafiska
Konsten att lösa icke-linjära ekvationssystem
Konsten att lösa icke-linjära ekvationssystem Andreas Axelsson Vi beskriver här de grundläggande teknikerna för att lösa icke-linjära ekvationssystem. Detta är en nödvändig kunskap för att kunna lösa diverse
Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering
KTH Matematik Tentamen del 2 SF1511, 2018-03-16, kl 8.00-11.00, Numeriska metoder och grundläggande programmering Del 2, Max 50p + bonuspoäng (max 4p). Rättas ast om del 1 är godkänd. Betygsgränser inkl
Programmering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Modbus över Ethernet. WAGO Contact SA TSS STR 2011 1
Modbus över Ethernet WAGO Contact SA TSS STR 2011 1 Modbus över Ethernet En enorm mängd produkter stöder modbus. Modbus kallas ibland för automationens minsta gemensamma nämnare. Kanske är det för att
Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004
Programmering hh.se/db2004 Föreläsning 11: Objektorienterad programmering - att definiera datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Datatyper Hittills Vi har lärt
Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010
Programsystemkonstruktion med C++: Övning 1 Karl Palmskog palmskog@kth.se september 2010 Programuppbyggnad Klassens uppbyggnad en C++-klass består av en deklaration och en definition deklaration vanligtvis
Parallellism i NVIDIAs Fermi GPU
Parallellism i NVIDIAs Fermi GPU Thien Lai Phu IDA2 Abstract This report investigates what kind of computer architecture, based on Flynn s taxonomy, is used on NVIDIAs Fermi-based GPU to achieve parallellism
GPGPU - General-Purpose computing on Graphics Processing Units
GPGPU - General-Purpose computing on Graphics Processing Units Att utnyttja GPU istället för CPU EXAMENSARBETE INOM DATALOGI, GRUNDNIVÅ (DD143X) Namn: Oskar Bodemyr Jimmy Larsson Adress: Visättravägen
Subtyping och variance. Objekt-orienterad programmering och design Alex Gerdes, 2018
Subtyping och variance Objekt-orienterad programmering och design Alex Gerdes, 2018 Typer Java har två sorters typer primitiva typer och referens-typer. Primitiva typer är typer för värden: int, float
Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada
Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,
Grundläggande Datalogi
s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering
Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:
F: Minneselement Innehåll: - Latchar - Flip-Flops - egister - Läs- och skrivminne (andom-access Memory AM) - Läsminne (ead Only Memory OM) Ett minneselements egenskaper Generellt sett så kan följande operationer
Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)
Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar
FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar Christian Forssén, Institutionen för fysik, Chalmers, Göteborg, Sverige Sep 11, 2017 12. Tensorer Introduktion till tensorbegreppet Fysikaliska
Introduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Repetition C-programmering
Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition
Programmering för språkteknologer I, VT2012. Rum
Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska
Modbus. WAGO Contact SA TSS STR
Modbus WAGO Contact SA TSS STR 2011 1 Modbus över Ethernet En enorm mängd produkter stöder modbus. Modbus kallas ibland för automationens minsta gemensamma nämnare. Kanske är det för att modbus är relativt
Länkning av Prolog under C
Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-
Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output
Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?
Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world
Programmering i C Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur Kernighan, Ritchie: The C Programming Language, Second edition, Steve Oualline:
Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer
Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma
MA2047 Algebra och diskret matematik
MA2047 Algebra och diskret matematik Något om komplexa tal Mikael Hindgren 17 oktober 2018 Den imaginära enheten i Det finns inga reella tal som uppfyller ekvationen x 2 + 1 = 0. Vi inför den imaginära
Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
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.)
Laboration 1: Linjär algebra
MALMÖ HÖGSKOLA Centrum för teknikstudier MA119A VT 2010, Yuanji Cheng Viktigt information om labb Vid laborationen gäller följande: 1. Labben görs i grupp av två studenter, och redovisningsuppgifterna
Föreläsning 1 Datastrukturer (DAT037)
Föreläsning 1 Datastrukturer (DAT037) Fredrik Lindblad 1 30 oktober 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037