Permalänk

Hjälp med float-uppgift

Jag är nybörjare med programmering och allt vad det innebär. Hursomhelst så tilldelades vi följande uppgift:

Skriv ett program som gör samma beräkning som i uppgift2. Här skall dock en funktion användas för att ta emot de inmatade talen, beräkna medelvärde samt skicka tillbaka svaret till huvudprogrammet och skriva ut det där. Funktionen ser ut på följande sätt.

float medelv(float t1, float t2, float t3, float t4)

I och med att jag nyss börjat så har jag ingen aning om vad allt det där innebär (ungefär...) men har ändå lyckats få fram detta:

#include <iostream>
#include <iomanip>
float medelv(float t1, float t2, float t3, float t4);
using namespace std;
int main()
{
float tal1, tal2, tal3, tal4, resultat, resultat2;
cout << "Räkna ut medelvärdet av fyra decimaltal. \n \nSkriv in det första talet: ";
cin >> tal1;
cout << "Skriv in det andra talet: ";
cin >> tal2;
cout << "Skriv in det tredje talet: ";
cin >> tal3;
cout << "Skriv in det fjärde talet: ";
cin >> tal4;
resultat=tal1+tal2+tal3+tal4;
resultat2=resultat/4;
cout << endl << "RESULTAT" << endl << "=================== \n" << endl;
cout << fixed;
cout << "Medelvärdet är " << setprecision (1) << resultat2;
getchar();
cin.ignore();
return 0;
}

float medelv(float t1, float t2, float t3, float t4);
{
float resultat2;
reultat2=resultat/4;
return(resultat2);
}

Uppenbarligen är något fel, så nu sitter jag och förbereder mig inför sågning.

Kan tillägga att denna "uppgift2" är fljande:

Uppgift2)
Skriv ett program där du matar in fyra st. flyttal. Programmet skall sedan räkna ut ett medelvärde för talen och skriva ut svaret med en decimal.

Permalänk
Medlem

Re: Hjälp med float-uppgift

Citat:

Ursprungligen inskrivet av surhetsreglerad
Uppenbarligen är något fel, ...

Det är inte alls uppenbart.
Misstänker dock att du fullständigt missupfattat det här med funktioner och hur variabler finns tillgängliga i olika så kallade scopes. Läs på i din kurslitteratur om funktioner (och scopes), det är så grundläggande att det måste du nog lära dig snarast.

Permalänk

float medelv(float t1, float t2, float t3, float t4); { sum = t1 + t2 + t3 + t4; return(sum /4): }

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

float sum= ... kanske?

Permalänk

Oj, blandade lite olika språk:P

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Re: Re: Hjälp med float-uppgift

Citat:

Ursprungligen inskrivet av You
Det är inte alls uppenbart.
Misstänker dock att du fullständigt missupfattat det här med funktioner och hur variabler finns tillgängliga i olika så kallade scopes. Läs på i din kurslitteratur om funktioner (och scopes), det är så grundläggande att det måste du nog lära dig snarast.

Tänkte mer på att det stod error när jag skapade den. Tack för inlägget!

Permalänk
Citat:

Ursprungligen inskrivet av KurreKula
Oj, blandade lite olika språk:P

Så din kod är lite fel?

Permalänk

float medelv(float t1, float t2, float t3, float t4); { float sum = t1 + t2 + t3 + t4; return(sum /4): }

ska det va

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Permalänk

snyggare vore dock: (Kan ej c++ så skriver c#, nån kan säkert översätta)

float medelv(IList<int> _Values); { return (_Values.Sum() /_Values.Count): }

Anropas via

float medel = medelv(new List<int>(){5, 4,3, 7});

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
snyggare vore dock: (Kan ej c++ så skriver c#, nån kan säkert översätta)

float medelv(IList<int> _Values); { return (_Values.Sum() /_Values.Count): }

Anropas via

float medel = medelv(new List<int>(){5, 4,3, 7});

okey, men kanske om du deklarerar din lista med float ist för int då

Permalänk

Haha, är trött

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Lite finare C# syntax...

public static float Average(params float[] values) { float sum = 0.0f; foreach(float value in values) { sum += value; } return sum / values.Length; }

Sen kan man kalla på funktionen såhär:

float average = Average(1,2,3,4,5,6,7,8,9,10);

Googlade lite och hittade en vettig artikel...

http://weblogs.asp.net/whaggard/archive/2004/07/03/172616.asp...

Permalänk
Medlem

och så python!

def medelv(*tal): return sum(tal) / len(tal)

Visa signatur

Kom-pa-TI-bilitet