Programmeringsteknik för ingenjörer. Programmeringsteknik för ingenjörer 1

Storlek: px
Starta visningen från sidan:

Download "Programmeringsteknik för ingenjörer. Programmeringsteknik för ingenjörer 1"

Transkript

1 Programmeringsteknik för ingenjörer Programmeringsteknik för ingenjörer 1

2 Johan Eliasson (föreläsare,grupptimmar) Rum: D415, Fredrik Dahlin (gruppövningar, handledning) Anna Öhlund (gruppövning, handledning), Rum: D420 Kursens hemsida Programmeringsteknik för ingenjörer 2

3 MIT plan 4 Programmeringsteknik för ingenjörer 3

4 Mål Kursens mål är: Att orientera om användning av datorn i naturvetenskapliga och tekniska tillämpningar. Att ge kännedom om ett datorsystems uppbyggnad och funktion. Att ge kunskaper och färdigheter i programkonstruktion och organisation av programsystem. Att orientera om datastrukturer och algoritmer Programmeringsteknik för ingenjörer 4

5 Kursinnehåll Problemlösning: Programmering som problemlösning. Problemspecifikation. Grundläggande byggstenar (sekvens, val, iteration), abstraktion, funktioner, algoritmer, iteration, rekursion. Programmering i C: Styrstrukturer, funktioner, parameter överföring, enkla och strukturerade datatyper, filhantering. Programmeringsmetodik och programutveckling: Strukturering av program och data, stegvis förfining, modularisering, abstraktionsnivåer, testning, avlusning och dokumentation, programmeringsstil och programkvalitet Programmeringsteknik för ingenjörer 5

6 Kursinnehåll Undervisningsformer Föreläsningar, gruppövningar (i datorsal och lektionssal), datorintroduktion. Examination Teoridel(3p): Skriftlig tentamen Laborationsdel (2p): Fyra obligatoriska datorlaborationer. Kurslitteratur Kelley, A.L., Pohl, I.: A Book on C 4th edition, Addison-Wesley, ISBN Programmeringsteknik för ingenjörer 6

7 Datorintroduktion Datorintroduktion Datoranvändning och systemkännedom: Användning av kompilatorer, editorer och andra programutvecklingsmedel, e-post & diverse annat som kan vara nyttigt att känna till. Grupp 2.1 Tisdag17/ Grupp 2.2 Tisdag17/ Grupp 1.1 Torsdag 31/ Grupp 1.2 Torsdag 31/ Programmeringsteknik för ingenjörer 7

8 Laborationer Fyra laborationer: Stryktips Söka nollställe för en ekvation Bildbehandling Maze De tre första ska lösas enskilt! Maze labben får lösas i grupper bestående av max 2 st studenter! Frågor om laborationerna besvaras av handledarna. Första laborationen ska vara inlämnad på onsdag 19/9! Sista datum för att få labbarna godkända (7/11) Annars blir det uppsamlingslabbar vid terminsstart. Programmeringsteknik för ingenjörer 8

9 Historisk översikt Ken Thompson från Bell Labs designade programmerings-språket B 1970 för det första UNIX-systemet. En utökning gjordes av Dennis Ritchie och fick namnet C. C var ursprungligen ett högnivå assemblerspråk och många konstruktioner i språket reflekterar därför tidiga maskininstruktioner. Programmeraren måste lägga stor vikt vid minnesallokering och design av datastrukturer. Programmeringsteknik för ingenjörer 9

10 Varför C? Fördelar Litet språk Används i UNIX (Linux) Portabelt (någorlunda) Elegant Modulärt Bas för C++ och Java Effektivt Nackdelar Komplicerad syntax Hanterar vektorer dåligt Flera olika användningsområden av symboler som * och =. Programmeringsteknik för ingenjörer 10

11 ANSI C ANSI ( American National Standards Institute ) En standard för C skapades Specificerar hur program kan se ut och hur de ska tolkas. Syftet är att förbättra portabilitet, stabilitet, underhållbarhet och effektiv exekvering av C- program på olika slags datorer. Nästan alla kompilatorer följer numera ANSI C standarden Programmeringsteknik för ingenjörer 11

12 Algoritm En algoritm är en noggrann plan, en metod för att stegvis göra något som har följande kännetecken Ändlighet Algoritmen måste kunna garanteras bli färdig efter ett ändligt antal steg (d.v.s. terminera) Bestämdhet Varje steg i algoritmen måste vara entydigt och precist definierat Indata En algoritm har noll eller flera indata, dvs värden som man ger den innan algoritmen startar. Programmeringsteknik för ingenjörer 12

13 Algoritm Utdata En algoritm har ett eller flera utdata, dvs värden som beräknas av algoritmen och som har bestämda relationer till indata Effektivitet Varje steg i algoritmen måste vara så elementärt att det i princip kan utföras exakt, och inom en ändlig tidsrymd, av en människa som arbetar med papper och penna Programmeringsteknik för ingenjörer 13

14 Makaronkokning Slå på plattan på 6:an. Om ingen kastrull är ren Rengör kastrullen. Fyll kastrull med vatten, salta och ställ den på plattan. Medan vattnet inte kokar Se på TV. Lägg i makaronerna och skruva ned plattan till 4:an. Upprepa Se på TV några minuter. Smaka makaron tills makaronen känns färdig. Häll av vattnet. Programmeringsteknik för ingenjörer 14

