Kirjoittaja Aihe: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?  (Luettu 3123 kertaa)

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Eli seuraava ongelma ilmeni anjuta ei löydä/tunnista math kirjastoa
Koodia: [Valitse]
#include <math>Tätä pitäisi käsittääkseni käyttää jotta saisin sqrt() komennon käyttöön.
Onko vinkkejä moisen korjaamiseksi?

Kiitos taas kerran avustanne :) Ilman sitä hommani ei etenisi lainkaan :)
Antti Lehtinen

Heikki Mäntysaari

  • Käyttäjä / tiedottaja
  • Viestejä: 377
    • Profiili
Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
« Vastaus #1 : 05.05.07 - klo:21.13 »
Kieli näyttäisi olevan C++. Nykyaikaisessa C++:ssa standardikirjastojen (ei .h-päätettä, esim. iostream ja math) tavarat on sijoitettu std-nimiavaruuteen. Neliöjuuren saa siten komennolla
Koodia: [Valitse]
std::sqrt(x);
Tai sitten voit ottaa käyttöön std-nimiavaruuden kokonaan tai std-avaruudesta sqrt-funktion (lähdekooditiedoston alussa):
Koodia: [Valitse]
using namespace std;   // Kaikkia std:n kamat
using std::sqrt;  // Pelkkä neliöjuurifunktio
Suomenkielinen Linux-wiki: Linux.fi - katso myös http://linux.fi/foorumi

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
« Vastaus #2 : 05.05.07 - klo:21.32 »
Käytössä on pelkkä
Koodia: [Valitse]
#include <math>
ja
using namespace std;
Mutta ei toimi, mikä avuksi?
Koodia: [Valitse]
std::sqrt();käyttäminen sanoo että
"sqrt" is not a member of "std"
Antti Lehtinen

Heikki Mäntysaari

  • Käyttäjä / tiedottaja
  • Viestejä: 377
    • Profiili
Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
« Vastaus #3 : 05.05.07 - klo:22.11 »
Äh, unohdin... eli C++:ssa on math-kirjasto sisällytettävä komennolla
Koodia: [Valitse]
#include <cmath>
Tämä siksi, että math.h on alunperin C:n kirjasto, joka on "muutettu" C++:lle asettamalla funktiot std-nimiavaruuteen. Samalla tiedostonimen eteen on lisätty c.
Suomenkielinen Linux-wiki: Linux.fi - katso myös http://linux.fi/foorumi