2009-02-25, 11:33
  #1
Medlem
Hej
Varfr vgrar mitt program att anropa funktion den hoppar direkt till
cout<<"Ange bredd och sedan hjd"; och sedan avslutas.
Jag programmerar dev-c++ 4,9,8,0.

#include<iostream>
#include<iomanip>

using namespace std;

int b;
int h;
void funktion();
void funktion()
{
cout<<"-------------------";
cout<<"Rektangelinformation:";
cout<<"Bredd"<<setw(5)<<b;
cout<<"Hjd"<<setw(5)<<h;
cout<<"Area"<<setw(5)<<b*h;
cout<<"Omkrets"<<setw(5)<<b+b+h+h;
cout<<"-------------------";
return;
}

int main()
{
b=6.5;
h=4;
void funktion();
cout<<"Ange bredd och sedan hjd";
cin>>b>>h;
void funktion();
return 0;
}

Jag fattar inte vad som r fel och varfr fljande programmet funkar felfritt och inte det innan

#include<iostream>
using namespace std;

void minFunktion();
void minFunktion()
{
cout << "Nu r vi i funktionen minFunktion!\n";
return;
}
int main()
{
cout << "Nu startar vi!";
minFunktion();
cout << "Nu r vi tillbaka i main-funktionen igen!";
cin.get();
return 0;
}

Jag har programmerings prov idag och snabba svar skulle uppskatas
Citera
2009-02-25, 11:39
  #2
Medlem
kaks avatar
void function(); r inget sats utan en deklaration.
Du anropar functionen genom att skriva
function();

Dessutom br du vl skicka vrdena genom parametrar istllet fr via globala variabler.
Citera
2009-02-25, 11:42
  #3
Moderator
... och inte anvnda decimaltal p heltalsvariabler.
Kod:
int b;
[...]
b=6.5;
Citera
2009-02-25, 11:55
  #4
Medlem
micaeles avatar
[ CODE ] -taggar r inte helt fel heller.

Du behver inte deklarera funktionen nr du definierar den direkt eftert och innan innan main, som skall knna till den:
Kod:
void minFunktion(); // <- ondigt
void minFunktion()
{ ...
Citera
2009-02-25, 11:56
  #5
Medlem
Citat:
Ursprungligen postat av kak
void function(); r inget sats utan en deklaration.
Du anropar functionen genom att skriva
function();

Dessutom br du vl skicka vrdena genom parametrar istllet fr via globala variabler.

aha tack, det funkar nu
Citera
2009-02-25, 11:58
  #6
Medlem
Citat:
Ursprungligen postat av micaele
[ CODE ] -taggar r inte helt fel heller.

Du behver inte deklarera funktionen nr du definierar den direkt eftert och innan innan main, som skall knna till den:
Kod:
void minFunktion(); // <- ondigt
void minFunktion()
{ ...

men behvs man inte deklarera funktion om man ska kunna anropa nr och vart man vill?
Citera
2009-02-25, 11:59
  #7
Medlem
kaks avatar
Citat:
Ursprungligen postat av Prolof
men behvs man inte deklarera funktion om man ska kunna anropa nr och vart man vill?
Inte om anroparen redan sett definitionen. Dvs den str hgre upp i samma fil.
Citera
2009-02-25, 12:00
  #8
Medlem
micaeles avatar
Citat:
Ursprungligen postat av Prolof
men behvs man inte deklarera funktion om man ska kunna anropa nr och vart man vill?
En definition r en deklaration i sig. Det handlar om vart funktionen skall vara synlig. Om du hade lagt funktionen under main, dvs efter, hade du behvt deklarera den ovanfr fr att den skulle knnas till. Men eftersom den r definierad (och drmed deklarerad) innan du kallar p den i kod behvs det inte.
Detta med definition och deklaration r ngot som du kommer lra dig den dag du behver dela upp koden i flera filer. S lnge man jobbar i endast en fil kan man deklarera alla funktioner ovanfr main, och drmed gra dessa synliga fr just main.
Citera
2009-02-25, 22:40
  #9
Medlem
monoceress avatar
Citat:
Ursprungligen postat av micaele
En definition r en deklaration i sig. Det handlar om vart funktionen skall vara synlig. Om du hade lagt funktionen under main, dvs efter, hade du behvt deklarera den ovanfr fr att den skulle knnas till. Men eftersom den r definierad (och drmed deklarerad) innan du kallar p den i kod behvs det inte.
Detta med definition och deklaration r ngot som du kommer lra dig den dag du behver dela upp koden i flera filer. S lnge man jobbar i endast en fil kan man deklarera alla funktioner ovanfr main, och drmed gra dessa synliga fr just main.

En liten reservation hr fr att en prototyp kan behvas ven om sina funktioner r placerade ovanfr main, men anropar varandra.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in