Grundkurs Programmering
|
|
- Amanda Lindberg
- för 6 år sedan
- Visningar:
Transkript
1 HI1024 Grundkurs Programmering F09: Pekare! A. Cajander, STH
2 f a float char short circuit order of subexp eval. Dagens fokus = + - * / % * / % & ^ << >> ==!= > < >= <=! && ~ & ^ << >> a[i] * & a->b a.b fn(), A?B:C sizeof() && comp. ass. i*i++, [ ] Integer overflow Index out of range #define =; Aritmetic If () { } [else { }] Compound assign. qualifiers Comparison 5 typedef Sequencing casting Implicit promotion, Explicit. 3 2 Precedence, Operands Assosiativity Selection 9 Reference Iteration Abstract 4 Aggregates Jump Compound Literals Functions Logical Bitwise Referens Other {,,,} overf/index Basic Side effects / Und. behavior DATA TYPES PRG CORR Imp. dependent Syntax related Logical related CTRL STRUCT PRG IN LARGE ; { } /*comment*/ or // makefile King , switch () case : [deafult :] Exceptions while () do while () for (;;) break continue lable:goto return exit 7 8 Directives main(void){ declarations statements } 1
3 Test! Indata? Utdata? Deklaration, Definition
4 Test Indata? Utdata?
5 Test x, y Parametrar a,b Argument Indata? Utdata? Copy-by-value!
6 Test! Indata? Utdata? 2-dim arrays
7 Stackexemplet deklaration Tjänsterna Datastrukturen Top-down Unit Test init() empty() peek() definition STACK PACKAGE view() pop() push()
8 Encapsulation robustness! Det är alltid smart att försöka skapa en återanvändbar modul med ett gränssnitt som döljer bort hur informationen rent praktiskt är lagrad. För stunden så måste vi tyvärr deklarera de variabler som behövs i main, vilket gör att de syns, men undvik (=aldrig) att ändra direkt i dessa utan skapa funktioner med kloka namn och variablerna som parametrar som gör jobbet!
9 Statistik
10 Statistik RndGen
11 Statistik init RndGen throw
12 Statistik init RndGen throw (os) [ ]
13 Statistik init RndGen throw (os) FrqTbl
14 Statistik init RndGen throw (os) init FrqTbl view tick
15 Statistik init RndGen throw (os) init FrqTbl view tick [ ]
16 Statistik
17 Statistik init RndGen throw (os)
18 Statistik init FrqTbl view tick [ ]
19 Statistik init FrqTbl view tick [ ]
20 Statistik?
21 Statistik Hade vi redan haft tillgång till paketen RndGen och FrqTbl så hade all ny logik i programet varit koncentrerad till 1 rad!
22 Nytt! Pekare rx = r1+r2 r1*r2 RAM %d = Läs in ett heltal! Det här är en sats. Till variabeln som finns på den här platsen! &r1=vart=46, r1=innehållet= r1 r2 rx Programmet stannar upp här och väntar på att du matar in ett tal + retur! ( & = Adressoperator. ) scanf() kan uppenbart ta emot, och använda, adressen till en?!
23 Pekare RAM ? r1 r2 rx Hum, &r1 ger alltså adressen till den minnescell som kompilatorn har valt att spara r1:s värde i (tur att vi slipper komma ihåg den!) går det att spara den adressen i en variabel?
24 Pekare Självklart, men observera: RAM ? * r1 r2 rx pr1 Genom att skapa en variabel av typen * kommer kompilatorn ihåg att 1) innehållet är en adress 2) till en minnescell som ska innehålla en! Det är väldigt smart att ge sådana variabler prefixet p, så att ingen glömmer bort att det är en adress!!!!!!!!!!!!!
25 Pekare då borde det gå att använda pr1 i stället för &r1 vid ett anrop till scanf?! RAM ? * r1 r2 rx pr1 Det fungerar! Observera: Vid deklarationen av pr1 reserveras plats i minnet för att spara en adress. Plats för (i vårt fall) r1 måste skapas separat!!!!!!!!!!!
26 Pekare det går lika bra med char eller float! RAM A B char ch char * pch Det fungerar! hum, vad skulle hända om vi skickade en pekare till en funktion, där pekaren sedan användes via värdeoperatorn *
27 Järnkoll?! RAM nb
28 Järnkoll?! RAM nb
29 Järnkoll?! RAM nb number
30 Järnkoll?! RAM nb number
31 Järnkoll?! RAM nb number
32 Järnkoll?! RAM nb number
33 Järnkoll?! RAM nb
34 Järnkoll?!
35 Järnkoll?! RAM nb
36 Järnkoll?! RAM x Int * nb nbptr
37 Järnkoll?! RAM x Int * nb nbptr
38 Järnkoll?! RAM x Int * nb nbptr
39 Järnkoll?! RAM x Int * nb nbptr
40 Järnkoll?! RAM nb
41 Järnkoll?!
42 Observationer 1. En ej initierad pekarvariabel är ett slumptal, som kan avsluta programmet om pekaren används! 2. Makrot NULL kan användas för att ge en pekare ett värde som betyder att pekaren för stunden e pekar på något! 3. Flera pekarvariabler kan peka på samma variabel! 4. Glöm aldrig & eller * där de krävs, det blir alltid svåra fel! 5. Variabelnamnet på en matris (utan [ ]) kan användas som en pekare till första elementet, det är därför & e behövs i funktionsanrop. 6. Döp alltid pekarvariabler med prefixet p (eller möjligen postfix Poer alt Ptr). 7. Innebörden av *&r1 är r1, d.v.s r1:s värde!
43 Varför pekare? Pekare används främst av 4 anledningar 1. Pekare möjliggör att funktioner kan ändra värdet på anropande funktionsargument. 2. Eftersom c kopierar funktionsargument blir funktionsanropet mycket snabbare om en pekare till argumentet används! 3. Pekare möjliggör att ett program kan skapa variabler när de behövs dynamiskt, e enbart statiskt via deklarationer. 4. Pekare möjliggör väldigt användbara speciella dynamiska datastrukturer som kallas länkade listor & träd.
44 Öva på pekare Skapa en funktion tocartesian som tar en polär koordinat (r,fi) och returnerar motsvarande rätvinkliga koordinater (x,y). (x=r*cos(fi) & y=r*sin(fi), fi anges i grader som ska konverteras till rad för att cos & sin ska fungera. Konstanten M_PI samt cos och sin finns via biblioteket math.h) Alla koordinater ska ha dubbel precision Funktionsdeklaration & Funktionsdefinition?!
45 Öva på pekare
46 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav
47 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Hum, programmet verkar bestå av tre delar......en kommadoavkodare v, e, c, r, q,...en del för att managera mätvärden,...och en statistikdel. max statistics normalize average min [ ] size
48 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska Start skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Stopp Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Hum, programmet verkar bestå av tre delar......en kommadoavkodare v, e, c, r, q,...en del för att managera mätvärden,...och en statistikdel. 2) Om jag börjar med kommandoavkodaren blir det lätt att provköra de andra delarna när jag utvecklar dem (samt att programmets ressenter redan nu kan se vad det är jag tror att de beställt)! max statistics normalize average min [ ] size Din första kommandotolk hanterar bara q(uit) (och kanske en hjälpmeny om valet är okänt).
49 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Hum, då är det nog dags att börja fundera på hur mina mätvärden ska lagras, dags för measurements-paketet! 3) Skapa de variabler som behövs för att lagra mätvärden samt hur många mätvärden som finns. Ge variablerna något rimligt initialt värde......och skapa view som skriver ut dem på ett snyggt sätt! Testa med olika antal värden, speciellt 0 och max! max statistics normalize average min [ ] size OBS: Inga globala variabler, använd funktioner med parametrar!
50 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Hum, både enter och reset ska kunna ändrar värdet på antalet lagrade mätvärden, det går att göra på två sätt......oavsätt det så verkar reset enklare, börjar med den! 4) Data: Implementeras på valfritt sätt Elektro: Ska implementeras med pekare! (Där det behövs!) max statistics normalize average min [ ] size Provkör, och testa att view fortfarande fungerar!
51 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Wow, reset fungerade då är det dags för enter! 5) Data: Implementeras på valfritt sätt Elektro: Ska implementeras med pekare! (Där det behövs!) max statistics normalize average min [ ] size Provkör, och testa att view fortfarande fungerar!
52 Kopplat till lab 2 (& 3) Att använda datorprogram för mätdatainsamling och analys är mycket vanligt. Ni ska skriva ett välstrukturerat program där man kan mata in mätvärden och analysera dessa. När programmet startar får användaren upp en meny där denne kan välja: v (View) - visar vilka mätvärden som finns lagrade e (Enter) - tillåter användaren att lägga till mätvärden c (Compute) - presenterar max, min, medelvärde och normaliserade mätvärden r (Reset) - raderar alla inmatade mätvärden q (Quit) - avslutar programmet Användaren ska göra sitt val genom att ange en bokstav view enter reset measurements [ ] nb size Hum, då är det bara statestiken kvar......mätvärdesmodulen blir mer generell om statestikanropen e ingår i den......antingen får valet c i kommandoavkodaren anropa statestikmodulen flera gånger alternativt så behövs det en hjälpfunktion som fixar det! 6) Realisera kommandot c på valfritt sätt. docompute max statistics normalize average min [ ] size Provkör, dubbelkolla indentering etc etc etc, Klart!
53 f a float char short circuit order of subexp eval. Dagens fokus = + - * / % * / % & ^ << >> ==!= > < >= <=! && ~ & ^ << >> a[i] * & a->b a.b fn(), A?B:C sizeof() && comp. ass. i*i++, [ ] Integer overflow #define =; Aritmetic If () { } [else { }] Compound assign. qualifiers Comparison 5 typedef Sequencing casting Implicit promotion, Explicit. 3 2 Precedence, Operands Assosiativity Selection 9 Reference Iteration Abstract 4 Aggregates Jump Compound Literals Functions Logical Bitwise Referens Other {,,,} overf/index Basic Side effects / Und. behavior DATA TYPES PRG CORR Imp. dependent Syntax related Logical related CTRL STRUCT PRG IN LARGE ; { } /*comment*/ or // makefile switch () case : [deafult :] Exceptions while () do while () for (;;) break continue lable:goto return exit 7 8 Directives main(void){ declarations statements } 1
54 Övning #08: 11E5 & Lab 2
55 Rev history AC Skapad AC & * Array AC Övning AC Pekare tydligare förklarade.
56 file struct [ ] Kursens uppbyggnad Aritmetic If () { } [else { }] Compound assign. qualifiers Comparison 5 switch () case : typedef Sequencing [deafult :] Logical casting Implicit promotion, Explicit. 3 Bitwise 2 Precedence, Referens Operands Assosiativity Selection 9 Reference Repetition 12 Abstract 4 11 Aggregates Jump 10 Compound DATA CTRL 6 Literals Functions 7 1 TYPES STRUCT Basic 5 Exceptions Side effects = + - * / % * / % & ^ << >> ==!= > < >= <=! && ~ & ^ << >> a[i] * & a->b a.b fn(), A?B:C sizeof() && comp. ass. Other f a float char short circuit i*i++, Integer overflow Index out of range {,,,} text order of subexp eval. uninit var. overf/index #define =; / Und. behavior PRG CORR Imp. dependent Syntax related Logical related PRG IN LARGE ; { } /*comment*/ or // makefile while () do while () for (;;) break Continue lable:goto return exit Directives main(void){ declarations statements } 1 8 Algoritmer I Algoritmer II Outlook, not on exam!
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 merVad 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.
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 Literals
Läs merFöreläsning 10. Pekare (Pointers)
Föreläsning 10 Pekare (Pointers) Dagens kluringar int a=5; int f(int b) a--; b++; return b; int main() int a=3; printf("%d,",f(a)); printf("%d",a); return 0; int f(int a) if(a==1) return a; else return
Läs merPlanering 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 merProgrammera 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 merRepetition 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Ö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 merIntroduktion 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 merKompilering 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 merTDIU01 - 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 merPlanering 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 merVariabler 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 merAgenda. 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 merDatatyper 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 merKlassdeklaration. 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 merGrundlä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 merGrundlä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 merMinnestilldelning (allokering) och frigörande (avallokering) av minne
Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på
Läs merPlanering 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 merDagens 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 merDynamiskt 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 merEnkla 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*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 merSkriv 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 merProgrammeringsteknik 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 merDatastrukturer. föreläsning 3. Stacks 1
Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer
Läs merÖ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 merProgrammering 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 merFunktionspekare, 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 merTentamen *: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 merFö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 merUlf 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 merDagens 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 merFunktioner 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#include <stdio.h> #include <string.h>
#include #include void fun(char s[]) int i=-1; while(s[++i]!=0) if('a'
Läs merFöreläsning 6 pekare och pekare tillsammans med arrayer
Föreläsning 6 pekare och pekare tillsammans med arrayer Vi ska nu undersöka vad pekare egentligen är och hur de relaterar till arrayer. Det är ett centralt tema i C-programmering. Vi följer boken och går
Läs mer1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Läs merJohan 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 merLite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Läs merBMI = (vikt i kg) / (längd i m) 2. Lösningsförslag
HI1024 TEN2 2013-10-28 Betygsgränser: Fx-8, E-9, D-11, C-12, B-14, A-16 (MAX-18) Generella rättningsnormer: Mycket dåliga variabelnamn ger -1p totalt på provet vid andra tillfället Inga eller dåliga kommentarer
Läs merIntroduktionskurs 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 merFunktioner 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 merTentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
Läs merDet finns många flaggor till g++,
C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.
Läs merProgrammering, 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 merPoster ( 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 merHI1024, 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 merAssemblerprogrammering för ARM del 2
Assemblerprogrammering för ARM del 2 Ur innehållet Programflöde Subrutiner, parametrar och returvärden Tillfälliga (lokala) variabler Läsanvisningar: Arbetsbok kap 2 Quick-guide, instruktionslistan Assemblerprogrammering
Läs merProgrammering 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 merHI1024 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 merObjektorienterad 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 merObjektorienterad 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 merEn 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 merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merAlla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Läs merHI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2015-01-08 KTH STH Haninge 13.15-18.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 merFöreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Läs merHI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början
Läs merFunktionens deklaration
Funktioner - 1 Teknik för stora program #include #include......... cout
Läs merAtt 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 merHantering 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 mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merHI1024 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 merFöreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs mer732G 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 merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merF4. 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 merArrays (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 merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merFöreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar
Läs merTypkonvertering. 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 mer6.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 merVälkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA
Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande
Läs merStatistik över heltal
Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merTDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
Läs merHI1024 Programmering, grundkurs TEN2 2014-03-13
HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.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 merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merIdag. 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 merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack
Läs merTypsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merTypsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merKTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012
KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny Panrike och
Läs merObjektorienterad 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 merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merstruct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ };
struct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ Vad är problemet? Att kunna lagra data som avser flera olika egenskaper
Läs merI 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 merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs merIndexerade 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 merObjektorienterad 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 merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs merProgrammering, 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 merGrunderna 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 mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor
732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)
Läs merFöreläsning 2, vecka 8: Repetition
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning
Läs merFöreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack
Läs mer732G 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