Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Apua alkeissa

Dareon [04.10.2006 12:29:11]

#

#include <iostream.h>

long asd = 0;
long nelio = 0;
long kuutio = 0;

long nelio_ali(long asd)
	{
	nelio = asd^2;
return nelio;
	}

long kuutio_ali(long asd)
	{
	kuutio = asd^3;
return kuutio;
	}

void main()
	{
  cout << "Anna kokonaisluku.\n";
  cin >> asd;
  nelio = nelio_ali(asd);
  kuutio = kuutio_ali(asd);
  cout << "Lukusi nelio on " << nelio << " ja kuutio on " << kuutio;
	}

Voisiko joku hieman avustaa yllä olevan koodin kanssa? Mitä varten pääohjelman kutsumat ja tulostamat luvut tulostuvat väärin?

Kiitos jo etukäteen.

Hara Kiri [04.10.2006 12:50:39]

#

Dareon kirjoitti:

nelio = asd^2;

C++:ssa ^ -merkki on bittioperaattori. Jonkin luvun korottaminen potenssiin pitää tehdä kertolaskulla. Esimerkiksi:

nelio = asd*asd;

.

Metabolix [04.10.2006 13:01:26]

#

Kokonaislukujen potenssilaskuille voit vaikkapa tehdä oman ihan yleisen funktion (kahdella parametrilla), se ei ole kovin vaikeaa. Liukuluvuille taas on hyvä käyttää matematiikkakirjaston pow-funktiota.

Pseudokoodina yksinkertainen potenssiinkorotusfunktio toimisi vaikkapa näin:

funktio potenssi(luku, eksponentti):
    vastaus = 1
    suorita [eksponentti] kertaa:
        vastaus = vastaus * luku
    palauta vastaus

Vastaus

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

Tietoa sivustosta