#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.
Dareon kirjoitti:
nelio = asd^2;
C++:ssa ^ -merkki on bittioperaattori. Jonkin luvun korottaminen potenssiin pitää tehdä kertolaskulla. Esimerkiksi:
nelio = asd*asd;
.
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 vastausAihe on jo aika vanha, joten et voi enää vastata siihen.