LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med



Relaterede dokumenter
Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C. Lektion september 2009

Programmering i C. Lektion oktober 2008

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale

Programmering i C. Lektion december 2008

Programmering i C Videre med C (2 af 4) 19. marts 2007

Programmering i C. Lektion september 2009

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Programmering for begyndere Lektion 2. Opsamling mm

Programmering i C. Lektion november 2008

Start på Arduino og programmering

Introduktion til C programmering

// Definition af porte og funktioner

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Programmering I Java/C#

Lær Python dag 1 - modul 1

Kursusarbejde 3 Grundlæggende Programmering

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Forelæsning Uge 2 Mandag

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Lige siden den elektroniske computers opfindelse i slutningen af 1940, har det været muligt at få en computer til at beregne ting.

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Programmering i C. Lektion september 2009

Python programmering. Per Tøfting. MacFest

Programmering i C. Kurt Nørmark 2005 Institut for Datalogi, Aalborg Universitet. Sammendrag

Kontrol-strukturer i PHP

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

C Programmering V1.37

Introduktion til funktioner, moduler og scopes i Python

Eksempel: Skat i år 2000

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september (Tak til Jakob Bardram for nogle slides) Dagens begreber

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit if (indkomst > ) topskat = (indkomst ) * 0.

Kernealphaerne Indhold af G1

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Planen for idag. Indhold af G1. Kernealphaerne. Alpha erne. Datalogi 1F Forår 2003

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

Skriftlig eksamen i Datalogi

Forelæsning Uge 4 Mandag

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Python 3 kursus lektion 1:

Kursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, klasse dm032-1a

Noter til C# Programmering Selektion

Forelæsning Uge 2 Mandag

Online kursus: Programming with ANSI C

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Forelæsning Uge 2 Mandag

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

1. Variable og assignment

Undervisningsbeskrivelse

Videregående Programmering for Diplom-E Noter

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Et alfabet er en ordnet mængde af bogstaver og andre tegn

Forelæsning Uge 2 Mandag

Mircobit Kursus Lektion 1

2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Exceptions i Delphi. Try except

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

Ugeseddel 4 1. marts - 8. marts

Spil Master Mind. Indledning.

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

5. Kontrolstrukturer - Motivation og Oversigt

DANMARKS TEKNISKE UNIVERSITET

JavaScript. nedarvning.

Kapitel 3 Betinget logik i C#

Sammenlign og byt. Et eksempel på dokumentering af et program

Forelæsning Uge 4 Mandag

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Metoder og værktøjer til programmering

21. Introduktion til arrays

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Optimering af fraværsregistrering

Kapitel 4 Løkker i C#

Undtagelseshåndtering i C#

Introduktion til ActionScript

Programmering i C. Lektion september 2009

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Kursusarbejde 2 Grundlæggende Programmering

Klasse 1.4 Michael Jokil

Hvorfor skal vi bruge objekt orienteret databaser?

Undervisningsbeskrivelse

Bits, bit operationer, integers og floating point

Crash Course i Programmering. HumTek, RUC

Projekt - RoboNet Del Journal.

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

DM507 Algoritmer og datastrukturer

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Algoritmer og invarianter

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger

Erklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).

#AlleKanKode. Lektion 2 - Konstanter og Variabler

Forelæsning Uge 4 Mandag

Sproget Rascal (v. 2)

SWC eksamens-spørgsmål. Oversigt

Transkript:

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); C wmevent = HIWORD(wParam); // Parse the menu selections: switch (wmid) case IDM_ABOUT: DialogBox(hInst,

C / C++ mål Få praktiske færdigheder indenfor højniveau programmering med C / C++ Kunne udarbejde mindre softwareløsninger Anvende standard biblioteker Indbyggede færdige programdele Anvende Objekt Orienteret Programmering Erklæring af klasser Nedarvning Exception handling Have det sjovt

Hvad er C C er et programmeringssprog Opfundet i 1970 erne Meget populært Kan anvendes til mange forskellige systemer Mangler struktur til store programløsninger C++ er en udvidelse af C Opfundet sidst i 1980 erne Struktur til store programløsninger Skrevet kode kan ofte genanvendes direkte

