översiktskurs (5DV031)

Relevanta dokument
Indicerade variabler

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

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

Arrays (indicerade variabler) Föreläsning 6

Arrays (indicerade variabler) Föreläsning 4

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

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

Indexerade variabler

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Enkla uppgifter. Uppgift 1. Uppgift 2

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Fråga 13. Skriv en loop som fyller arrayen int v[100] med talen

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

struct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ };

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Föreläsning 9. Repetition och exempelproblem

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

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

Arrayer. results

*Pekarvärden *Pekarvariabler & *

C++ Slumptalsfunktioner + switch-satsen

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

TDIU01 - Programmering i C++, grundkurs

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Introduktion C-programmering

Uppgift 1 ( Betyg 3 uppgift )

översiktskurs (5DV031)

Repetition C-programmering

Tecken & Strängar. Kapitel 7

1,3,5,7,9,...,99. Skriv ett program som genererar en multiplikationstabell med följande utseende

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

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

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

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

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

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

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

Uppgift 1 ( Betyg 3 uppgift )

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare

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

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Tisdag 12 april 2016 Skrivtid: 8:15-10:00

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

Uttryck och villkor. Föreläsning 2

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

4 Sammansatta datatyper

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

Föreläsning 11. Strängar

En kort text om programmering i C.

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

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

Pekare och arrayer. Indexering och avreferering

Funktioner och programstruktur. Föreläsning 5

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Föreläsning 2, vecka 8: Repetition

Föreläsning 10. Pekare (Pointers)

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

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.

Programmering, grundkurs, 8.0 hp HI1024, extra tentamen, TEN1, för TIDAA1. Fredagen den 11 mars 2011,

Uttryck och villkor. Föreläsning 2

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

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

Tentamen i Programmering grundkurs och Programmering C

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

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

7 Programmeringsteknik

Agenda. Objektorienterad programmering Föreläsning 13

Loopar och datatyper. Föreläsning 3

Loopar och datatyper. Föreläsning 3

C++ Lektion Tecken och teckenfält

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

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

Tentamen i Programmering grundkurs och Programmering C

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

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Tisdag 12 april 2016 Skrivtid: 8:15-10:00

Funktioner och programstruktur. Föreläsning 5

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

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Typkonvertering. Java versus C

6 Lågnivåprogrammering

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

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

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

Programmering i C, 7,5 hp

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 3

Att använda pekare i. C-kod

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

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

Programmering, grundkurs, 8.0 hp HI1024, TEN1. Fredagen den 2 mars 2012

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Programmering A. Johan Eliasson

Tommy Färnqvist, IDA, Linköpings universitet

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

SORTERING OCH SÖKNING

tentamensdags och lab 3

PLANERING MATEMATIK - ÅK 8. Bok: Y (fjärde upplagan) Kapitel : 5 Ekvationer Kapitel : 6 Sannolikhet och statistik. Elevens namn: Datum för prov

Transkript:

Programmeringsteknisk översiktskurs (5DV031) Föreläsning 5

Innehåll Indexerade variabler Arrayer, sortering Läsanvisningar: Kapitel 6.1-6.3

Ett problem Hur sparas data T.ex. när man vill spara resultaten i en tävling med 3 deltagare: int res1; int res2; int res3; Håller detta för 10, 100 eller ett okänt antal? 3

Lösningen Deklarera utrymme för många variabler i en enda deklaration Exempel: int res[10]; En array är en sekvens av värden N element indexeras med 0 till N-1 Exempel: 0 1 2 3 4 5 6 7 8 9 res 79 87 94 82 67 98 87 81 74 91

Fält och hakparanteser Deklaration typ variabelnamn[storlek]; Alla värden har samma typ Storleken måste vara ett positivt heltal och känd vid kompileringen Åtkomst av element variabelnamn[index] // index >= 0 && index < storlek

#include <stdio.h> #include <windows.h> int main(void) { int a[8],k; } a[1]=4; a[2]=a[1]-1; a[3]=a[1]-a[2]; k=4; a[k]=2*a[k-1]; a[k+1]=a[k-2]+a[k]; a[6]=a[a[2]]; a[a[1]+a[2]]=a[a[5]-a[4]]; a[a[a[6]]]++; for(k=1;k<=7;k++) printf("a[%d] = %d\n",k,a[k]); system("pause"); return 0; Exempel 6.2

#include <stdio.h> #include <windows.h> #include <stdlib.h> #include <time.h> int main(void){ int s2,s3,s4,s5,s6,s7,s8; int s9,s10,s11,s12,k,kast; s2=s3=s4=s5=s6=s7=0; s8=s9=s10=s11=s12=0; srand(time(0)); for(k=1;k<=10000;k++){ } kast=rand()%6+1+rand()%6+1; if (kast==2) s2++; if (kast==3) s3++; if (kast==4) s4++; if (kast==5) s5++; if (kast==6) s6++; if (kast==7) s7++; if (kast==8) s8++; if (kast==9) s9++; if (kast==10) s10++; if (kast==11) s11++; if (kast==12) s12++; printf("antal 2: %d\n",s2); printf("antal 3: %d\n",s3); printf("antal 4: %d\n",s4); printf("antal 5: %d\n",s5); printf("antal 6: %d\n",s6); printf("antal 7: Exempel %d\n",s7); 6.3 printf("antal

#include <stdio.h> #include <windows.h> #include <stdlib.h> #include <time.h> int main(void){ int s[13],kast,k; } srand(time(0)); for(k=2;k<=12;k++) s[k]=0; for(k=1;k<=10000;k++){ kast=rand()%6+rand()%6+2; s[kast]++; } for(k=2;k<=12;k++) printf("antal %2d: %d\n",k,s[k]); system("pause"); return 0; Exempel 6.4 Varför s[13]?

Initialisera fält med listor Hela fältet kan initialiseras vid deklarationen Endast vid deklarationen! Antalet element i listan anger storleken int enheter[] = {147, 323, 89, 933, 540, 269, 97}; char kursniva[] = {'A', 'B', 'C', 'D'};

Initialisera fält med listor Om listan har färre element än deklarerad storlek: int udda[10] = {1, 3, 5, 7}; fylls resten ut med nollor 0 1 2 3 4 5 6 7 8 9 udda 1 3 5 7 0 0 0 0 0 0

Exempel float temps[] = {1, 2, 3, 4}; #define MAX_A 8 int diverse[max_a]; int jamna[max_a] = {2, 4, 6, 8}; const int MAX_ANTAL = 8; float res[max_antal]; int udda[max_antal] = {1,3,5,7,9};

Indexkontroll Väl skapat är fältets storlek fixt Programmerarens ansvar att index refererar till existerande element Index måste vara i intervallet 0 storlek-1 Index kontrolleras inte under körning! Man kan nå minnesadresser utanför arrayen

Tillämpningar Listor av alla slag Spelplaner Sortering Sökning

Sortering Det finns många algoritmer (planer) för sortering. 29(!) olika algoritmer finns på sidan http://en.wikipedia.org/wiki/sorting_algorithm Hur gör ni när ni sorterar talen 45.0, 34.5, 23.7, 51.9, 45.0, 19.7

Problem: Skriv ett program som arbetar med en kortlek. En kortlek innehåller 13 kort (ess [1], två, tre,..., tio, knekt [11], dam [12], kung [13]) i var och en av fyra färger (klöver, hjärter, ruter och spader). Genom att bestämma någon lämplig numrering av korten kan varje kort identifieras som ett heltal mellan 0 och 51. Programmet ska slumpa ut en pokerhand (5 olika kort) och skriva ut dem på skärmen. Exempel: H2, SD, K8, R2, SE