Hjälp med Programmering 2 uppgift ASAP

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

Hjälp med Programmering 2 uppgift ASAP

Hej alla jag förstår inte hela min uppgift i programmering 2 och hoppades på att någon här kunde hjälpa!

int[] tabell = new int [4];
Hur många element rymmer fältet?
svar 4
Vilken typ har elementen i fältet?
int
Hur är fältet indexerat?
förstår inte vad dom menar..

Vad gör nedanstående programsekvens?
int[] tabell = new int [10];
for (int i = 0; i < tabell.length; i = i + 1)
tabell[i] = i+1;

börjar med att deklarerar ett fält "tabell" med 10 utrymme i fältet
i = 0 , om i är mindre än tabell så adderas i med 1

tabell[i] = i+1; , förstår jag inte riktigt

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2013

int[] tabell = new int [10]; // initierar tabell, som kan innehålla 10 värden av typen int for (int i = 0; i < tabell.length; i = i + 1) // loop över i, från 0 till precis innan tabellens längd (d.v.s. 0-9), med 1 steg i taget (kan även skriva i++ istället för i = i + 1) tabell[i] = i+1; // varje plats 'i' i tabellen ska vara lika med i + 1, d.v.s. vid plats 0 i tabellen så är värden 1, vid plats 1 i tabelen så är värdet 2 o.s.v.

Main || Intel Core i7 980X @ 4.12GHz || ASUS Rampage III Gene || Corsair Vengeance 6x4GB @ 1800MHz || EVGA GTX 780 Reference || Creative Sound Blaster ZxR || 2x Intel 530 240 GB || Western Digital Blue WD10EZEX 1000 GB || ASUS VG248QE (no G-sync) ||
Laptop || Lenovo Thinkpad X220 4291-37G ||
Project: Pentium Clockbox || Intel Pentium G3258 ||

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

@Icte: aha ok fattar nu, tack så mycket för hjälpen !

Trädvy Permalänk
Medlem
Plats
Götet
Registrerad
Okt 2013

och välkommen till programmerings underbara värld

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Trädvy Permalänk
Medlem
Registrerad
Okt 2015

@talonmas: Hur är fältet indexerat?
förstår inte vad dom menar..

plats nummer 1 har indexering 0. Man börjar alltid på 0 och sen går upp.
Så om du har 4 number int[] lista = new int[4];
om listan ser ut: [3, 5, 7, 9]
då är 3an på index 0, 5 är på index 1, 7 på index 2, 9 på index 3.

Vad gör nedanstående programsekvens?
int[] tabell = new int [10];
for (int i = 0; i < tabell.length; i = i + 1)
tabell[i] = i+1;

Det som händer här är att du får en lista med 10 platser.
for loop går igenom steg för steg.
Anledningen till att "i" är vanligast här är att i står för index. Så i = 0 är att index = 0
Sen tittar den på är i < tabell.length. Ja, den är 0 och tabell är 10.
efter det så går den ner i funktionen och gör
tabell[i] = i+1.
tabell[i] där i är = 0 just nu, för vi står på första platsen i arrayen.
Nu första gången är i = 0, så på plats 0 kommer den lägga in summan av 0 + 1 som är 1.
Sen går den upp till for loopen igen och så kör den det sista som står i parantesen. i = i + 1.
i = i + 1 är att siffran i just nu är 0. Det vi gör nu är att vi tar 0+1 dvs vi ökar(inkrementerar) indexet med 1.
När detta är färdigt så går den till i < tabell.length igen och ser om detta stämmer. Vilket det gör för nu är i(index) = 1
Sen går den runt till 9an. 9an är ju sista indexerings platsen, 0-9 = 10 platser.
Sen det sista som händer är att indexen går upp till 10. Men i < tabell.length stämmer inte så då är den loopen klar och den går vidare till nästa steg.