C og C++ stamtræ Sprog Udviklet af Årstal BCPL Martin Richards / MIT 1967 B Ken Thompson / Bell 1969 C Dennis Ritchie / Bell 1973 C med klasser Bjarne Stroustrup / AT&T 1978 C++ Bjarne Stroustrup / AT&T 1983 Ansi C Kernigan og Ritchie 1988 Java James Gosling / SUN 1995 C# (C-sharp) Anders Hejlsberg / MS 2003

Hvad er et program Et program er en række instruktioner til CPU en En CPU har et instruktionssæt Forskellige typer CPU er har forskellige instruktionssæt (Pentium, Sun Sparc.) Forskellige CPU er er ikke binære kompatible

Lav niveau programmering Der programmeres direkte til CPU en Assembler programmering Fordele Stor kontrol over alle hændelser Kode kan optimeres meget Ulemper Tid eller plads Kan kun afvikles på bestemt type CPU Stor indsigt i CPU teknik nødvendig Programmer bliver komplekse og komplicerede Svære at vedligeholde Nemt at lave fejl

Høj niveau programmering Programmøren skriver kode i programmeringssprog C / C++ Visual Basic Program oversætter kode til assembler Oversætterprogrammet kaldes en Compiler Samme kode kan oversættes på forskellige CPU er C Compiler til Intel Pentium oversætter til Pentium instruktioner C Compiler til Sun Sparc oversætter til Sun Sparc instruktioner.

Høj niveau programmering Fordele Programmerings sprog er logisk opbyggede Dybgående kendskab til CPU ikke nødvendig Kode er lettere at forstå Er nemmere at vedligeholde Moduler fra kode er genanvendelige Programmeringssprog har indbyggede sikringer mod fejl. Ulemper Nogle sprog mere end andre Der findes mange højniveau programmeringssprog Detaljeret kontrol over programmet tabes

Microsoft Visual C++ version 7

C prog. Hello World

Opgave lav dit første program Du har brug for Kompendiet: Oprettelse af C projekt i Visual Kørsel af Console programmer

Biblioteker C sproget indeholder ingen funktioner til for eksempel udskrift til skærm Derfor findes der en række standard biblioteker over programmer der følger med C compileren I hvert bibliotek findes mange funktioner Se MSDN Library Der anvendes forskellige biblioteker til C og C++

Biblioteker Funktionen printf er et eksempel på en funktion for eksempel stdio.h C funktioner til ind og udlæsning af data. Tastatur, skærm og filer string.h C funktioner til simpel manipulation af tekststrenge

Biblioteker Bibliotekerne er en masse programmer som er lavet. Gør programmering hurtigere Gennemtestede programmer i biblioteker Skal lære biblioteker at kende Udvikling af egen biblioteker Genanvendelse af programmer simplificeres

Datatyper C har fire grundlæggende datatyper Datatyper anvendes til at arbejde med og gemme data Datatype anvendelse Fylder char Karakter eller tegn 1 bytes int Heltal (Integer) 4 bytes float Flydende decimal 4 bytes double Flydende decimal 8 bytes

#include <stdio.h> main() char tegn = 'A'; int lykketal = 2541; float bananpris = 7.85; double flypris = 100000000.98; Datatyper - opgave printf("variablen tegn indeholder\t: %c\n", tegn); printf("variablen lykketal indeholder\t: %i\n", lykketal); printf("variablen bananpris indeholder\t: %f\n", bananpris); printf("variablen flypris indeholder\t: %e\n", flypris); printf("datatypen char fylder \t: %i Byte(s) i ram.\n", sizeof(tegn)); printf("datatypen int fylder \t: %i Byte(s) i ram.\n", sizeof(lykketal)); printf("datatypen float fylder \t: %i Byte(s) i ram.\n", sizeof(bananpris)); printf("datatypen double fylder \t: %i Byte(s) i ram. \n", sizeof(flypris));

Datatyper opgave 2 #include <stdio.h> main() char fornavn[20]; char efternavn[20]; printf("indtast dit fornavn\t: "); scanf("%s",fornavn); printf("indtast dit efternavn\t: "); scanf("%s",efternavn); printf("du hedder %s %s\n", fornavn, efternavn);

Betingelser Relations operatorer Operator Mening == Lig med!= Forskellig fra > Større end < Mindre end >= Større end eller lig med <= Mindre end eller lig med

if sætninger int i = 10, j = 20; if ( i == 10 ) printf( Sandt udsagn ); else printf( Falsk udsagn ); if ( i == 10 ) printf( Sandt udsagn ); i = 11; else printf( Falsk udsagn ); i = 9; i = 10; /* Tak til eleverne */ if ( i!= 10 ) printf( Sandt udsagn ); else printf( Falsk udsagn ); int i = 10, j = 20; if ( j == 10 ) printf( Sandt udsagn ); else printf( Falsk udsagn ); if ( j == 10 ) printf( Sandt udsagn ); i = 11; else printf( Falsk udsagn ); i = 9; if ( j!= 10 ) printf( Sandt udsagn ); else printf( Falsk udsagn );

Betingelser Opgave 1 #include <stdio.h> #define MAXTAL 1000 #define MINTAL 10 main() int tal; printf("indtast et tal mellem %i og %i: ", MINTAL, MAXTAL); scanf("%i", &tal ); if ( tal < MINTAL ) printf("det indtastede tal er mindre end %i\n", MINTAL); else if ( tal > MAXTAL ) printf("det indtastede tal er st\233rre end %i\n", MAXTAL); else printf("tallet %i er godkendt!\n", tal );

switch sætningen Simplificerer nestede if-then-else if. main() int ugedag; printf("indtast nummeret p\206 en ugedag: "); scanf("%i", &ugedag ); switch ( ugedag ) case 1: printf("mandag\n"); break; case 2: printf("tirsdag\n"); break; /* onsdag til søndag udeladt... */ default: printf("det er ikke en ugedag\n");

switch sætningen main() int month; printf("indtast nummeret p\206 en m\206ned: "); scanf("%i", &month ); switch ( month ) case 2: printf("der er 28 dage\n"); break; case 1: case 3: case 5: printf("der er 31 dage\n"); break; /* Fleste måneder udeladt... */ default: printf("det er ikke en m\206ned\n");

Opgave Lav en lommeregner Skal kunne de fire regnearter: +, -, *, / Eksempel: 7 * 98 eller 1000 / 25 Tips: Scanf kan læse flere argumenter af gangen Scanf returnerer antal argumenter Prøv at dividere med 0 int i; float tal1, tal2; char regneart; i = scanf( %f %c %f,&tal1, &regneart, &tal2);

Løkker - for #include <stdio.h> #define ANTALTAL 4 main() int tal[antaltal]; int j; /* Indlæsning af tal */ for ( j=0 ; j < ANTALTAL ; j = j + 1 ) printf("indtast tal nummer %i\t: ", j+1 ); scanf("%i", &tal[ j ] ); /* udlæsning af tal */ for ( j=0 ; j < ANTALTAL ; j = j + 1 ) printf("indtastet tal nummer %i er\t: %i\n", j+1, tal[ j ] );

Løkker while 1 #include <stdio.h> #include <conio.h> main() int taeller = 0 ; /* Taeller initialiseres til 0 */ while (! kbhit() ) printf("t\221ller = %i\r", taeller++ );

Opgave Udregning af pi pi 1 1 1 1 1 1 = 1 + + +... 4 3 5 7 9 11 13 Til dem som bliver færdig først lav et program der finder primtal Hvem kan lave det hurtigste program til udregning af pi (1 Mia udregninger)

En dimensionelle arrays[ ] (tabeller) void main( void ) int daysmd[12] = 31,28,31,30,31,30,31,31,30,31,30,31; int mdnr; do printf("tast et m\206neds nummer (0 for at afslutte): "); scanf("%i", &mdnr); if ( mdnr!= 0 ) printf("måned %i har %i dage.\n", mdnr,daysmd[ mdnr-1 ] ); while ( mdnr!= 0 );

