Metoder og værktøjer til programmering
|
|
|
- Inger Kvist
- 10 år siden
- Visninger:
Transkript
1 Metoder og værktøjer til programmering Hjemmeside Spørgsmål vedrørende kurset:
2 Metoder og værktøjer til programmering Kursusgange: Brugergrænseflader med SDL Netværksprogrammering med sockets Trådprogrammering med posix debugging med ddd
3 Kurset i dag Kort introduktion til SDL Kompilering af programmer skrevet med SDL Initialisering/de-initialisering af SDL Grafik med SDL Eventhåndtering i SDL Kodegranskning/diskussion af jeres programmer med SDL i grupperne
4 Information om SDL SDLs officielle hjemmeside Application Programming Interface (API) Kort introduktion
5 Kompilering af programmer med SDL Brug sdl-config! Exempel på Makefil til SDL: CC = gcc SRCS = sdl_program.c OUT = sdl_program SDL_FLAGS = $(shell sdl-config --cflags --libs) compile: $(CC) $(SDL_FLAGS) -o $(OUT) $(SRCS) clean: - rm $(OUT) Eller command line: gcc $(sdl-config --cflags --libs) program.c
6 Initialisering/de-initialisering af SDL int SDL_Init(Uint32 flags); flags: options, kan eksempelvis være: SDL_INIT_AUDIO SDL_INIT_VIDEO SDL_INIT_EVERYTHING SDL_INIT_EVENTTHREAD void SDL_Quit();
7 Initialisering/de-initialisering af SDL Eksempel: initialiser sdl med video og audio #include <SDL.h> #include <stdio.h> void init(){ if(sdl_init(sdl_init_video SDL_INIT_AUDIO)){ printf("unable to initialize SDL: %s\n", SDL_GetError()); exit(0); } atexit(sdl_quit); }
8 Grafik: Surface SDL_Surface *SDL_SetVideoMode(int width, int height, int bitsperpixel, Uint32 flags); width, height: selvforklarende ;) bitsperpixel: farvedybde flags: options, kan eksempelvis være: SDL_SWSURFACE SDL_HWSURFACE SDL_DOUBLEBUF SDL_FULLSCREEN
9 Grafik: surface Eksempel: gør hele skærmen parat til at blive tegnet på #include <SDL.h> #include <stdio.h> int main(){ init(); SDL_Surface *screen; } screen = SDL_SetVideoMode(1440, 900, 32, SDL_HWSURFACE SDL_DOUBLEBUF SDL_FULLSCREEN); if(screen == NULL){ fprintf(stderr, "Unable to set 1440x900 video: %s\n", SDL_GetError()); exit(1); }
10 Grafik: locking surfaces I SDL skal nogle surfaces låses før man kan tilgå de enkelte pixels i den SDL_MUSTLOCK(surface) evaluerer til 0 hvis surface ikke behøver at blive låst int SDL_LockSurface(SDL_Surface *surface); låser en surface void SDL_UnlockSurface(SDL_Surface *surface); låser en surface op
11 Grafik: locking surfaces Eksempel: wrappere til lock og unlock void slock(sdl_surface* ps){ if(sdl_mustlock(ps)) SDL_LockSurface(ps); } void sunlock(sdl_surface* ps){ if(sdl_mustlock(ps)) SDL_UnlockSurface(ps); }
12 Grafik: tegn på en surface int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color); dst: surfacen der skal tegnes på dstrect: et rektangel der viser hvor der skal fyldes farve i color: farven der skal fyldes i rektanglet int SDL_Flip(SDL_Surface *screen); screen: surfacen der skal flippes
13 Grafik: tegn på en surface Eksempel: Tegn et stort rødt rektangel SDL_Rect r; r.x = 50; r.y = 50; r.w = *r.x; r.h = 900-2*r.y; Uint32 colour = SDL_MapRGB(screen->format, 255, 0, 0); slock(screen); SDL_FillRect(screen, &r, colour); SDL_Flip(screen); sunlock(screen);
14 Grafik: andre muligheder Tegn bitmaps på en surface Manipuler enkelte pixels 3D-grafik med opengl Og flere ting...
15 Events SDL kaster events i forbindelse med: Tastetryk på keyboarded Musemanipulation Joystickmanipulation Manipulation af vinduet der bliver tegnet i
16 Events void SDL_PumpEvents(void); Opdaterer eventkøen med events fra alle perifære enheder int SDL_PollEvent(SDL_Event *event); event: den første event i eventkøen returnerer: 1 hvis der er event i eventkøen, 0 ellers
17 Events Eventtyper: SDL_KEYDOWN/UP SDL_MOUSEMOTION SDL_MOUSEBUTTONDOWN/UP SDL_VIDEORESIZE SDL_VIDEOEXPOSE SDL_QUIT og en del flere...
18 Events Eksempel: Lyt efter tastetryk SDL_Event event; for(;;){ SDL_PumpEvents(); while(sdl_pollevent(&event)){ switch(event.type){ case SDL_KEYDOWN: if(event.key.keysym.sym == SDLK_q) exit(0); else //gør noget andet break; case SDL_QUIT: exit(0); break; default: printf("non-handled event caught.\n"); } } }
19 Kodegranskning/diskussion af jeres programmer med SDL i grupperne om 15 minutter
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111
DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald
Billedbehandling. Processering af digitale billeder
Billedbehandling Processering af digitale billeder Billedbehandling Lighten Blur Darken Invert Billedrepræsentation 0 0 x width Pixel (x, y) [0..255] 0 ~ sort, 255 ~hvid x [0..width[, y [0..heigth[ y height
//--------------------------------- Definition af porte og funktioner -------------------------
Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4
MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
ESP30076 임베디드시스템프로그래밍 (Embedded System Programming)
Module 14: Kernel Timer ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 리눅스에서커널타이머사용법알아보기 HZ, jiffies_64, struct timer_list 커널타이머를활용한하드웨어제어용디바이스드라이버작성 2 Timer 관련변수 HZ 리눅스커널에서주기적으로발생하는시스템타이머
Introduktion til ActionScript
Introduktion til ActionScript Kaspar Rosengreen Nielsen [email protected] i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, [email protected] 1 Dagens program Opsamling på
Objektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Løsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
Processer og tråde. dopsys 1
Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys
Libraries i C. Thomas Bøgholm. Marts En kort introduktion. Aalborg Universitet
Libraries i C En kort introduktion Thomas Bøgholm Aalborg Universitet Marts 2010 Outline Motivation Hvad er et library Brugen af libraries Eksempler - med live kode Dit eget library Opgaver 2/18 Motivation
Kursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Introduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 [email protected] Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Softwareudvikling: Miljøer
Softwareudvikling: Miljøer Præsentation af mig Praktiske oplysninger Overblik Host-target setup UNIX, historisk UNIX egenskaber UNIX ulemper UNIX, netværk, X11, brugerflader Windows fordele/ulemper Øvelse
Programmering i C Intro og grundlæggende C 5. marts 2007
Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR [email protected] Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner
Embedded controller, almen.
Ver. 310807 s. 1 Bilag 3 Valgfri specialefagskatalog Data- og kommunikationsuddannelsen Undervisningsministeriet September 2007 /Steen Albertsen Ver. 310807 s. 2 Embedded controller, almen. Varighed 1
Programmering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Komplekse tal og Kaos
Komplekse tal og Kaos Jon Sporring Datalogisk Institut ved Københavns Universitet Universitetsparken 1, 2100 København Ø August, 2006 1 Forord Denne opgave er tiltænkt gymnasiestuderende med matematik
Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1
Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering Design af brugerflader 12.1 Sidste kursusgang Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design
DANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Projekt rapport. for. Zigbee kommunikation
Projekt: Zigbee kommunikation Dato: 24-02-2010 Afleverings Dato: 04-06-2009 Titel: Projekt rapport for Zigbee kommunikation 6. semester projekt i WEM1 ved Ingeniørhøjskolen i Århus Gruppe 2: 06709 Sean
Vejledning til Photofiltre nr.171 Side 1 Lave et postkort i A6 størrelse, hvor LibreOffice Draw bliver brugt til opsætning
Side 1 I denne vejledning (opgave) skal vi lave et postkort i A6 størrelse i Photofiltre og sætte det op i Libre Office Draw. For at finde den nøjagtige størrelse på A6 kortet skal vi starte i Draw og
Datamaters arkitektur og programmering
Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24
TIPS & TRICKS. Erik Wendelboe Nielsen, Econocap. PTC/User 2014
TIPS & TRICKS Erik Wendelboe Nielsen, Econocap Generelt Accuracy Command Search Selection Filter Learning Connector Search Tool Generelt Hvad er accuracy? Fastlæggelse af hvor fine detaljer kan være i
Erklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).
Indholdsfortegnelse til Bilag 1.: Side 1: Include filer. Side 1: Erklæring af variabler. Side 2: Void indstil (Indstiller starttidspunkt og måleinterval). Side 3: Void indstil (Indstiller starttidspunkt
A Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
StarWars-videointro. Start din video på den nørdede måde! Version: August 2012
StarWars-videointro Start din video på den nørdede måde! Version: August 2012 Indholdsfortegnelse StarWars-effekt til videointro!...4 Hent programmet...4 Indtast din tekst...5 Export til film...6 Avanceret
Intro til AVR. Mads Pedersen, OZ6HR [email protected]
Intro til AVR Mads Pedersen, OZ6HR [email protected] Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2 Plan 27/10-2005:
Forløb kreativ-kommunikativ toning
Forløb kreativ-kommunikativ toning C - Interaktive test C/B - Reklamespil B Digitale Billeder B Kvidder/Fjæsbog Interaktive Test 1. Analyse af interaktive test og deres betydning for brugerens valg. 2.
Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
GRAFIK OG BILLEDE PORTFOLIO DAN KLESSEN BOOSTING BUSINESS MEDIEGRAFIKER SVENDEPRØVE
GRAFIK OG BILLEDE PORTFOLIO DAN KLESSEN BOOSTING BUSINESS MEDIEGRAFIKER SVENDEPRØVE PORTFOLIO DAN KLESSEN BOOSTING BUSINESS MEDIEGRAFIKER SVENDEPRØVE 04 INDHOLDSFORTEGNELSE Dokumentation 05 Clone Tool
C# spil (del 1) - Kom i gang med et simpelt spil
Denne guide er oprindeligt udgivet på Eksperten.dk C# spil (del 1) - Kom i gang med et simpelt spil Denne artikel starter helt fra grunden (med GDI). Den viser hvordan man undgår flimmer, og hvordan man
Vejledning til Photofiltre nr. 120 Side 1
Side 1 De fleste værktøjer i fotoprogrammet Photofiltre 7 er kun aktive når der er åbnet et billede i programmet. Sådan er det også med tryllestaven. Og hvad kan man så bruge tryllestaven til. Den er beregnet
Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft
Kurserne Kurset: programmering i sproget Java Programmering og Udvidet Programmering Lærerne: Morten Larsen og Peter Sestoft Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger:
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
Hvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Datatekniker med programmering som speciale H5
Datatekniker med programmering som speciale H5 H5 består af et selvstændigt projekt som du definerer. Styringen af projektet er i centrum her, og ikke selve softwaren. H5 varer ti uger bestående af ni
Vejledning til opgraderet version af Danmarks Arealinformation
Vejledning til opgraderet version af Danmarks Arealinformation Følgende funktioner virker anderledes i HTML5-versionen end i Silverlight-versionen: 1) Vælg/tænd kortlag... 2 2) Tilføj kortlag fra Lagkatalog...
Tips og Tricks. Erik Wendelboe Nielsen Christian Woergaard. econocap. PTC/USER 2012 - Fredericia
Tips og Tricks Erik Wendelboe Nielsen Christian Woergaard Agenda 1: Brugerflade 2: Rounds 3: Annotations Features 4: Sheetmetal 5: UDF 6: Point Pattern 7: Extrude Add/Remove Material 8: Save 9: Drawing
Start på Arduino og programmering
Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget
Rybners Teknisk Skole. Tømrer afdeling. Frank Kleemann Aarestrup
Rybners Teknisk Skole Tømrer afdeling Frank Kleemann Aarestrup Opstart Start programmet og vælg Template måleenhed Millimeters Start Sketchup Velkommen til Sketchup brugerflade! Sketchup Opstart 2 Introduktion
Fra programmering til mikroprocessor
Programmering for begyndere Brug af Arduino Fra programmering til mikroprocessor EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Programmerings kursus Sidste gang (Introduktion)
Indholdsfortegnelse Introduktion... 5 Start Photoshop Elements 11 (Velkomstskærmen) Opret en ny kalender via Create-menuen... 16
1 Indholdsfortegnelse Introduktion... 5 Photo Calendar (Kalender) 5 Photo Book (Fotobog)... 6 Contact Sheet (Kontaktark) 7 Billedpakke 8 Photo Collage (Foto collage) 8 Lave et Greeting Card (lykønskningskort)
Brugermanual 3D Webcam
Brugermanual 3D Webcam 2 Indholdsfortegnelse Kort introduktion... 4 Installation... 4 Hardware Installation... 4 Software Installation... 5 Forklaring til knapper... 6 Linse Focus... 6 3D Justering...
Programmering C RTG - 3.3 09-02-2015
Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...
Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
System Arkitektur og Integration
Mikael Svenstrup System Arkitektur og Integration 1/24 System Arkitektur og Integration MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup System Arkitektur og Integration 2/24 Tidligere har i
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Kursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
Kapitel 1 I gang med C#
Kapitel 1 I gang med C# Vi skal starte med at oprette et meget simpelt program, så du kan se hvad der ligger bag et C# projekt. Når du er færdig med dette kapitel vil du have lært: Hvordan du opretter
Designmanual for websider
Designmanual for websider 31. marts 2009 Version 1.1. Denne manual beskriver de gældende retningslinjer for Aalborg Universitets websider. Det vil sige websider der benytter aau.dk i domænenavnet er omfattet
Internt interrupt - Arduino
Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt
Adobe Titel Designer
Adobe Titel Designer I Premiere 6.5, har du mulighed for at designe sammensatte titler med Adobe Title Designer. Med Adobe Title Designer, kan du tilføje et væld af egenskaber til titler, brug de forskellige
