Forum: Behöver lite mer förklaring på C++ Guiden Del10

Forum huvudsida -> Programmering -> Behöver lite mer förklaring på C++ Guiden Del10

Sidor: 1

Till botten

DatorHacker 18:43 - 5:e Maj 2008 | Post #1
Medlem
Inlägg: 20


Skicka PM
Del 1-8 var mycket lättförstådda och roliga att pyssla med.
Nu kommer jag till den delen som brukar göra så att jag slutar med något bara för jag inte förstår.

Jag måste erkänna att jag har problem att förstå det här med Arrayer. Del 9 kan jag väll återupprepa och hålla på lite med så förstår jag det nog till slut men del 10 har jag endel jag inte fattar någonting av:
/DH
  1. #include<iostream>
  2.  
  3.  
  4. using std::cout;
  5.  
  6. using std::cin;
  7.  
  8.  
  9. int main ()
  10.  
  11. {
  12.  
  13. int array[10];
  14.  
  15.  
  16. cout << "Mata in tio tal:\n";
  17.  
  18.  
  19. for (int i=0; i < 10; i++)
  20.  
  21. {
  22.  
  23. cin >> array[i];
  24.  
  25. }
  26.  
  27.  
  28. for (int i=0; i < 10; i++)
  29.  
  30. {
  31.  
  32. cout << "Tal nummer " << i << " har värdet: " << array[i] << "\n";
  33.  
  34. }
  35.  
  36.  
  37. return 0;
  38.  
  39. }
  40.  
  41. /* Någon som kan förklara dessa steg lite närmare, som till exempel vad menas med i=0; ? står inte om det i guiden och [i] förstår jag inte heller.*/


fixade en kodruta för att man lättare ska kunna läsa koden //herj


Senast redigerad 20:56 - 5:e Maj 2008


Omega 19:39 - 5:e Maj 2008 | Post #2
Medlem
Inlägg: 42


Skicka PM
Hej!

Arrayer är ett sätt att göra det enkelt för sig att hantera flera variabler som alla är av samma typ.

Ex:
Istället för att skapa 5 variabler av typen int var för sig:
int array0;
int array1;
int array2;
int array3;
int array4;

Kan man skapa alla på en gång genom att göra en array av integers med 5 element:
int array[5];

Arrayen som skapas innehåller 5 element av typen int som har indexnummer 0 - 4, och nås genom ex
array[0]
array[1]
array[2]
array[3]
array[4]

Observera att det är hakparenteserna i deklarationen som gör att det blir en array. Ordet array har inte med saken att göra. Det kunde lika gärna ha stått:
int potatis[5], fast då fick man använda potatis[0] osv när man ville använda arrayen.
________________________________________
vad menas med i=0; ?

i=0 Innebär att variabeln i TILLDELAS värdet 0.
SKILJ DETTA från i==0, som innebär att i jämförs med värdet 0.

________________________________________

[i] förstår jag inte heller.

i är det indexnummer som används för att peka ut ett speciellt element i arrayen.
Om det exempelvis står:
array[i]
och i är 3 blir resultatet detsamma som om du skriver
array[3]

-------------------------
Fall omkull sju gånger och res dig upp åtta.



DatorHacker 21:11 - 5:e Maj 2008 | Post #3
Medlem
Inlägg: 20


Skicka PM
Tack så mycket!

Nu när jag vet vad Arrayer är så kan jag hålla på och pyssla lite med det i min kompilator samt med loopar innan jag går vidareSmiley

,,nnu än gång tack så mycket!




Omega 22:05 - 5:e Maj 2008 | Post #4
Medlem
Inlägg: 42


Skicka PM
Smiley

-------------------------
Fall omkull sju gånger och res dig upp åtta.



DatorHacker 15:49 - 6:e Maj 2008 | Post #5
Medlem
Inlägg: 20


Skicka PM
En fråga bara:

I den här for-loopen:

#
for (int i=0; i < 10; i++)

int i=element0;

Men vad står ''<'' för? om jag fattat rätt så betyder i < 10; i++) att loopen loopar igenom från 0-10 men < stog det inget om i tidigare guider.

Antar att det betyder ''att loopen skriver ut looparna fram till loop nr 10. i++. Men vill ändå vara säker..




Python 15:56 - 6:e Maj 2008 | Post #6
Medlem
Inlägg: 157


Skicka PM
< betyder helt enkelt mindre än.

-------------------------
-------------------------



ozamosi 16:20 - 6:e Maj 2008 | Post #7
Administratör
Inlägg: 1129


Skicka PM
Jag tänker skapa en nästan, men inte riktigt, likadan for-loop som du skrev som exempel. Jag ska förklara varför senare.

for (int i =0; i < 10; i++)
{
int j = element0;
}

(skillnaden är alltså att jag bytt ut int i = element0 mot int j = element0)

int i=0 betyder skapa en variabel, döp den till i, och ge den värdet 0
i < 10 är en jämförelse: värdet på i är mindre än 10, sant eller falskt?
i++ betyder öka i med ett.

For-loopen kör först den första biten, int i=0 i det här fallet.
Den testar sedan med den andra biten, är i mindre än 10?
Eftersom det kommer bli sant (i är ju 0) kommer loopens "kropp", int j = element0;, att köras.
När den är klar kommer for-loopen att gå tillbaka till den första raden och läsa den tredje biten, som alltså ökar i med 1. i blir nu 1.
Sedan kör den den andra biten igen, är i fortfarande mindre än 10? Ja, i är 1.
Sedan kör den kroppen igen.
Sedan går den tillbaka till del tre igen och ökar i med 1, sedan kör den del två igen, är i (som nu är 2) fortfarande mindre än 10? ...och så vidare.

När den har hållit på en stund kommer den att hamna i en situation där i inte längre är mindre än 10 (vilket i just det här fallet råkar vara när i har blivit exakt 10), och då kommer den att sluta med allt den håller på med och hoppa till efter kroppen, så att resten av koden kan köras.


Anledningen till att jag inte ville använda ditt exempel är att du varje varv sätter ett värde till i inuti loopen. Låt oss anta att element0 i din kod är 3 - i så fall kommer loopen aldrig sluta köra, eftersom varje gång loopen körs så sätts i till 3, så när jämförelsen körs kommer i alltid vara 4. ,,r element0 däremot 11 kommer loopen bara att köras första gången, eftersom i andra gången jämförelsen körs kommer att vara större än 10.

(det är svart att vara tydlig när man inte kan peka - skrik om mina meningar är otydliga)

-------------------------
Ljusblå



DatorHacker 20:47 - 6:e Maj 2008 | Post #8
Medlem
Inlägg: 20


Skicka PM
Japp, tack för den lilla finfina guiden, jag måste hålla på lite mer med arrayer, men jag har lärt mig mer idag iallafall. Fortsätter imorgon med det, övning ger färdighet.




Sidor: 1

Forum huvudsida -> Programmering -> Behöver lite mer förklaring på C++ Guiden Del10
Atom feed

Du får inte posta i den här tråden | Till toppen