Vad har vi lärt oss så här långt Vad är en sträng? Strängkonstanter. Att skriva ut och läsa in strängar. Att arbeta med strängar.

Storlek: px
Starta visningen från sidan:

Download "Vad har vi lärt oss så här långt Vad är en sträng? Strängkonstanter. Att skriva ut och läsa in strängar. Att arbeta med strängar."

Transkript

1

2 Vad har vi lärt oss så här långt Vad är en sträng Strängkonstanter. Att skriva ut och läsa in strängar. Att arbeta med strängar. Matriser av strängar. Sortering av strängar. Vad har vi lärt oss i dag

3 Literals Identifiers [A-Za-z_][A-Za-z0-9_]* Syntax Tokens (Keywords) Semantik Operators Punctuation marks,;(){:;white space

4 DATA TYPES Literals Identifiers [A-Za-z_][A-Za-z0-9_]* Syntax Tokens CTRL STRUCT Operators Punctuation marks,;(){:;white space PRG CORR (Keywords) Semantik PRG IN LARGE

5 = + - * / % ==!= > < >= <= Compound Literals Basic 7 pointer Aggregates struct {62, Anders string Hej! Side effects Bitwise typedef 2 casting Precedence Operands Assosiativity Reference Abstract array {1,2,3 { a, b, c char c int 7 float 2.0 Eval Order.! && file Comparison Aritmetic Use of not init var ~& ^ <<>> Logical Und. behavior Neg arg in % + - * / % & ^ << >> A[i] * & A->b a.b Referens Compound assign. DATA TYPES Literals Identifiers [A-Za-z_][A-Za-z0-9_]* PRG CORR Imp. dependent Dangling else, AB:C Sizeof() Other Implicit promotion Explicit (type) Syntax related qualifiers Syntax Tokens (Keywords) Semantik Sequencing CTRL STRUCT Operators Punctuation marks Int / int,;(){:;white space PRG IN LARGE Logical related Statement; Compound statement { 2 Selection If else Functions, scope switch for while do Repetition Jump Directives int main(void){ declarations statements /*comment*/ or // 5 break continue goto return exit

6 Alla program som har någon form av dialog med sin användare behöver kunna skriva ut, och läsa in, text och inte enbart enstaka bokstäver. Givetvis går det att skriva ut en text bokstav för bokstav men i stort sätt alla programmeringsspråk har något mekanism för att hantera en följd av bokstäver, ofta kallat för en sträng (string). printf( %c, H ); printf( %c, e ); printf( %c, j ); printf( %c, );

7 I c skapas en strängkonstant (string literal) genom att sätta en text inom citat-tecken. Exempel på strängkonstant P.g.a sitt anglosaxsiska ursprung så kan utskriften se konstig ut. För specialtecken används skrivsättet \x, där \ talar om för kompilatorn att det tecken som ska stå på den platsen i strängen bestäms av x. Ska tecknet \ skrivas ut får ni skriva \\.!"#$%&'()*+,-./ PQRSTUVWXYZ[\]^_ `abcdefghijklmno pqrstuvwxyz{ ~

8 printf( Welcome to the Weekday calcylator! ); printf( The answer is %d!, answer); Men om man vill skriva ut ett %-tecken, hur gör man det! Det finns ett stort antal praktiska funktioner i olika bibliotek som gör det lätt att arbeta med strängar, men det är viktigt att argumenten då verkligen är strängar, i annat fall kan det bli riktigt fel

9 NEJ! Strängar är ingen egen typ i c utan strängar lagras på ett speciellt sätt i vanliga endimensionella matriser. Strängkonstanter är bara ett praktiskt sätt att skriva initieringsaggregatet för en sådan matris! Strängar lagras som en array av char som avslutas med null-tecknet \0 Exempel hej lagras som [ h e j \0 ] och kräver alltså en array med längden minst 4 för att få plats! Den får lagras i en array som är längre, och då får det vara vad som helst efter null-tecknet. Ex: [ h e j \0 k a ] Om null-tecknet saknas är det ingen sträng utan en array av char och inga inbyggda funktioner för strängar kommer att fungera korrekt! Kom ihåg att char egentligen är heltal som tolkas som tecken vid t.ex. %c. \0 har heltalsvärdet 0 vilket ibland används int main(void){ char msg[]={'h','e','j','','\0'; printf("hej"); printf(msg);

10 Även om strängar saknar en egen typ finns det inbyggt stöd för strängar. T.ex. behöver vi inte (men kan) initialisera en sträng såsom: char s[8]={'h','e','j','\0'; utan kan skriva: char s[8]="hej"; //h e j \0 \0 \0 \0 \0 Observera behovet av plats för \0 char s[3]="hej"; printf("%s",s); kommer inte att lagra \0 och printf kommer fortsätta att skriva slumpmässiga tecken till den stöter på en byte som är 0. Vi kan istället låta kompilatorn beräkna längden: char s[] = hej ;

11 Vi kan enkelt skriva ut strängar med printf: char s[]="hej"; printf("%s",s); Eller ännu enklare med puts: char s[]="hej"; puts(s); //skriver ut strängen s och gör sedan ny rad Med printf kan vi inkludera strängar i strängar: char namn[]="nicklas"; printf("hej %s", namn);

12 Att läsa in strängar kan vid första anblicken verka lika enkelt som att skriva ut men innehåller en hel del komplikationer: Vid vilket tecken ska vi sluta läsa Mellanslag, ny rad, tab Vad gör vi med tecken som är kvar när vi läst färdigt Lämnar kvar eller slänger bort Vad gör vi om input vi läser inte får plats i arrayen vi läser till Enklast att använda är scanf och gets. De är båda livsfarliga eftersom de inte har någon aning om hur lång array de skriver till och kommer fortsätta skriva rätt ut i minnet om input är för långt. Vi kommer ändå använda dessa initialt men kom ihåg problematiken!

13 int main() { char s[10]; scanf("%s",s); printf("%s",s); return 0; Observera att vi inte ska använda & i scanf då s är en array och detta redan är en pekare! Jämför med: scanf( %d,&tal); scanf skippar först alla white spaces läser sedan tecken tills den stöter på white spaces. white spaces är ett samlingsnamn för bl.a. mellanslag, tab och ny rad. Detta gör att scanf inte kan användas för att läsa en hel mening. Skriver vi hej pa dig läses endast hej Alla tecken som är kvar lämnas kvar på inputströmmen och kommer att läsas av nästa försök att läsa. Detta kan ställa till problem! char s1[100]; char ch; printf("skriv in strang:"); scanf("%s",s1); printf("skriv in char:"); scanf("%c",&ch);//när vi kör läses här return och vi får ingen chans att skriva!

14 char s1[100]; char ch; printf("skriv in strang:"); gets(s1); printf("skriv in char:"); scanf("%c",&ch); gets läser allt tills den kommer till inklusive white spaces. Den tar bort från inputströmmen men lägger inte in den i arrayen utan byter den mot \0.

15 För att inte riskera att läsa in mer än som får plats kan man använda fgets istället som vi kommer att titta närmare på senare. Vill man ha full kontroll över hur inläsningen av strängar sker skriver man ofta en egen inläsningsfunktion. Boken har ett exempel på sid 287: int readline(char s[], int n) { int ch, i=0; while ((ch=getchar())!='') if(i<n) s[i++]=ch; s[i]='\0'; return i; //Denna läser maximalt n tecken så s måste ha n+1 platser!

16 Eftersom en sträng är en array tecken med \0 sist kan vi enkelt nå godtyckligt tecken: char s[]="hej pa dig"; char tecken5 = s[4];//tecken5 blir p Här är en funktion (sid 287) som räknar mellanslag i en sträng: int countspaces(char s[]) { int count=0,i; for(i=0; s[i]!='\0 ; i++) if(s[i]==' ') count++; return count; Observera att vi till strängar inte behöver skicka längden men också hur viktigt det är att de avslutas med \0!

17 Det mesta av C s stöd för stränghantering finns i standardbiblioteket string.h. Behöver du göra något med strängar så leta här. Vilka som ska ingå i C-standarden kan du läsa i 23.6 men dessutom har många miljöer extra funktioner. När du ska använda en biblioteksfunktion som du inte använt förut i ett program börjar du med att läsa dokumentationen. Sedan skriver du ett litet testprogram för att se om det fungerar som du förstått. Först därefter provar du att använda funktionen i ditt program Glöm inte att högst upp inkludera headern: #include <string.h>

18 För att ta reda på längden hos en sträng loopar man enkelt igenom strängen räknande antal varv tills man hittar \0 liknande funktionen som räknade mellanslag. Dock finns en sådan färdig i string.h: char s[]="hej pa dig"; int antal=strlen(s); Den returnerar strängens längd inte arrayens. Arrayen kan vara mycket längre. \0 räknas inte heller till strängen utan bara tecknen i strängen. Om man läser dokumentationen för strlen i boken eller i unix med kommandot: man strlen eller på nätet ser man funktionsprototypen: size_t strlen(const char *s) Här stöter vi då på en del saker vi inte helt behärskar. Det gäller då att försöka förstå tillräckligt och sedan pröva till dess att ni är fullärda. Den returnerar size_t som är en definierad typ men vi kan hantera den som en int. const betyder att arrayen inte får ändras av funktionen. Den vill ha en pekare men en array skickas som pekare till funktioner.

19 Vi kan initiera en sträng enligt: char s[]="hej pa dig"; Men inte tilldela enligt: char s[20]; s="hej pa dig";//kompileringsfel! Inte heller går det att kopiera strängar med = char s1[20]="hej pa dig"; char s2[20]; s2=s1;//kompileringsfel -vilket ju inte går med arrayer generellt! Man måste helt enkelt loopa igenom arrayerna och kopiera tecken för tecken eller även här finns en färdig funktion i string.h: int main() { char s1[20]="hej pa dig"; char s2[20]; strcpy(s2,s1); //kopierar strängen i s1 till s2 OBS vårt ansvar att s2 är tillräckligt stor printf("%s",s2); return 0; Vi kan också kopiera in litteraler: strcpy(s1, Hej );

20 För att sätta ihop strängar använder vi strcat: char s1[20],s2[20]; strcpy(s1,"samman"); strcpy(s2,"slagning"); strcat(s1,s2);//s1 innehåller nu sammanslagning printf("%s",s1); Som vanlig är det vårt ansvar att vi får plats

21 Inte heller == fungerar mellan strängar istället har vi: strcmp(s1,s2) som returnerar ett heltal som är mindre än noll lika med noll eller större än noll beroende om s1 kommer före lika eller efter alfabetiskt (enligt ascii) strcmp(s1,s2)<0 returnerar 1 om s1 är före s2 strcmp(s1,s2)==0 returnerar 1 om s1 är lika med s2 vilket kan användas i en if-sats för sortering eller jämförelser

22 Ordbok: 4 rader á 8 tecken. A I K #include <stdio.h> #define MAX 4 #define WORDLENGTH 7 int main() { char ordbok[max][wordlength+1]; for (int i=0; i<max; i++ { printf("skriv in ett ord:"); gets(ordbok[i]); for (int i=0; i<max; i++) printf("%s",ordbok[i]); return 0;

23 #include <stdio.h> #define MAX 4 #define WORDLENGTH 7 int main() { char ordbok[max][wordlength+1]; Ordbok: 4 rader á 8 tecken. for (int i=0; i<max; i++ { printf("skriv in ett ord:"); gets(ordbok[i]); for (int i=0; i<max; i++) printf("%s",ordbok[i]); return 0; A I K ordbok ordbok[0] ordbok[0][0] ordbok[1] ordbok[2] ordbok[3] i [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7]

24 #include <stdio.h> #define MAX 4 #define WORDLENGTH 7 int main() { char ordbok[max][wordlength+1]; Ordbok: 4 rader á 8 tecken. for (int i=0; i<max; i++ { printf("skriv in ett ord:"); gets(ordbok[i]); for (int i=0; i<max; i++) printf("%s",ordbok[i]); return 0; A I K ordbok ordbok[0] ordbok[0][0] ordbok[1] ordbok[2] ordbok[3] i 0 AIK [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7] A I K 0

25 #include <stdio.h> #define MAX 4 #define WORDLENGTH 7 int main() { char ordbok[max][wordlength+1]; Ordbok: 4 rader á 8 tecken. for (int i=0; i<max; i++ { printf("skriv in ett ord:"); gets(ordbok[i]); for (int i=0; i<max; i++) printf("%s",ordbok[i]); return 0; A I K ordbok ordbok[0] ordbok[0][0] ordbok[1] ordbok[2] ordbok[3] i 0 AIK [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7] A I K 0 DIF A I K D I F 1

26 #include <stdio.h> #define MAX 4 #define WORDLENGTH 7 void sortera(char lista[][wordlength+1], int langd) { int main() { char ordbok[max][wordlength+1]; for (int i=0; i<max; i++ { printf("skriv in ett ord:"); gets(ordbok[i]); sortera(ordbok, MAX); for (int i=0; i<max; i++) printf("%s",ordbok[i]); return 0; ordbok ordbok[0] ordbok[0][0] ordbok[1] ordbok[2] ordbok[3] i [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7] lista langd

27 Iden här är att skriva en funktion som sorterar en array av strängar och anropa den innan orden skrivs ut i exemplet innan. Gå tillbaka till föreläsning 4 och repetera sortering och försök sedan att tillämpa det på strängar med hjälp av vad vi lärt oss idag. Försök först själv men om du kör fast kan du titta vidare på dagens föreläsning efter läsanvisningen för att få hjälp på vägen. Det är dock viktigt att du först försöker själv för att du verkligen ska förstå detta mycket viktiga exempel.

28 Sortering av strängar 2 void sortera(char lista[][wordlength+1], int langd) { int i, j; for (i=0; i<langd-1; i++) { for (j=0; j<langd-1-i; j++) { if(strcmp(lista[j], lista[j+1])>0) { byt(lista[j], lista[j+1]); A I K D I F B L H V [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7] lista Langd i j lista[0] lista[1] lista[2] lista[3]

29 Sortering av strängar 3 void byt(char s1[], char s2[]) { char tmp[wordlength+1]; strcpy(tmp,s1); strcpy(s1,s2); strcpy(s2,tmp); s1 s2 A I K D I F B L H V [0][0] 19 [0][1] 20 [0][2] 21 [0][3] 22 [0][4] 23 [0][5] 24 [0][6] 25 [0][7] 26 [1][0] 27 [1][1] 28 [1][2] 29 [1][3] 30 [1][4] 31 [1][5] 32 [1][6] 33 [1][7] 34 [2][0] 35 [2][1] 36 [2][2] 37 [2][3] 38 [2][4] 39 [2][5] 40 [2][6] 41 [2][7] 42 [3][0] 43 [3][1] 44 [3][2] 45 [3][3] 46 [3][4] 47 [3][5] 48 [3][6] 49 [3][7] lista Langd i J s1 s2 tmp[0]. lista[0] lista[1] lista[2] lista[3] A I K B L D I F H V

30 Strängkonstanter hej [ h, e, j, ]. Att skriva ut och läsa in strängar printf( %s, hej ). Att arbeta med strängar string.h - strlen, strcpy, strcat. Matriser av strängar plats för! 2D array som parameter deklaration av andra dimensionen. Se upp med: Storlek, tilldelning, jämföra, dimension

31 Gå igenom föreläsningen och programmera exemplen, glöm inte <string.h> och experimentera med koden. Försök fixa sorteringsfunktionen till vår array (hjälp finns efter denna sida men försök utan) Läs igenom Hade du svårt med sorteringsfunktionen och/eller använde mycket hjälp gör K13 P1 Skriv en egen funktion som returnerar längden av en sträng. Om du läst kapitel 12 och står ut med det myckna användandet av pekare är det kul och nyttigt att läsa igenom 13.6 och programmera exemplen. E-excercises, P-programming projects

Föreläsning 11. Strängar

Föreläsning 11. Strängar Föreläsning 11 Strängar Dagens kluring void findmax(int v[], int length, int *pmax) int i;??=v[0]; for(i=1;i< length;i++) if(v[i]>??)??=v[i]; int main() int a[]=1,2,3,4,2; int max; hittamax(a,5,???); printf(

Läs mer

Grundkurs Programmering

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

Läs mer

Grundkurs Programmering

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

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

Planering Programmering grundkurs HI1024 HT TIDAA

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

Läs mer

Föreläsning 7 Strängar

Föreläsning 7 Strängar Föreläsning 7 Strängar I C använder vi strängar för att lagra text. Strängar kommer in ganska sent i kursen, det är jag inte så glad över, men det finns också fördelar, vi har grundat oss rejält nu i funktioner,

Läs mer

Tecken & Strängar. Kapitel 7

Tecken & Strängar. Kapitel 7 Tecken & Strängar Kapitel 7 Datatypen char Alla tecken i teckenuppsättningen Synliga och andra ASCII American Standard Code for Information Interchange Numera 256 tecken (8 bitar (2 8 ) numreras 0..255)

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

#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

Ö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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

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

Uppgifter till praktiska tentan, del A. (7 / 27)

Uppgifter till praktiska tentan, del A. (7 / 27) Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Föreläsning 13. In- och utmatning

Föreläsning 13. In- och utmatning Föreläsning 13 In- och utmatning Dagens kluring Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar

Läs mer

Loopar och datatyper. Föreläsning 3

Loopar och datatyper. Föreläsning 3 Loopar och datatyper Föreläsning 3 Dagens kluringar int x; printf("ange x:"); scanf("%d",&x); if(/*fyll i kod*/) printf("du angav x mellan 7 och 14"); int i=0; if(i++) i++; printf("%d",i++); //vad skrivs

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

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

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

Hantering av textsträngar och talsträngar. William Sandqvist

Hantering av textsträngar och talsträngar. William Sandqvist Hantering av textsträngar och talsträngar Strängen Hello world! PIC-processorerna lagrar strängkonstanter med bokstäverna inbakade i en följd av instruktioner (en tabell). Man hämtar en bokstav genom att

Läs mer

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world Programmering i C Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur Kernighan, Ritchie: The C Programming Language, Second edition, Steve Oualline:

Läs mer

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de

Läs mer

Loopar och datatyper. Föreläsning 3

Loopar och datatyper. Föreläsning 3 Loopar och datatyper Föreläsning 3 Dagens kluringar int x; printf("ange x:"); scanf("%d",&x); if(/*fyll i kod*/) printf("du angav x mellan 7 och 14"); int i=0; if(i++) i++; printf("%d",i++); //vad skrivs

Läs mer

4 Sammansatta datatyper

4 Sammansatta datatyper 4 Sammansatta datatyper De enkla datatyper som vi hittills använt är otillräckliga när man ska hantera stora datamängder. Vill man exempelvis läsa in 100 reella mätvärden, som man tillfälligt vill spara

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

Strängar. Strängar (forts.)

Strängar. Strängar (forts.) Strängar En sträng i C är helt enkelt en array av char: char namn[20]; För att få strängar att bete sig som om de vore av dynamisk längd markeras strängens slut med null-tecknet \0 : J o z e f S w i a

Läs mer

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare Funktionspekare, inledning: funktionsanropsmekanismen Vid funktionsanrop läggs aktuella argumentvärden och återhoppsadressen på stacken, därefter sker ett hopp till adressen för funktionens första instruktion.

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

Deklarera en struct som kan användas för att representera en rät linje

Deklarera en struct som kan användas för att representera en rät linje Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar en linje som går genom punken (0,2) och

Läs mer

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

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

Föreläsning 9. struct

Föreläsning 9. struct Föreläsning 9 struct Dagens kluring #include #include void fun(char s[]) int i=-1; while(s[++i]!=0) if('a'

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

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

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

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011, KTH STH TENTAMEN HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011, 8.15-12.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010 Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10 Programmeringsteknik för Ingenjörer VT06 Föreläsning 10 Dagens föreläsning Repetition Strukturer Programmeringsteknik för ingenjörer, VT06 2 Deklaration: char name1[10]; char *name2; Repetition - Strängar

Läs mer

Indexerade variabler

Indexerade variabler Indexerade variabler Vad har vi lärt oss så här långt Den första sammansatta (compound) datatypen: matris. Att arbeta med 1-dimensionella matriser. Att arbeta med flerdimensionella matriser. Matriser med

Läs mer

Föreläsning 12. struct

Föreläsning 12. struct Föreläsning 12 struct Dagens kluring #include #include void fun(char s[]) int i=-1; while(s[++i]!=0) if('a'

Läs mer

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories.

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories. C C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories. För att användas vid implementering av UNIX. Bygger på de tidigare språken BCPL och B. Målsättning: Att få ett högnivåspråks

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 8 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

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

*Pekarvärden *Pekarvariabler & *

*Pekarvärden *Pekarvariabler & * *Pekarvärden *Pekarvariabler & * Motivering Pekare är ett fundamentalt koncept i C (och C++) Multipla returvärden från funktioner. Arrayer hanteras via pekare Dynamiskt minne (kommer i slutet av kursen)

Läs mer

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E02 The Review Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser

Läs mer

Arrays (indicerade variabler) Föreläsning 4

Arrays (indicerade variabler) Föreläsning 4 Arrays (indicerade variabler) Föreläsning 4 Dagens kluring Hitta felet (ska skriva ut 10,9,8,7,6,5,4,3,2,1): int n; for(n=10;n0;n--) for(m=0;m

Läs mer

Arrays (indicerade variabler) Föreläsning 6

Arrays (indicerade variabler) Föreläsning 6 Arrays (indicerade variabler) Föreläsning 6 Dagens kluring int i; scanf("%d", &i); switch(i) case 1: printf("1"); case 2: printf("2"); case 3: printf("3"); break; case 4: printf("4"); break; case 5: printf("5");

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

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

2 Pekare och dynamiska variabler.

2 Pekare och dynamiska variabler. 2 Pekare och dynamiska variabler. När man definierar en variabel reserverar man samtidigt minne för variabelns värde. Detta minnesutrymme kommer man sedan åt med hjälp av variabelns namn. Definierar man

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

HI1024 Programmering, grundkurs TEN2 2015-10-30

HI1024 Programmering, grundkurs TEN2 2015-10-30 HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5 Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i

Läs mer

C-programmering, föreläsning 2 Jesper Wilhelmsson

C-programmering, föreläsning 2 Jesper Wilhelmsson C-programmering, föreläsning 2 Jesper Wilhelmsson Funktioner void Globala och lokala variabler, scope static Arrayer Strängar ASCII, ANSI Argument till main Slumptal Funktioner Nu är det dags att börja

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

C++ Lektion Tecken och teckenfält

C++ Lektion Tecken och teckenfält C++ Lektion Tecken och teckenfält Teori Hittills har alla variabler du jobbat med varit olika typer av tal, men du kan också deklarera variabler som håller bokstavstecken. Denna variabeltyp kallas för

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013 1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

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

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5 Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

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

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

C++ - En introduktion

C++ - En introduktion C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011, Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1 Tisdagen den 7 juni 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 inom C programmering.

Läs mer

C-programmering, föreläsning 1 Jesper Wilhelmsson

C-programmering, föreläsning 1 Jesper Wilhelmsson C-programmering, föreläsning 1 Jesper Wilhelmsson Introduktion till C Variabler, Typer, Konstanter Operatorer Villkorliga satser if-else, switch Loopar for, while, do... while Inmatning och utmatning stdin

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

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

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 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2 Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);

Läs mer

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 6 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-01-09 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

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

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

Läs mer

Poster ( structar ) Postdeklarationer

Poster ( structar ) Postdeklarationer Poster ( structar ) Exempel på en postdeklaration: struct person { int id; char namn[20]; int vikt, skonr; p1, p2; Detta definierar två variabler p1 och p2 som poster med termerna id, namn, vikt och skonr.

Läs mer

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6

Läs mer

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

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

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

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

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner GPT föreläsning 8 Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner Denna gång Reflektioner kring OU1 Funktioner Reflektioner

Läs mer

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)

Läs mer

Tentamen ges för: Tentamensdatum: Tid:

Tentamen ges för: Tentamensdatum: Tid: Programmering E 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen TE081B El2 Tentamensdatum: 2012-04-13 Tid: 900 1300 Hjälpmedel: Kursbok Kelley, Pohl: A Book on C, Fourth Edition Tillåtet

Läs mer

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion

Läs mer

Introduktionskurs i Datateknik

Introduktionskurs i Datateknik HF0010 Introduktionskurs i Datateknik F2: Vad är ett programmeringsspråk? A. Cajander, STH Introduktionskurs i Datateknik F1: Vad är en dator? F2: programmeringsspråk? L1: Hour of code, alla kan programmera,

Läs mer

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Föreläsning 4. Val, boolska värden, läsbarhet, osv Föreläsning 4 Val, boolska värden, läsbarhet, osv Exempel /* Programmeringsteknik med C och Matlab Programmering i C HT13 Exempel Fil: plus_one.c Författare: Jonny Pettersson Användare: jonny Datum: 7

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel 732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public

Läs mer