15 Algoritmer Satser utförs sekventiellt, en rad i taget. Raderna numreras och indenteras Exempel: 1. Läs in tal 1 2. Läs in tal 2 3. Beräkna tal 1 + tal 2 4. Skriv ut summan Programmeringsteknik för ingenjörer 15

16 Val och villkor Ett val definierar två möjliga vägar för algoritmen att ta beroende på ett villkor. Ett villkor är ett uttryck som kan besvaras med sant eller falskt. 1. Läs in tal 1 2. Läs in tal 2 3. Om tal Beräkna tal 1 / tal Skriv ut kvoten 4. Annars 4.1 Skriv ut felmeddelande. 4.2 Avsluta Programmeringsteknik för ingenjörer 16

17 Upprepning Vid upprepning, upprepas en eller flera satser alltmedan ett villkor är uppfyllt. 1. läs in tal 1 2. läs in tal 2 3. så länge som tal 2 = skriv ut Tal 2 får inte vara läs in tal 2 4. beräkna tal 1 / tal 2 5. skriv ut kvoten Programmeringsteknik för ingenjörer 17

18 Från källkod till program Källkod är en textrepresentation av ett program som kan läsas av en människa. Ett speciellt program, kompilatorn, översätter källkoden till maskinkod som datorn kan läsa och förstå. Programmeringsteknik för ingenjörer 18

19 Kompilatorn Kompilatorn består egentligen av tre program: Preprocessorn Bearbetar källkodsfilen innan kompileringen. Kompilatorn Översätter källkodsfiler till maskinkod i s.k. objektfiler. Länkaren Sätter ihop flera objektfiler till ett färdigt program. Programmeringsteknik för ingenjörer 19

20 Utskrift till skärm Ett program behöver ibland kommunicera med användaren. Kommandot (funktionen) printf skriver text på skärmen. För att kunna använda printf så måste man inkludera stdio.h i sitt program. Den filen innehåller nödvändiga definitioner till kompilatorn. Programmeringsteknik för ingenjörer 20

21 Första programmet #include <stdio.h> int main(void) { /* Skriver ut "Hello world!" på skärmen*/ printf("hello world!\n"); } Förklaring #include <stdio.h> Preprocessordirektiv. Preprocessorn uppmanas att inkludera innehållet i stdio.h som innehåller bl.a. definitionen av printf. int main(void) { } Deklaration av huvudfunktionen. Allt mellan { och } kommer att utföras när programmet körs. /*... */ Allt mellan /* och */ kallas kommentarer. Dessa tas bort av preprocessorn innan koden kompileras. printf(); Skriver ut strängen Hello world! till skärmen. \n innebär att vi även gör en radbrytning. Varje sats avslutas med ;. Programmeringsteknik för ingenjörer 21

