Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: AnttiLehtinen - 05.05.07 - klo:20.18

Otsikko: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
Kirjoitti: AnttiLehtinen - 05.05.07 - klo:20.18
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 :)
Otsikko: Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
Kirjoitti: Heikki Mäntysaari - 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
Otsikko: Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
Kirjoitti: AnttiLehtinen - 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"
Otsikko: Vs: Math-kirjastoja ei ole? Miten sqrt() komento toimisi?
Kirjoitti: Heikki Mäntysaari - 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.