Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Summan tulostus ei näy oikein

Atomic [11.08.2017 11:31:50]

#

Voisko joku vähän avittaa tuossa summan tulostuksessa...Saan nimittäin vastaukseksi 0?!

Tehtävässä on kirjoitettu valmiiksi pääohjelma, sekä luokka "Laskin". Sinun tehtäväsi on laatia luokka "Tulostaja", joka kysyy käyttäjältä kaksi kokonaislukua, kutsuu luokan "Laskin" metodia "Summa()" välittäen metodille syötteenä saadut kokonaisluvut. Metodi "Summa()" laskee lukujen summan ja palauttaa tuloksen. Lopuksi metodi "Tulosta()" tulostaa saadun summan näytölle.

#include
using namespace std;

class Laskin
{
public:

int Summa(int eka, int toka);
};

int Laskin::Summa(int eka, int toka)
{
int summa = eka toka;
return summa;
}
class Tulostaja

{

public:

void Tulosta();
int eka,toka,summa;

};

void Tulostaja::Tulosta()
{
cout << "Syötä ensimmäinen kokonaisluku:";
cin >> eka;
cout << "Syötä toinen kokonaisluku:";
cin >> toka;
cout << "Lukujen summa:" << summa << endl;
}
int main()
{
Tulostaja olio;
olio.Tulosta();
}

Esimerkkitulostus

Syötä ensimmäinen kokonaisluku:23
Syötä toinen kokonaisluku:43
Lukujen summa: 66 (Minun tulostukseni näyttää...Lukujen summa:0)!!!!

Grez [11.08.2017 11:38:19]

#

Tuosta puuttuu nopeasti katsoen plusmerkki eka toka välistä.

edit: Tosin ei se mulla edes käännyt ilman

test.cc: In member function int Laskin::Summa(int, int):
test.cc:13:17: error: expected , or ; before toka
 int summa = eka toka;

Ja sit toisekseen et kutsu missään välissä tuota Summa-funktiota. Kun tulostat summa -muuttujan, niin saat arvon, joka muuttujassa on ollut alusta alkaen. (Kääntäjästä ja ympäristöstä riippuen 0 tai jokin satunnainen arvo muistista)

Atomic [11.08.2017 11:54:14]

#

En tiedä minkä takia tuossa koodissa ei näy + merkkiä, mulla nimittäin näkyy.
Mut siis eikse riitä että kutsun sen tuossa vaiheessa (näin olen ymmärtänyt);
cout << "Lukujen summa:" << summa << endl;

Grez [11.08.2017 12:57:57]

#

Tuossa kohdassa et kutsu Laskin -luokan Summa -funktiota, vaan käytät Tulostaja -luokassa määriteltyä summa -muuttujaa.

Ehdotan että poistat kokonaan riviltä 23 muuttujan summa määrittelyn niin se ei turhaan hämää.. Eli siis

--- int eka,toka,summa;
+++ int eka,toka;

(Toinen koodia kopioidessasi tapahtunut virhe (sen plussan puuttumisen lisäksi) lienee <iostream> puuttuminen #include jälkeen.)

Atomic [11.08.2017 15:09:52]

#

Kiitos avusta sain ongelman korjattua!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta