Administrivia Programmering Grunderna i C Kortspel. Programmering. Sommarkurs Verónica Gaspes.

Storlek: px
Starta visningen från sidan:

Download "Administrivia Programmering Grunderna i C Kortspel. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes."

Transkript

1 Programmering Sommarkurs Verónica Gaspes IDE-sektionen Juni 12

2 Utkast 1 Administrivia 2 Programmering 3 Grunderna i C 4 Kortspel

3 Kurs resurser Lärare Verónica Gaspes ansvarig för kursmaterial, examination och föreläsningar. Anders Åhlander handledning under övningar och laborationer Program Ett operativ system. En webbrowser. En ANSI-C kompilator. En texteditor. Finns många av alla, vi tillhandahåller några, ni kan använda andra!

4 Moment Föreläsningar Går 2 ggr i veckan och presenterar material som kan vara till hjälp för att lösa övningsuppgifter och laborationer. De kan även hjälpa att ta till sig litteratur. Inte obligatorisk närvaro Övningar Går 2 ggr i veckan, alla exempel som tas i föreläsningar med variationer finns för att ni skall kunna experimentera med de. Handledning finns för att ni inte skall fastna utan att kunna gå vidare. Inte obligatorisk men rekommenderat!

5 Moment Laborationer Mer av problemlösning karaktär. Handledning finns för att ni inte skall fastna. Kräver mer tid än det som är under handledning. Obligatorisk inlämning i grupper av 2. Så: bilda grupper idag! Jag samlar namn på ett papper! Tentamen En skriftlig tentamen av praktisk karaktär (programmeringsuppgifter) Obligatorisk!

6 Kursbok Det finns böker on line och böker på biblioteket. Ni skall söka under Programmering (Pubb, Pubbz) där ni skall leta efter böker om programmering med C. Finns både på svenska och engelska. Det finns också mycket material på nätet i form av kursanteckningar, tutorials, programbibliotek. Lite av det finns under kursens hemsidans länkar.

7 Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

8 Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

9 Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

10 Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

11 Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

12 Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

13 Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

14 Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

15 Vad är programspråk? A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say, for particular purposes, but they aren t flexible. Neither is a violin, or a typewriter, until you learn how to use it. Marvin Minsky När datorn fungerar som översättare, måste vi förse den med en text skriven enligt mycket strikta regler. Det vi skriver kallas för källkod och de regler vi måste följa kallas för programspråk. Det som kompilatorn producerar kallas för objektkod.

16 Vad är programspråk? A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say, for particular purposes, but they aren t flexible. Neither is a violin, or a typewriter, until you learn how to use it. Marvin Minsky När datorn fungerar som översättare, måste vi förse den med en text skriven enligt mycket strikta regler. Det vi skriver kallas för källkod och de regler vi måste följa kallas för programspråk. Det som kompilatorn producerar kallas för objektkod.

17 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

18 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

19 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

20 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

21 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

22 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

23 Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

24 Algoritmiska lösningar Programmering handlar även om att hitta på lösningar som kan beskrivas som algoritmer! Kursen kommer att handla lika mycket om vissa kända algoritmiska lösningar så som hur man uttrycker de i programspråket C.

25 Algoritmiska lösningar Programmering handlar även om att hitta på lösningar som kan beskrivas som algoritmer! Kursen kommer att handla lika mycket om vissa kända algoritmiska lösningar så som hur man uttrycker de i programspråket C.

26 Algoritmer unplugged Example Behöver 10 volontärer som skall få var sitt tal. Behöver en volontär för att ställa de andra på sin plats i ordning. Du kan fråga var och en vad de har för nummer och Du får be de att flytta på sig.

27 Hur tänker man? Vi tänker på att göra små steg, alltid samma sak, men många gånger! Insertion sort Vi ökar den delen som är sorterad med en position varje varv. Vi börjar med ett enda element! Sedan, inför nästa position, vi jämför elementet med de föregående, en i taget, och flyttar de för att göra plats om det behövs! När vi hittar rätt plats, sätter vi elementet!

28 Hur tänker man? Vi tänker på att göra små steg, alltid samma sak, men många gånger! Insertion sort Vi ökar den delen som är sorterad med en position varje varv. Vi börjar med ett enda element! Sedan, inför nästa position, vi jämför elementet med de föregående, en i taget, och flyttar de för att göra plats om det behövs! När vi hittar rätt plats, sätter vi elementet!

29 Ett problem - en lösning? Förhoppningsviss har vi kommit på olika sätt att lösa problemet med att få vännerna på rätt plats! Det finns alltså många olika algoritmer för att lösa samma problem. Alla är inte lika bra fast de löser problemet rätt!

30 Ett problem - en lösning? Förhoppningsviss har vi kommit på olika sätt att lösa problemet med att få vännerna på rätt plats! Det finns alltså många olika algoritmer för att lösa samma problem. Alla är inte lika bra fast de löser problemet rätt!

31 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

32 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

33 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

34 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

35 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

36 Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument *67890; är funktionens kropp.

37 Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

38 Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

39 Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

40 Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

41 Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

42 Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

43 Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

44 Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

45 Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

46 Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

47 Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

48 Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

49 Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

50 Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

51 Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

52 Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

53 Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

54 Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

55 Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

56 Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

57 Squares #include <stdio.h> main(int argc, char * argv[]){ printf("%s%d%s%d", "the square of ", atoi(argv[1]), " is ", atoi(argv[1])*atoi(argv[1])); } Vi ber programmet att beräkna atoi(argv[1]) 3 gånger!

58 Squares #include <stdio.h> main(int argc, char * argv[]){ printf("%s%d%s%d", "the square of ", atoi(argv[1]), " is ", atoi(argv[1])*atoi(argv[1])); } Vi ber programmet att beräkna atoi(argv[1]) 3 gånger!

59 Namn Abstraktion I programmet kan vi namnge uttryck för att använda namnet där uttrycket behövs. Detta hjälper till att organisera programmet och kan undvika upprepade beräkningar av samma uttryck! #include <stdio.h> main(int argc, char * argv[]){ int val = atoi(argv[1]); printf("%s%d%s%d", "the square of ", val, " is ", val*val ); }

60 Namn Abstraktion I programmet kan vi namnge uttryck för att använda namnet där uttrycket behövs. Detta hjälper till att organisera programmet och kan undvika upprepade beräkningar av samma uttryck! #include <stdio.h> main(int argc, char * argv[]){ int val = atoi(argv[1]); printf("%s%d%s%d", "the square of ", val, " is ", val*val ); }

61 Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

62 Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

63 Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

64 Vad är ett kort? Den fransk-engelska kortleken består av 52 spelkort uppdelade i fyra så kallade färger, även kallade sviter. Varje färg innehåller ett ess, nummerkort från 2 till 10, en knekt, en dam och en kung. Esset var från början bara en etta, därför börjar nummerkorten på 2. Det finns totalt 13 olika i varje färg alltså, och en sammanfattande beteckning på dessa 13 är valörer. Ett korts identitet bestäms entydigt av dess färg och valör och en standardkortlek innehåller ett kort för varje tänkbar kombination av dessa båda egenskaper. sv.wikipedia.org/wiki/fransk-engelsk kortlek

65 Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

66 Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

67 Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

68 Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

69 Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

70 Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

71 Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

72 Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

73 Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

74 Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

75 Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

76 Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

77 Att definiera funktioner I kommandot till system behöver vi kunna välja olika filer beroende på vilken suit vi får! void showsuit(suit s){ switch(s){ case CLUB : system("xv classic-cards/1.png");return; case SPADE : system("xv classic-cards/2.png");return; case HEART : system("xv classic-cards/3.png");return; case DIAMOND : system("xv classic-cards/4.png");return; } }

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen.

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 14 Utkast 1 Recap 2 Mera om nya typer 3 Kort 4 Fält Recap Man kan ge namn till typer. Vi undersökte enum

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf Föreläsning1 Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf scanf Ni behöver läsa boken både för att

Läs mer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1 Grundläggande programmering DVG A08 & ISG A04 Allmän information Grupp C och D slås ihop Schemat är ändrat Kurs i programmering utan förkunskaper Hjälp oss med detta Lita inte på era klasskamrater De ställer

Läs mer

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH UMEÅ UNIVERSITET Datavetenskap Marie Nordström 071207 TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH DATORSYSTEM/GRÄNSSNITT, 7.5HP. (5DV074/5DV075) Datum : 071207 Tid : 3 timmar Hjälpmedel : Allt.

Läs mer

Pekare och arrayer. Indexering och avreferering

Pekare och arrayer. Indexering och avreferering Pekare och arrayer En array är ett sammanhängande minnesområde rymmande ett antal element av en viss typ. Arraynamnet kan ses som adressen till arrayens början, dvs. dess första element. En pekare är en

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011, Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

Läs mer

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

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?

Läs mer

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

Läs mer

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny Panrike och

Läs mer

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för

Läs mer

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

översiktskurs (5DV031)

översiktskurs (5DV031) Programmeringsteknisk översiktskurs (5DV031) Föreläsning 5 Innehåll Indexerade variabler Arrayer, sortering Läsanvisningar: Kapitel 6.1-6.3 Ett problem Hur sparas data T.ex. när man vill spara resultaten

Läs mer

Inledande programmering med C# (1DV402) Introduktion till programmering

Inledande programmering med C# (1DV402) Introduktion till programmering Introduktion till programmering Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen *:58/ID100V Programmering i C Exempel 3 DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst

Läs mer

Introduktion till programmering

Introduktion till programmering Introduktion till programmering Vad är programmering? Vad gör en dator? Vad är ett datorprogram? 1 (9) Vad är programmering? För att bestämma en cirkels area måste du: 1. Dividera diametern 5 med 2. 2.

Läs mer

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp Dag Wedelin, bitr professor, och K V S Prasad, docent Institutionen för data- och

Läs mer

Introduktionsmöte Innehåll

Introduktionsmöte Innehåll Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14 EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs

Läs mer

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är

Läs mer

tentaplugg.nu av studenter för studenter

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

Läs mer

Repetition C-programmering

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

Läs mer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

Välkomna till DIT012 IPGO

Välkomna till DIT012 IPGO Välkomna till DIT012 IPGO 1 Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare Joachim von Hacht, hajo@chalmers.se, 772 1003 Handledare (se även kurssida) Alexander Sjösten, sjosten@chalmers.se

Läs mer

En kort text om programmering i C.

En kort text om programmering i C. En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,

Läs mer

Introduktion C-programmering

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

Läs mer

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

Läs mer

Instruktioner för att kunna programmera på skolans datorer

Instruktioner för att kunna programmera på skolans datorer Instruktioner för att kunna programmera på skolans datorer De här instruktionerna är viktiga att känna väl till inför tentamen samt inför laborationsredovisningar. Många av er kommer att använda bärbara

Läs mer

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

Läs mer

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad. 5(16) Tentamen på kurserna Programmeringsteknik med C och Matlab Programmering i C Tid: 2/11-11, kl. 9-13 Lärare: Jonny Pettersson Totalt: 60 poäng Betyg 3: 30 poäng Betyg 4: 39 poäng Betyg 5: 48 poäng

Läs mer

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Omtentamen i Programmering C, Fri, Kväll, 050108.

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Omtentamen i Programmering C, Fri, Kväll, 050108. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Denna tenta kommer att vara färdigrättad Fr 14/1 och kan då hämtas på mitt tjänsterum,

Läs mer

OOP Objekt-orienterad programmering

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

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI) Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI) Som sagt så kommer den här kursen endast innehålla en enda föreläsning och det var förra gången. Från och med nu så kommer vi förutsätta

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara.

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes Utkast Avbrott i mjukvara Larm signaler Avslutnings signaler IDE-sektionen Curses Juli 2 Olika typer av program Signals

Läs mer

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och 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

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Att komma igång. Föreläsning 1

Att komma igång. Föreläsning 1 Att komma igång Föreläsning 1 Att komma igång Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera Variabler printf scanf

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

#include <stdio.h> #include <string.h>

#include <stdio.h> #include <string.h> #include #include void fun(char s[]) int i=-1; while(s[++i]!=0) if('a'

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen (18 januari 2015 F1.1 ) Föreläsning 1: Introduktion till kursen Lärare: Anna, Carl, Johan, Tom och ca 20 assistenter Registrering / avregistrering Undervisningsformer: föreläsningar och laborationer Kursmaterial

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående

Läs mer

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4 Introduktion till programmering Men först: Några funktioner ur preluden Vad är skillnaden mellan head str och take 1 str? Föreläsning 4 Ett större exempel. head :: [a] -> a take :: Int -> [a] -> [a] tail

Läs mer

(2) Skriv ett program som skapar ett antal processer vars relationer beskrivs av nedanstående tidsdiagram a

(2) Skriv ett program som skapar ett antal processer vars relationer beskrivs av nedanstående tidsdiagram a Tentamen i Operativsystem, HI1025:LAB1-15 mars, 2017 Allmänna instruktioner. Tentamen innehåller 3 programmeringsproblem av den art vi exemplifierat på seminarier och i övningar. För godkänt betyg ska

Läs mer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt

Läs mer

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean? Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer

Läs mer

Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010

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

Läs mer

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89) Reguljära uttryck Ett sätt att söka och manipulera text Reguljära uttryck Konstruerar mönster som försöker hitta nåt i text Viktigt, användbart, många resurser http://regex.info/ http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html

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

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 0 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: ca 2 3 timmar Att läsa: sidan 45 52 Syfte: Att ladda hem och installera utvecklingsmiljön Att skriva ditt första Javaprogram

Läs mer

Undervisning. Examination

Undervisning. Examination Kursinfo Objektorienterad programmering Undervisning Föreläsning 1 Kursinformation Allmänt om programmering Java - några inledande exampel Grundbegrepp: variabler, uttryck, satser, typer. Föreläsningar

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

Läs mer

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering switch int weekday; printf("mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday)

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens Utvidgat regionalt lärarnätverk Stiftelsen Norrbottens Läns Arbetsstugor Lärarnätverket i samtliga Norrbottens kommuner Likvärdighet

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående

Läs mer

Det finns många flaggor till g++,

Det finns många flaggor till g++, C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.

Läs mer

Introduktionslaboration

Introduktionslaboration LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system (SaS) Tommy Olsson 2006-08-31 TDIU06 Programmering g.k Introduktionslaboration Ht1, 2006 Detta häfte

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Tentamen EDAF30 Programmering i C++

Tentamen EDAF30 Programmering i C++ LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenska Tentamen EDAF30 Programmering i C++ 2015 05 06, 8.00 13.00 Hjälmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna. Du

Läs mer

Föreläsning 10. Pekare (Pointers)

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

Läs mer

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss

Läs mer

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, 8.15-13.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination

Läs mer

Pascal... Pascal. Pascal... Pascal...

Pascal... Pascal. Pascal... Pascal... ... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Objektorienterad Programmering (TDDC77)

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

Läs mer

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \

Läs mer