Forum: Funktioner med variabler

Forum huvudsida -> Programmering -> Funktioner med variabler

Sidor: 1

Till botten

DatorHacker 10:36 - 10:e Maj 2008 | Post #1
Medlem
Inlägg: 20


Skicka PM
Godmorgon! ,,r redan igång med programmeringenSmiley

Jag håller på att försöka lära mig allt om Funktioner i Guide nummer 12 här på Blinkenlights.

Första har jag lärt mig nu, rätta mig om jag har fel:

  1. #
  2. #include<iostream>
  3. #
  4.  
  5. #
  6. using std::cout;
  7. #
  8.  
  9. #
  10. void minFunktion();
  11. #
  12.  
  13. #
  14. void minFunktion()
  15. #
  16. {
  17. #
  18. cout << "Nu är vi i funktionen minFunktion!\n";
  19. #
  20. return;
  21. #
  22. }
  23. #
  24.  
  25. #
  26. int main()
  27. #
  28. {
  29. #
  30. cout << "Nu startar vi!";
  31. #
  32. minFunktion();
  33. #
  34. cout << "Nu är vi tillbaka i main-funktionen igen!";
  35. #
  36.  
  37. #
  38. return 0;
  39. #
  40. }


På rad nummer 6 talar jag om för Kompilatorn att minFunktion ska kunna anropas VART SOM HELST i koden.

På rad nummer 8 skapar jag själva Funktionen(Det är här inne koden i min funktion körs.)

Sedan skapar jag int main och det är här koden startas.
Skriver ut ''Nu startar vi''.

Sedan anropar jag minFunktion och ber den köra sin kod.
Efter det är jag tillbaka i main igen och skriver ''Nu är vi tillbaka i main igen''.

Om jag fattat rätt är det såhär det funkar.

Nu till min fråga. Eller rättare sagt, mina frågor. En hel del jag har kvar att lära om funktioner. Bara så att ni vet, jag har försökt att lära mig och kodat så mycket som möjligt, så det är inte så att jag frågar här varje gång jag börjar på en ny del.

Iallafall.

Guide nr12. Kod nr2.

När man skapar en funktion av datatypen void, hur kan man då lägga in en heltalsvariabel(int) innanför (..) ?

Eftersom att det även står ''return;'' bara så är det ju datatypen void som gäller. Men jag förstår inte hur man kan skapa heltal i en funktion som är av datatypen void?

Notera att jag är i kod nummer 2 på guide nummer 12 nu annars kanske ni inte vet vad jag babblar om xD

Sedan skapar vi int main i koden. Här skulle jag behöva att någon talar om för mig vad det är som egentligen händer.

När vi skriver minFunktion(tal); hur fungerar det i samband med funktionen som vi skapade variablen int tal i?
Samma sak undrar jag när vi lägger in ett direkt värde i den sista raden.






tobbez 13:59 - 10:e Maj 2008 | Post #2
Medlem
Inlägg: 364


Skicka PM
Nu stämmer inte radnummren riktigt, men jag utgår från de rader jag gissar att du syftat på.

På rad nummer 6 talar jag om för Kompilatorn att minFunktion ska kunna anropas VART SOM HELST i koden.


Inte riktigt, men nästan. Du deklarerar funktionen, vilket innebär att all kod som kommer efter "vet" att det finns en funktion som heter minFunktion. I just det där kodexemplet gör den där raden ingen skillnad (hade definitionen av minFunktion legat under main hade den gjort skillnad).

På rad nummer 8 skapar jag själva Funktionen(Det är här inne koden i min funktion körs.)


Stämmer. I formella termer är det här funktionens definition.

Om jag fattat rätt är det såhär det funkar.


Ja Smiley

När man skapar en funktion av datatypen void, hur kan man då lägga in en heltalsvariabel(int) innanför (..) ?

Eftersom att det även står ''return;'' bara så är det ju datatypen void som gäller. Men jag förstår inte hur man kan skapa heltal i en funktion som är av datatypen void?


void är retur-typen för funktionen, och har ingenting att göra med det som står inom parenteser efter funktionsnamnet. Det som står inom parenteser efter funktionsnamnet är argument, data man kan "skicka in" i funktionen.

Sedan skapar vi int main i koden. Här skulle jag behöva att någon talar om för mig vad det är som egentligen händer.

När vi skriver minFunktion(tal); hur fungerar det i samband med funktionen som vi skapade variablen int tal i?
Samma sak undrar jag när vi lägger in ett direkt värde i den sista raden.


minFunktion(tal); är (i just det här fallet) likvärdigt med minFunktion(21);. När funktionen minFunktion anropas kan du för att förstå hur det fungerar substituera variabeln tal i funktionen med det värde som skickas in som argument (förutom i parameterlistan i funktionsdefinitionen).

I det första anropet skulle det här alltså innebära:

  1. minFunktion(tal);
  2.  
  3. // Kan tänkas som
  4. minFunktion(21);
  5.  
  6. // Vilket sedan i funktionen när den körs motsvarar:
  7. void minFunktion(int tal)
  8. {
  9. cout << "Nu är vi i funktionen!";
  10. cout << 21 << "\n";
  11. return;
  12. }


Hoppas det hjälper.


En liten förklaring av begreppen jag använde ovan:
  1. void minFunktion(int tal); // Det här är en funktions-deklaration
  2.  
  3. void minFunktion(int tal) // Det här är en funktions-definition
  4. {
  5. cout << tal << endl;
  6. }
  7.  
  8.  
  9. // Delarna i en definition:
  10. void minFunktion(int tal);
  11. // | | |
  12. // | | +- Parameterlista
  13. // | +- Funktionsnamn
  14. // +- Retur-typ





HärJ 14:19 - 10:e Maj 2008 | Post #3
Moderator
Inlägg: 1198


Skicka PM
gissar att du ska se över formateringen av din kodrutaSmiley
I övrigt, det tobbez sa.

-------------------------
Tänk om jag vore en skalärprodukt!



DatorHacker 18:04 - 10:e Maj 2008 | Post #4
Medlem
Inlägg: 20


Skicka PM
Riktigt bra förklarat, tack för hjälpen!




add 18:16 - 10:e Maj 2008 | Post #5
Medlem
Inlägg: 81


Skicka PM
Nästa gång kan du skriva det som kommentarer i ditt program.

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

Du misslyckas bara för att du ger upp, ge inte upp bara.
Som man brukar säga "Defeat is a state of mind" // NetNinja





Sidor: 1

Forum huvudsida -> Programmering -> Funktioner med variabler
Atom feed

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