Gå til innhold

Et lite spørsmål om funksjoner innen c++


Anbefalte innlegg

Skrevet

Jeg har et lite spørsmål om funksjoner innen c++.

Jeg begynte så smått og lære om hvordan man kunne dele inn et c++ program i mindre deler.

Men problemet mitt, er at "main" kjører alltid som den første funksjonen.

Jeg tenkte nemlig jeg skulle prøve meg litt fram, med å lage et program som brukte 3 funksjoner, se på følgene program kode:

 

 

 

#include <stdio.h>

#include <iostream.h>

 

int Funksjon(void)

 

{

 

 

int hehe;

cout << "skriv inn det foerste tallet: ";

cin >> hehe;

 

return 0;

}

 

int Funksjon2(void)

 

{

int hehe2;

cout << "skriv inn det tallet du vil addere til det foerste: ";

cin >> hehe2;

 

return hehe2;

}

 

 

 

int main(int argc, char* argv[])

{

int haha, haha1, haha2, haha3;

cout << "skriv inn det tallet du vil subtrahere fra de to andre verdiene: ";

cin >> haha;

 

haha1 = Funksjon();

haha2 = Funksjon2();

haha3 = haha + haha1 - haha2;

 

cout << "svaret er: " << haha3;

return 0;

 

}

 

 

Et ganske simpelt program, men.

Poenget er, at Main funksjonen vil starte først, dette gir meg litt problemer.

Hvordan kan jeg fikse dette programmet?

Jeg tenkte at jeg kanskje kunne flytte main til å faktisk være den første funksjonen av programmet, men hvordan lagrer jeg en variabel i Main?

 

Takker for all hjelp og respons.

Videoannonse
Annonse
Skrevet

Vel, da klarte jeg så og lagre en variabel i main.

Men et problem gjenstår, etter funksjonen main avslutter programmet, istedenfor å gå videre til den neste funksjonen, vent litt, programmet ser nå slik ut:

 

 

 

#include <stdio.h>

#include <iostream.h>

 

int main(void)

 

{

 

 

int hehe;

cout << "skriv inn det foerste tallet: ";

cin >> hehe;

 

return hehe;

}

 

int Funksjon2(void)

 

{

int hehe2;

cout << "skriv inn det tallet du vil addere til det foerste: ";

cin >> hehe2;

 

return hehe2;

}

 

 

 

int Funksjon()

{

int haha, haha1, haha2, haha3;

cout << "skriv inn det tallet du vil subtrahere fra de to andre verdiene: ";

cin >> haha;

 

haha1 = main();

haha2 = Funksjon2();

haha3 = haha + haha1 - haha2;

 

cout << "svaret er: " << haha3;

return 0;

 

}

 

 

Hva er galt?

Klarer ikke helt forstå det.

Skrevet

Hadde egentlig ikke helt forstått hva du hadde ment, men jeg fikk hjelp av noen andre jeg møtte på.

Men direkte hvordan kaller man de opp fra main?

Jeg gjorde liksom slik:

Variabel = funksjon;

Det ble riktig da óg, men er det slik man som regel kaller opp en funksjon fra main?

Skrevet

Ja, du har ett "hovedprogram" som går i main. Ut fra dette kaller du funksjoner og ev. andre klasser ettersom applikasjonene du lager blir større og mer kompliserte.

 

Poenget med funksjoner er at du skal kunne kalle den programsnutten som ligger der flere ganger bare ved å kalle funksjonen, istedet for å liste opp samme programkoden to eller flere ganger. F.eks. i ditt tilfelle for å forenkle det, kunne du bare hatt en funksjon som du benyttet to ganger for å lese inn to tall. Sånn som koden din er nå, kunne du like godt hatt alt i main.

Skrevet

Joda, vet det, ville bare se om jeg hadde forstått det med Funksjoner, hadde det jo ikke helt klart men har det nå.

Igjen takker jeg for hjelpen. :)

  • 1 måned senere...
Skrevet

Iostream.h er foreldet i likhet med alle andre standard-headere som slutter med .h. Headere fra standard-biblioteket har ingen suffix.

  • 2 uker senere...
Skrevet

Helt riktig at de med .h suffix er foreldet. Du SKAL bruke de uten suffix!

 

I siste versjon av Visual C++ er faktisk de gamle headerne fjernet (i samsvar med warningen du fikk i v7.0, som advarte deg mot akkurat dette..)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...