Värmdö Gymnasium Programmering B Datainstitutionen
C++ Lektion Flerdimensionella fält
Teori
Tänk dig ett kalkylblad i Excel, du vet att du kommer åt varje ruta med en kombination av en bokstav och en siffra.
Det är väldigt praktiskt när man ska hänvisa vart något finns i ett kalkylblad.
På samma sätt vill vi kunna lagra data i indexerade variabler i ett dataprogram, vi använder då inte bokstav och siffra utan bara siffror.
Vi ska lagra nedanstående tabell (vi skippar texten den här gången)
janua ri februa ri mars april Maj juni Juli augu sti septem be r oktob er No vemb er decembe r
Sverige 6,1 8,1 20,6 20,2 13,8 7,9 22,3 10,9 15,4 16,3 14,2 10,3 Island 14,3 24,1 21,7 15,1 12,6 11,1 7,5 5,8 5,0 11,3 18,4 13,8 Norge 19,5 11,4 14,0 14,1 21,4 15,6 5,6 18,1 21,2 13,7 6,0 17,8 Danmark 20,9 7,3 20,2 16,4 16,4 14,0 18,8 12,1 18,5 23,5 14,6 12,9 Variabeln deklareras
float temp[4][12] ; //eller float temp[12][4] beroende på hur man är van att tänka Vi kan precis som med enkla listor skriva in värdena vid deklaration.
float temp[4 ][12 ] ={{6.1,8.1,20.6,…………},{………..},{………..},{………}} ; Nu kan vi hänvisa med index till varje plats i arrayen
0 1 2 3 4 5 6 7 8 9 10 11 0 6,1 8,1 20,6 20,2 13,8 7,9 22,3 10,9 15,4 16,3 14,2 10,3
1 14,3 24,1 21,7 15,1 12,6 11,1 7,5 5,8 5,0 11,3 18,4 13,8
2 19,5 11,4 14,0 14,1 21,4 15,6 5,6 18,1 21,2 13,7 6,0 17,8
3 20,9 7,3 20,2 16,4 16,4 14,0 18,8 12,1 18,5 23,5 14,6 12,9
t.ex. så skulle temp[2][7] motsvara värdet 18,1
OBS! Ingen kontroll sker av ditt värde inom hakparenteserna, så det hänger på dig som programmerare att vara vaksam. När du kompilerar ditt program säger kompilatorn inget om du skrivit ett för stort index, t.ex.
temp[5][26]=21.8;
Läs
Läs avsnitt 5.9 i boken, som handlar om tabeller Övningar
1a. Sortera temperaturarrayen med avseende på vald månad(kolumnindex). När man sorterar en sån här array får man tänka till lite extra, raderna måste ju hänga ihop. Skriv ett program som sorterar med hänsyn på vald kolumn ( sortera tabellen så att det land som har högst temp i maj kommer överst, och självklart måste då även värden från de andra månaderna flyttas).
1b. Sortera utifrån vald kolumn.
2. Boken övning 5.11.14 (första halvan)
C++ Lektion FlerdimArray.doc
Sida 1