To dimensionelle arrays[][] void main( void ) int daysmd[ ] = 31,28,31,30,31,30,31,31,30,31,30,31; char months[12][10] = "Januar","Februar","Marts","April","Maj","Juni","Juli", "August","September","Oktober","November","December"; int mdnr; do printf("tast et m\206neds nummer (0 for at afslutte): "); scanf("%i", &mdnr); if ( mdnr!= 0 ) printf("%s har %i dage.\n", months[mdnr-1],daysmd[ mdnr-1 ]); while ( mdnr!= 0 );

To dimensionelle arrays[][] void main( void ) int sudokoplade[9][9]; int i,j; /* Initialiser sudokoplade først */ for ( i = 0 ; i < 9 ; i++ ) for ( j = 0 ; j < 9 ; j++ ) sudokoplade[i][j]=0;.. Kode udeladt

Multi dimensionelle Arrays[ ][ ][ ] void main( void ) int sudokoplade3d[9][9][9]; int i,j,k; /* Initialiser sudokoplade først */ for ( i = 0 ; i < 9 ; i++ ) for ( j = 0 ; j < 9 ; j++ ) for ( k = 0 ; k < 9 ; k++ ) sudokoplade3d[i][j][k] = 0;.. Kode udeladt

Funktioner() Opdeling af program i funktioner Giver bedre overblik Et stort program er mange små funktioner Funktioner er overskuelige Et stort program uoverskueligt Hver funktion kan testes hver for sig Funktioner kan genbruges i andre projekter

Funktioner() void fejl(int fejlnr, char fejltxt[ ]) /* Udskriv fejltekst og nummer */ printf( FEJL nummer %i : Beskrivelse %s\n", fejlnr, fejltxt ); int main( void ). Udeladt kode if ( naevner == 0 ) fejl( 102, Division med nul );.. Udeladt kode if ( fp = fopen( C:\data\julegaver.txt, r ) == 0 ) fejl(103, Filen C:\data\julegaver.txt kunne ikke åbnes );

Hvad laver denne funktion()? int hentlinie( char *txtpoi, int size ) int counter = -1; do counter++; txtpoi[counter] = getch(); putch( txtpoi[counter] ); while ( (counter < size ) && (txtpoi[counter]!= '\r') ); txtpoi[counter] = 0; putch('\n'); return( counter);

Lidt sjov #include <stdio.h> main() FILE *fp; if ( (fp=fopen( LPT2:, w ) ) == 0 ) printf( Filen LPT2: kan ikke åbnes. ); else fprintf( fp, Denne tekst kommer på printeren\n ); fclose( fp );

Lidt om pointere #include <stdio.h> main() int i, j; /* Opret 2 integer */ int *poi; /* Opret plads til at gemme adressen på en integer */ i = 7; j = 9; /* Initialiser i og j */ poi = &i; /* Sæt poi lig adressen på i */ j = *poi; /* Sæt j lig værdien som poi peger på ( j = i ) */ printf( i = %i og j = %i\n, i,j );

int i,antal; struct person char fornavn[20]; char efternavn[20]; ; Strukturer struct person ansatte[ ] = "Jens","Hansen", "Ulla,"Svendsen", "Jens Otto","Sigurdsen" ; antal = sizeof(ansatte) / sizeof(struct person); printf("der er %i ansatte\n", antal); for (i=0 ; i < antal ; i++) printf("l\233n nr. %i Fornavn %s Efternavn %s\n", i+1000, ansatte[i].fornavn, ansatte[i].efternavn);

int antalpersoner = 4444; main() int i=0; Lokale og globale variable antalpersoner = 10; int i = 10, antalpersoner = 199; printf( %i %i\n, i, antalpersoner); printf( %i %i\n, i, antalpersoner); gernok(); gernok() int i = 20; printf( %i %i\n, i, antalpersoner);

Opgave Lav et personalestyrings program Oplysninger: Fornavn, efternavn,løn Lav plads til 10 ansatte Lav følgende funktioner i en anden c fil nyansat() Henter oplysninger med scanf() udskrivansatte() Udskriv med printf Husk det med lokale og globale variable