22 Källkodsfiler Källkodsfiler består av: Preprocessordirektiv (#define, #include) preprocessorn. Deklarationer av variabler, funktioner och datatyper. Det finns ingen krav på i vilken ordning olika deklarationer ska ske, förutom att: Generellt ska en deklaration av en variabel, funktion eller datatyp ske före användning Varje program måste ha precis en deklaration av funktionen main() som utgör startpunkten i ett program. Programmeringsteknik för ingenjörer 22

23 C Fri syntax där mellanslag och nyradstecken inte är viktiga. C är case-sensitive, dvs gemener och versaler spelar roll. Programmeringsteknik för ingenjörer 23

24 Variabler En variabel är ett namngivet utrymme i datorns minne som används för att lagra data. Som man kan gissa av namnet, kan innehållet variera, d.v.s. värdet kan ändras medan programmet körs. Användandet av variabler är en fundamental del av programmering. Utan variabler skulle alla program vara statiska (oföränderliga). En variabel är av en viss datatyp. heltal (int) decimaltal (float, double) tecken (char) Innan man kan använda en variabel måste man deklarera variabeln och därmed ange vilken datatyp variabeln ska ha. Programmeringsteknik för ingenjörer 24

25 Inläsning från tangentbord För att läsa från tangentbordet används scanf. Fungerar liknande som printf. #include <stdio.h> int main(void) { int x; /* Uppmanar användaren att skriva ett tal */ printf("skriv ett tal: "); /* läser in ett tal som användaren skriver */ scanf("%d",&x); /* Skriver ut talet i kvadrat */ printf("talet i kvadrat är: %d\n ", x*x); return 0; } Programmeringsteknik för ingenjörer 25

26 Styrmekanismer Beroende på vilka omständigheter programmet befinner sig i (t.ex. variabelvärden) så kan ett program välja olika programkod att exekvera (köra). En grundläggande styrmekanismen heter if. Om ett uttryck är sant kommer delen som hör ihop med if-satsen att exekveras. En valfri del av if-satsen är else-satsen. Om uttrycket i if-satsen är falsk så kommer else-satsen att utföras. Exempel: if (a == b) { printf("a och b är lika.\n"); } else { printf("a och b är olika.\n"); } Programmeringsteknik för ingenjörer 26

27 Loopar Om man vill upprepa vissa satser finns tre olika metoder man kan använda. int x = 5; /* deklaration och initiering */ while-satser while (x > 0) { x = x - 1; } do-while-satser do { x = x - 1; } while (x > 0) for-satser for (x=1; x<5; x++) { printf("x= %d\n", x); } Programmeringsteknik för ingenjörer 27

28 Funktioner Om man har en uppgift som ska utföras på flera ställen i programmet, kan man ofta skriva detta som en funktion. (Varför återuppfinna hjulet flera gånger?) Man kan tänka sig en funktion som ett byggblock i programmet. Vi har redan sett exempel på en funktion, nämligen main-funktionen. Ett program måste minst bestå av en funktion (main). Andra funktioner anropas från main och från varandra. En funktion måste precis som en variabel deklareras innan den kan användas. Programmeringsteknik för ingenjörer 28

29 Exempel #include <stdio.h> /* Deklaration av funktionen square */ float square(float f) { return f*f; /* Returnerar f i kvadrat */ } int main(void) { float a = 4; /* Deklarerar och Initierar a */ float b; /* Deklarerar b */ /* Anropar funktionen square */ b = square(a); /* Skriver ut värdet på a och b */ printf("a=%f b=%f\n"); return 0; } Programmeringsteknik för ingenjörer 29

30 Språket C Eftersom C är ett språk, har det ett alfabet och regler för hur bokstäverna kan bilda ord och hur olika strukturella enheter skiljs åt. Detta kallas språkets syntax. Kompilatorn kollar att syntaxen i programmet är korrekt. För en människa är en C-källkod en tvådimensionell struktur, men för en kompilator är det en följd av bokstäver som övers ätts till objektkod, som i sin tur blir översatt till maskinkod för den aktuella maskinen. Efter att preprocessorn är klar, samlas bokstäverna i programmet till tokens. Programmeringsteknik för ingenjörer 30

31 Tokens I ANSI C, som är standarden för hur C-program får se ut, finns det sex olika typer av tokens. Dessa är nyckelord, identifierare, konstanter, sträng konstanter, operatorer och avslutare. Kompilatorn ser till att de olika tokens formar en korrekt sträng enligt språkets syntax. Kompilator kräver att texten är helt korrekt syntaxiskt. Programmeringsteknik för ingenjörer 31

32 Kommentarer För att underlätta att läsa ett program och för att kunna lägga in små förklaringar varför man gör som man gör, finns det i C möjlighet att lägga in kommentarer. En kommentar börjar med /* och slutar med */. Allt däremellan ignoreras av kompilatorn då preprocessorn plockar bort kommentarerna. /* a comment */ /* another comment */ /*********/ /* * yet another comment */ Programmeringsteknik för ingenjörer 32

33 Kommentarer om kommentarer Kommentarer är mycket viktiga och ska inte lämnas som ett sista steg! Kommentarer ska skrivas samtidigt som resten av programmet. Det lätt att strunta i att kommentera eller att de blir väldigt kortfattade. Kommentarerna ska indikera strukturen på ett program och bidra till ett programs korrekthet. Programmeringsteknik för ingenjörer 33

34 Identifierare Identifierare används till namn på bl.a. variabler och funktioner. En identifierare består av en sekvens av bokstäver, siffror och/eller det speciella tecknet _(eng. underscore). Identifierare får inte inledas med siffror. Exempel på identifierare: a, id och identifier_2. Dessa är inte identifierare: not#me, 101_south eller -plus. C skiljer mellan små och stora bokstäver, d.v.s. temp är inte samma variabel som Temp eller temp o.s.v. Programmeringsteknik för ingenjörer 34

35 Exempel int variable_1; int variable_2; void print_function(int v) { printf("v has value: %d", v); } Programmeringsteknik för ingenjörer 35

36 Nyckelord Vissa ord är reserverade och kan inte användas som t.ex. variabelnamn auto do goto signed unsigned break double if sizeof void case else int static volatile char enum struct long while const extern register switch typedef default short for union Programmeringsteknik för ingenjörer 36

37 Konstanter Det finns olika typer av konstanter i C: heltalskonstanter som t.ex. 0 och 17 flyttalskonstanter som t.ex. 1.0 och teckenkonstanter som t.ex. a, b eller + Vissa teckenkonstanter som \n (newline) har en speciell mening. Trots att de skrivs med två tecken (\ och n) så representerar de ett enda tecken i C. Programmeringsteknik för ingenjörer 37

38 Konstanter Exempel på heltalskonstanter är 0, 77 och är inte samma sak som 17, därför att heltal som börjar med 0 tolkas som skrivna med basen 8, d.v.s. oktala. Man kan också ange tal i hexadecimal form (bas 16), t.ex. Ox10 (16) eller Ox1A (26 = 16+10). Negativa tal (t.ex. -33) räknas också som konstanta uttryck. Programmeringsteknik för ingenjörer 38

39 Strängkonstanter En sekvens tecken omslutna av citationstecken (") räknas som en strängkonstant. Senare kommer vi att se att strängar lagras som en endimensionell vektor med tecken. Strängar med en bokstav är inte samma sak som tecken, d.v.s. "a" (sträng) är inte samma sak som a (tecken). Om man vill ha med " eller \ i en sträng så måste den förekommas av en \, d.v.s. de skrivs \" respektive \\. Exempel på strängar är "text", "" (tomma strängen), "/* not a comment */" och "\"hej\"". Däremot är t.ex. /* "text" */ inte en sträng. Programmeringsteknik för ingenjörer 39

40 Operatorer De aritmetiska operatorerna är + (addition), - (subtraktion), * (multiplikation), / (division), % (modulus). Normalt så skriver man a + b (mellanslag för att öka läsligheten) men det är tillåtet att skriva a+b. Vissa symboler har olika betydelse i olika sammanhang. T.ex. så har % olika betydelser i printf("%d", a); och i a = b % 7;. Parenteser, krullparenteser, komman och semikolon fungerar som avdelare. Parenteser kan bestämma prioriteten vid beräkningar. Programmeringsteknik för ingenjörer 40

41 Prioritet och associativitet Det finns regler för vilken prioritet (ordning operatorerna utförs) och associativitet (om man kollar på vänster eller höger sida om operatorn först) olika operatorer har. Eftersom uttryck inom parenteser utvärderas först kan parenteser användas för att ändra eller klargöra i vilken ordning operationer utförs. 3 * (3 * 2) * (2 + 5) 1 * 2-3 * 5 (1 * 2) - (3 * 5) 1 * (2-3) * 5 Programmeringsteknik för ingenjörer 41

42 Prioritet och associativitet Operatorer Associativitet () ++ (postfix) -- (postfix) vänster till höger + (unary) - (unary) ++ (prefix) -- (prefix) höger till vänster * / % vänster till höger + - vänster till höger = += -= *0 /= höger till vänster Programmeringsteknik för ingenjörer 42

43 Öka/minska-operatorer Vissa operationer är så vanliga att speciella operatorer har skapats. Dessa operatorer är ofta implementerade som endast en maskininstruktion väldigt snabba. ++ operatorn ökar värdet på en variabel med 1 och -- operatorn minskar värdet med 1. Båda operatorerna kan användas som postfix eller prefix operatorer. Om du använder postfix (a++), så ökas värdet först efter satsen är utförd, medan prefix (++a) ökar värdet innan satsen är utförd. Programmeringsteknik för ingenjörer 43

44 Exempel Programmet #include<stdio.h> int main(void) { int a = 4; int b = 4; printf("a = %d b = %d", a++, ++b); printf("a = %d b = %d", a, b); return 0; } ger utskriften a = 4 b = 5 a = 5 b = 5 Programmeringsteknik för ingenjörer 44

45 Tilldelning Tilldelning är också en operator i C. = har låg prioritet och är höger-vänster associativ. b = 3; c = 2; a = b + c; a = (b = (c = 0)); a = b = c = 0; a = (b = 3) + (c = 2); k = k + 2; Observera att tilldelning inte är samma sak som lika med (==). Programmeringsteknik för ingenjörer 45

46 Tilldelnings-operatorer Det finns också kombinationer av tilldelning och beräkningsoperatorer. = += -= *= /= Om int i = 1; int j = 2; int k = 3; Uttryck Ekvivalent Ekvivalent Värde i+=j+k i+=(j+k) i=(i+(j+k)) 6 i*=j-k+5 i*=(j-k+5) i=(i*(j-k+5)) 4 Programmeringsteknik för ingenjörer 46

47 Block Block finns mellan två krullparenteser { och }. Ett block består av eventuella deklarationer och satser. Ett block kan vara tomt. Block kan vara nästlade. { int a = 3; { printf("a = %d\n", a); } { } } Programmeringsteknik för ingenjörer 47

48 Variabeldeklarationer Variabler och konstanter måste vara deklarerade före de används. Deklarationer måste göras först inom varje block. Början på ett program kan se ut såhär #include <stdio.h> int main(void) { int a, b; /* deklaration */ float c = 1.3; /* deklaration och initiering */ printf("%f\n", c); /* funktionsanrop */ a = b + c; /* tilldelning */ return 0; } Programmeringsteknik för ingenjörer 48

49 Variabler Genom att varje variabel har en datatyp så vet kompilatorn hur mycket minne som ska reserveras för att lagra variabelns värde. Vissa operationer, t.ex. addition, kommer att utföras på olika sätt beroende på de variabler som är inblandade. (För datorn så är det är stor skillnad på att addera två heltal och att addera två flyttal). Programmeringsteknik för ingenjörer 49

50 Uttryck Ett uttryck är en giltig kombination av konstanter, variabler, operationer och funktionsanrop. En konstant, variabel eller funktionsanrop kan ensam också anses vara ett uttryck. Exempel på uttryck: a + b sqrt(7.534) 5.0 * x + tan(1.43 / x) Programmeringsteknik för ingenjörer 50

51 Uttryck/satser Nedanstående uttryck är ett exempel på ett tilldelningsuttryck i = 7 Hela uttrycket har värdet 7. När ett uttryck följs av ett semikolon kallas det för en sats. i = 7; printf("värdet på i är: %d", i); Följande satser är också semantiskt korrekt men gör ingen nytta. a + b; 1.344; Programmeringsteknik för ingenjörer 51

52 Tilldelningar Tilldelningsuttryck följt av ett semikolon bildar en tilldelningssats med följande generella form. variable = expression; Först beräknas uttrycket till höger, expr, vars värde därefter tilldelas variable. Detta värde blir också hela satsens värde. Tilldelningsuttryck kan likna matematiska ekvationer, men de båda begreppen är helt olika. Ekvationen x+2=x blir inte ett tilldelningsuttryck genom att skriva x + 2 = x. Vi kan inte ha ett uttryck till vänster om en variabel. Uttryck kan inte tilldelas ett värde. Programmeringsteknik för ingenjörer 52

53 Datatyper C har flera inbyggda datatyper: char signed char unsigned char int short long unsigned unsigned short unsigned long float double long double Viktigt att vara medveten om respektive typs begränsningar. Generellt sker deklarationer av variabler enligt type identifier {, identifier } 0+ float price, tax; int no_items; Programmeringsteknik för ingenjörer 53

54 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på hur stora heltalen kan bli. Normalt sparas ett heltal i ett maskin-ord, oftast 4 byte (4 * 8 = 32 bitar). I limits.h så finns definitioner på hur stora värden man kan lagra i int. Programmeringsteknik för ingenjörer 54

55 Heltal forts. Om int lagras som 4 bytes, betyder det att den kan anta 2 32 olika värden. Hälften av värdena används för att lagra negativa heltal och hälften för att lagra positiva heltal. Om i är en variabel av typen int, kan i anta heltalsvärden inom intervallet [-2 31,2 31-1]. Eftersom variabler har begränsad lagringskapacitet kan man drabbas av overflow, t.ex. om man försöker multiplicera två variabler vars produkt blir större än det maximala värdet som en variabel kan lagra. Programmeringsteknik för ingenjörer 55

56 Övriga heltalstyper short lagras oftast med 2 byte (vanligen mindre intervall än int). long lagras oftast med 4 eller 8 byte. (vanligen större intervall än int). unsigned framför en heltalstyp (ex. unsigned int) innebär att enbart positiva tal kan lagras. Detta innebär också att intervallet för tal (positiva) som kan lagras fördubblas. Programmeringsteknik för ingenjörer 56

57 Heltalsexempel void main(void) { int i; unsigned shot us; long l; i = 4; us = -1 /* VARNING!! Ger konstigt resultat. */ l = ; } Programmeringsteknik för ingenjörer 57

58 Tecken Tecken lagras i C som tal, där varje tecken motsvaras av ett heltal. Normal använder man char för lagra tecken men i C kan tecken representeras av variabler av vilken heltalstyp som helst. ASCII är en standard för vilka tecken som motsvarar vilket tal. Tecken är inte bara de skrivbara (t.ex. a, b,...) utan även kontrolltecken som används för att byta skrivrad (return), ljudsignal, tabulatortecken osv. Programmeringsteknik för ingenjörer 58

59 Tecken Att tecken har en motsvarighet i siffror kan ses i följande exempel: #include <stdio.h> void main(void) { printf("%c %c %d %d\n", A, 65, A, 65); } Vilket ger utskriften: A A Programmeringsteknik för ingenjörer 59

60 Specialtecken Name Written in C Integer value null character \0 0 alert \a 7 backspace \b 8 horizontal tab \t 9 newline \n 10 vertical tab \v 11 formfeed \f 12 carriage return \r 13 double quote \ 34 single quote \ 39 backslash \\ 92 Programmeringsteknik för ingenjörer 60

61 Flyttal(reella tal) Det finns tre flyttalstyper: float, double och long double. Variabler av denna typ kan innehålla reella värden som 0.001, 2.0 eller Hur stor precision en variabel av float, double eller long double har är systemberoende. Oftast är precisionen för en double bättre än en float och long double bättre än double. Programmeringsteknik för ingenjörer 61

62 Flyttalskonstanter Vi kan lagra heltal som flyttalskonstanter men vi måste ange dom i formen 1.0 och däremot är en heltalskonstant. Flyttal kan också anges som e5 vilket motsvarar Ett suffix kan läggas till som anger vilken typ konstanten är. f eller F anger att konstanten är float och l eller L anger att den är long double. Ett flyttal utan suffix är av typen double. T.ex. 3.7F säger att vi har en flyttalskonstant av typen float. Programmeringsteknik för ingenjörer 62

63 Övriga flyttal En float har vanligtvis en ungefärlig precision av 6 signifikanta siffror och ett ungefärlig omfång (range) på till Representationen i maskinen blir (i bas 10 i.s.f. 2): 0.d 1 d 2 d 3 d 4 d 5 d 6 10 n där 38<n<38. En double har vanligtvis en precision av 15 signifikanta siffror och ett omfång på till x i satsen double x = /* 20 signifikant digits */ resulterar att x blir tilldelat ett värde som lagras enlig (15 signifikanta siffror) Programmeringsteknik för ingenjörer 63

64 Exempel Att reella tal inte lagras exakt kan ge upphov till vissa problem. Om vi antar att vår dator kan lagra en float med maximalt 5 signifikanta siffror. float x = 12345F; float y = 1e-1F; float z = 0 / (x + y e5F); /*problem*/ När uttrycket i nämnaren skall evalueras måste exponenten av de tre talen vara av samma storlek. x= e5 y= e5 x+y e5==0 Programmeringsteknik för ingenjörer 64

65 Typdeklarationer, typdef Med typedef kan en datatyp associeras med en identifierare. typedef unsigned int coord_t; typedef double temp_t; Variabler kan därefter deklareras med identifieraren. coord_t x, y; temp_t inside, outside; Fördelarna är kortare typdeklarationer, men framför allt att datatypen antyder den avsedda användningen av variabler. Programmeringsteknik för ingenjörer 65

66 Typstorlek, sizeof Operatorn sizeof används för att veta hur många bytes som krävs för att lagra ett objekt. Objekt kan vara en datatyp (float), ett uttryck (a+b), en vektor, eller en struktur (se senare kap.). sizeof(int) sizeof(a+b) sizeof returnerar ett heltal som anger hur många bytes som krävs för lagringen. C är flexibelt när det gäller storlekarna på datatyper vilket kan leda till dålig portabilitet av kod. Användandet av sizeof kan delvis undvika detta problem. Programmeringsteknik för ingenjörer 66

67 Lagring Följande gäller alltid på alla system. sizeof(char) == 1 sizeof(unsigned) == sizeof(signed) == sizeof(int) sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) sizeof(float) <= sizeof(double) <= sizeof(long double) Enlig definitionen kan alltså en long vara lagrad med 1 byte (256 olika värden), men oftast lagras en long med 8 byte (2 64 olika värden). Programmeringsteknik för ingenjörer 67

68 getchar() och putchar() getchar() och putchar() är makron (används som funktioner) definierade i stdio.h som läser tecken från tangentbordet respektive skriver tecken till skärmen. getchar() returnerar en int och putchar() tar en int som argument. I minnet så lagras en char som 1 byte och en int lagras oftast som 4 byte. Därför kan en int lagra alla värden som en char kan. Vi kan tänka oss char som en liten heltalstyp och int som en stor teckentyp. Vi kan alltså lagra tecken i int lika gärna som i char. Programmeringsteknik för ingenjörer 68

69 double_out.c #include <stdio.h> /* i stdio.h finns raden #define EOF (-1) */ int main(void) { int c; while ((c = getchar())!= EOF) { putchar(c); putchar(c); } return 0; } Programmeringsteknik för ingenjörer 69

70 capitalize.c #include <stdio.h> int main(void) { int c; while ((c = getchar())!= EOF) { if (c >= a && c <= z ) putchar( A + c - a ); else putchar(c); } return 0; } Programmeringsteknik för ingenjörer 70

71 Matematiska funktioner Det finns inga inbyggda matematiska funktioner i C utan de tillhandahålls via matematikbiblioteket math.h. Alla matematikfunktioner (förutom pow()) tar ett enda argument av typen double och returnerar en double. Observera att absolutbeloppsfunktionen, abs(), tar heltal som argument, medan fabs() tar flyttal som argument. Detta leder till vanliga fel, speciellt då kompilatorn sällan ger varningar. Programmeringsteknik för ingenjörer 71

72 Exempel #include <math.h> void main(void) { double a = 4.5; double b = 5.1; double c; c = sin(a + b) / fabs(cos(a)); } Programmeringsteknik för ingenjörer 72

73 Konvertering Ett uttryck som x+y har både ett värde och en datatyp. Om både x och y är av typen int, så får x+y typen int. Däremot, om både x och y är av typen short, så kommer x+y att få typen int. Detta på grund av att short alltid konverteras till int. En char eller short (signed eller unsigned) kan användas där en int eller unsigned int förväntas. Ex. Om en funktion tar en int som argument, kan man skicka en char istället. Om däremot funktionen returnerar en int, så bör man inte ta emot det i en char. Programmeringsteknik för ingenjörer 73

74 Aritmetiska konverteringar Om operanderna till en binär operator är av olika typ så kan en av dom konverteras. Anta att i är int och f är float. I uttrycket i+f så konverteras i till en float och hela uttrycket får typen float. Vid tilldelningar kan också konvertering ske. Om vi antar att i är av typen int och d är av typen double, kommer värdet av d = i att konverteras till double och hela uttrycket bli double. En utökning av en variabel, som sker i fallet med d = i går ofta bra men däremot i = d kan orsaka problem. Decimaldelen av d kommer att försvinna och i kommer att tilldelas heltalsdelen. Programmeringsteknik för ingenjörer 74

75 Explicita konverteringar Explicita konverteringar (eng. casts) låter programmeraren byta typ på ett uttryck. Om vi antar att i är av typen int så kommer (double)i att konvertera värdet av i så att uttrycket har typen double. Variabeln i påverkas inte av konverteringen utan är fortfarande av typen int Ex. (long)( A +1.0) f = (float)((int)d + i) d = (double) i/3; (double)(x = 77) Programmeringsteknik för ingenjörer 75

76 Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekventiell flödeskontroll. Ofta är det dock nödvändigt att modifiera flödet om ett villkor är uppfyllt eller om vi vill upprepa flera satser. Med if, if-else och switch-satser så kan ett val bland alternativ göras. Med while, for och do-while så kan vi åstadkomma upprepningar i vårt program. Programmeringsteknik för ingenjörer 76

77 Relation, likhet och logiska operatorer Relationsoperatorer < mindre än > större än <= mindre än eller lika med >= större än eller lika med == lika med!= inte lika med Logikoperatorer! negation && logiskt och logiskt eller Programmeringsteknik för ingenjörer 77

78 Relationsoperatorer Alla relationsoperatorer är binära, d.v.s. de tar två uttryck som operander. Som resultat av operatorerna får vi int värdet 0 (falskt) eller 1 (sant). Exempel: a < 3 a > b -1.3 >= (x ) a < b < 3 /* syntaktiskt rätt, men oväntat resultat, Varför? */ Felaktiga: a =< b /* Fel ordning på = och < */ a < = b /* Mellanslag ej tillåtet */ a >> b /* bitvis skiftning (se senare kap.) */ Programmeringsteknik för ingenjörer 78

79 Likhetsoperatorer Likhetsoperatorerna är == och!=. Exempel: c == A k!= -2 x + y == 3 * z -7 Felaktiga a = b /* tilldelning */ a = = b /* mellanslag ej tillåtet */ (x + y) =! 44 /* syntax fel: samma som (x + y) = (!44) */ Programmeringsteknik för ingenjörer 79

80 Logiska operatorer Logiska operatorer är!, && och. Exempel:!a!(x+ 7.7)!(a < b c < d) a && b a b Felaktiga a && /* operand saknas */ a b /* extra mellanslag */ a & b /* bitvis operation (se kap 7) */ & b /* minnesadressen till b */ Programmeringsteknik för ingenjörer 80

81 Semantik expr1 expr2 expr1 && expr2 expr1 expr2 noll noll 0 0 noll icke noll 0 1 icke noll noll 0 1 icke noll icke noll 1 1 Programmeringsteknik för ingenjörer 81

82 Kortslutning När datorn utvärderar sanningen i ett uttryck så slutar evalueringen så snart utkomsten är känd. Om vi har expr1 && expr2, så kommer inte expr2 att utvärderas om expr1 är falskt. int cnt = 0; while (++cnt < = 3 && (c = getchar())!= EOF) { /* something */ } När uttrycket ++cnt <= 3 är falsk kommer inte nästa tecken att läsas från stdin. Programmeringsteknik för ingenjörer 82

83 Block Ett block är en mängd deklarationer eller uttryck som är omgivna av krullparenteser {}. Där man kan sätta in ett uttryck så är det tillåtet att lägga in ett block. Blocket är i sig själv ett uttryck. Block används är i samband med if, switch, for, do och while. int a = 1, b = 2; if (a > b) { printf("a is bigger than b\n") } Programmeringsteknik för ingenjörer 83

84 if och if-else Generella formen är if (expr) statement Satsen statement utförs endast om uttrycket expr är icke noll, d.v.s. sant. Exempel: if (score >= 75) printf("grattis!\n"); printf("du har fått %d poäng på tentan.\n", score); Grattis skrivs ut endast om grade har ett värde större än 75. Programmeringsteknik för ingenjörer 84

85 if och if-else En if-else-sats ser ut som if (expr) then-statement else else-statement Satsen then-statement utförs endast om uttrycket expr är icke noll, d.v.s. sant. Satsen else-statement utförs endast om uttrycket expr är noll, d.v.s. falskt. Programmeringsteknik för ingenjörer 85

86 if och if-else Exempel: printf("du har "); if (score >= 50) printf("godkänt "); else printf("underkänt "); printf("på tentan med %d poäng!\n", score); Beroende på om studenten nått upp till 50 poäng skrivs antingen Du har godkänt på tentan med xx poäng eller Du har underkänt på tentan med xx poäng ut. Programmeringsteknik för ingenjörer 86

87 if och if-else if (y!= 0.0) z = x/y; if (j < min) min = j; /* är detta rätt eller? */ if (a < b) if (a < c) printf(" a < b && a < c\n"); else printf(" a < b && a >= c\n"); Ha för vana att använda {} vid nästlade if-satser. Om antalet nivåer med if-sateser börjar bli stort (>4) fundera på att bryta upp dem i flera separata if-satser istället Programmeringsteknik för ingenjörer 87

88 while Repetition av sekvenser är en av fördelarna med datorer. En dator blir, till skillnad från en människa, aldrig less på att upprepa samma saker hela tiden. Den generella formen är while (expr) statement Satsen statement utförs endast om och alltmedan uttrycket expr är sant. i = 1; while(i < n) factorial = factorial * i++; while ((c = getchar())!= EOF) { if (a >= a && a <= z ) lower_cont++; } total_cnt++; Programmeringsteknik för ingenjörer 88

89 for for-satsens generella form for(expr1; expr2; expr3) statement next statement är semantiskt ekvivalent med expr1 while(expr2) { statement expr3 } next statement Programmeringsteknik för ingenjörer 89

90 Exempel for (i = 1; i < n; i++) factorial = factorial * i; for (i = 2; i < k/2; i++) { if (i % k == 0) printf("%d is a divisor of %d\n", i, k); } Felaktig syntax: for (i = 0, i < 5, i+=3) {/*semikolon saknas!!*/ sum += i; } Programmeringsteknik för ingenjörer 90

91 i = 1; sum = 0; for (; i < 10; ) sum += i++; är ekvivalent med sum = 0; for (i = 1; i < 10; i++) sum += i; Exempel Programmeringsteknik för ingenjörer 91

92 Kommaoperatorn Lägst prioritet av alla operatorer i C har kommaoperatorn, Den är vänster-höger associativ, så i ett uttryck av formen expr1, expr2 kommer expr1 att utvärderas först och sedan utvärderas expr2 En vanlig användning av kommaoperatorn är i for-loopar for (i = 1, sum = 1; i < 10; i++) sum += i; /* samma som ovan */ for (i = 1, sum = 1; i < 10; sum += i, i++) ; /* EJ samma som ovan */ for (i = 1, sum = 1; i < 10; i++, sum += i) ; Programmeringsteknik för ingenjörer 92

93 do-while Istället f ör att göra test i början som while, gör do-while sitt test i slutet. int age = -1; do { fflush(stdin); printf("ange din ålder: "); scanf("%d", &age); } while (age < 0); En do-while kommer alltid att utföras minst en gång. Programmeringsteknik för ingenjörer 93

94 switch switch är en multi-konditions if. Syntax switch ( uttryck ) { case värde1 : satslista1 case värde2 : satslista2 case värde3 : satslista3... default: satslistan } Programmeringsteknik för ingenjörer 94

95 Exempel if (a == 1) printf("a är 1\n"); else if (a == 3) printf("a är 3\n"); else printf("a är inte 1 eller 3\n"); är ekvivalent med: switch (a) { case 1: printf("a är 1\n"); break; case 3: printf("a är 3\n"); break; default: printf("a inte 1 eller 3\n"); } Programmeringsteknik för ingenjörer 95

96 break och continue För att bryta det normala flödet, kan break och continue användas. break bryter den innersta loopen eller en switchsats. continue hoppar ur ett loop-block och påbörjar nästa varv i loopen. while(1) { scanf("%lf", %x) if (x < 0.0) break; printf("%lf\n", sqrt(x)); } Programmeringsteknik för ingenjörer 96

97 Villkorsoperatorn Villkorsoperatorn? : är ovanlig då den är en tertiär operator (den tar tre uttryck som operatorer). if (a < b) x = a; else x = b; kan skrivas som x = a < b? a : b; Om uttrycket före? är sant returneras uttrycket mellan? och :, annars returneras uttrycket efter :. Programmeringsteknik för ingenjörer 97

Heltal(int) Programmeringsteknik 54

Heltal(int) Programmeringsteknik 54 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på

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

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

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

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

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

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

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

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

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

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

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

översiktskurs (5DV031)

översiktskurs (5DV031) Programmeringsteknisk översiktskurs (5DV031) Föreläsning 10 kallin@cs.umu.se Innehåll Ändlig aritmetik Fler exempel på funktioner med arrayer som parametrar Läsanvisningar: Dessa bilder, kapitel 11 kallin@cs.umu.se

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

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

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

Lathund. Pacific C för MS-DOS

Lathund. Pacific C för MS-DOS Lathund Pacific C för MS-DOS Revision 2 2003-08-28 Anders Arvidsson Karl-Johan Krantz Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 PACIFIC

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

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 1 2000-09-21 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 MPLAB...4

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

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

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

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

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

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

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

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

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

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

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

Läs mer

C-programmering. Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur

C-programmering. Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur C-programmering Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur I Bilting, Skansholm: Vägen till C I Kernighan, Ritchie: The C Programming Language,

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

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

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 2 2001-04-13 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion... 3 1.1 Assembler kontra C... 3 1.2 Kodexempel... 3 1.3

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

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

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

GPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången

GPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången GPT- föreläsning 10 För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången poparoramometoterorövoverorfoförorinongog Denna gång Olika typer av fel Felsökning och felsökningsverktyg

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer

Läs mer

DD1314 Programmeringsteknik

DD1314 Programmeringsteknik Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:

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

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar

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

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

Programmering för språkteknologer I, VT2012. Rum

Programmering för språkteknologer I, VT2012. Rum Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska

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

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde. 2 Enkla datatyper Att skriva ett program innebär att man ska tillverka en plan för att bearbeta data eller information på något sätt Programmering handlar om data och bearbetning av data Data kan vara

Läs mer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

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

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 teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 15

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

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

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

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

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

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

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

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

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

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

Läs mer

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg Programmering i C En tuff kurs på halvfart för nybörjare i programmering Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg 1 Idag Kursupplägg Satser

Läs mer

Innehållsförteckning. Exempel. Åtkomst & användarhandledning

Innehållsförteckning. Exempel. Åtkomst & användarhandledning Framsidan Framsidan på din labrapport kan du utforma ganska fritt. Tänk bara på att den ska vara läsbar, och innehålla (minst) följande information: Ditt namn Din e-mail adress här på CS! Kursens namn

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

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

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

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

Värmedistribution i plåt

Värmedistribution i plåt Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Några småsaker. switch break, continue, goto Kommentarer

Några småsaker. switch break, continue, goto Kommentarer Några småsaker switch break, continue, goto Kommentarer switch int weekday; printf("mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) case 1: printf("monday\n"); break; case 2: printf("tuesday\n");

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

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2 Föreläsning 2 2.1 Variabler Vi studerar exempel 1 från boken: int main(void) int a,b,c=7; float antal,pris=3.70,laengd; a=34; b=32767; antal=-123.978; pris=89.00; laengd=56; c=-38; laengd=laengd+1; Sex

Läs mer

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering

Läs mer

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida:

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida: 2D1387, Programsystemkonstruktion med C++ 00/01 1 Slide 1 2D1387, Programsystemkonstruktion med C++ Johnny Bigert, johnny@nada.kth.se Kursens hemsida: http://www.nada.kth.se/kurser/kth/2d1387 Varför vill

Läs mer

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

C++-programmets beståndsdelar

C++-programmets beståndsdelar C++-programmets beståndsdelar Ett C++-program är uppdelat i headerfiler (fil.h) och implementationsfiler (fil.cpp) Programmet måste innehålla åtminstone funktionen int main() main() startar programmet

Läs mer

6.1 Kompilering och lite grundläggande information

6.1 Kompilering och lite grundläggande information 6 Förhoppningsvis ska de C-konstruktioner som gås igenom här tillsammans med de exempelprogram som ges här och i andra delar av lab-pm vara tillräckliga för att ni ska kunna klara av laborationerna. Syftet

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

Byggstenar. C++-programmets beståndsdelar. C++-programmets beståndsdelar. Grundläggande datatyper

Byggstenar. C++-programmets beståndsdelar. C++-programmets beståndsdelar. Grundläggande datatyper C++-programmets beståndsdelar Ett C++-program är uppdelat i headerfiler (fil.h) och implementationsfiler (fil.cpp) Programmet måste innehålla åtminstone funktionen int main() main() startar programmet

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

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

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

Dagens föreläsning. Specialtecken. Mer om printf. Formateringssträngar. Mer om scanf. Programmeringsteknik för Ingenjörer VT05

Dagens föreläsning. Specialtecken. Mer om printf. Formateringssträngar. Mer om scanf. Programmeringsteknik för Ingenjörer VT05 Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 12 Filhantering Funktionsbibliotek Mer om kompilering Lagrinsklasser Makron Programmeringsteknik VT05 2 Mer om printf Utskrifter

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng

Läs mer

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar

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

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

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316

Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer

Läs mer

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 8: Aritmetik och stora heltal 2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen

Läs mer