View Full Version : [C++] Primo progetto
Zagor HW
05-02-2005, 10:48
Ciao a tutti, ho preso nelle mani per la prima volta il c++, ho dato un occhiata ad una piccola guida, stavo guardando le variabili, quando ho visto un codice gia fatto e volevo provarlo, il codice è questo:
http://img223.exs.cx/img223/2882/test3id.jpg
Purtoppo però mi da quest'errore :
fatal error C1083: Impossibile aprire il file inclusione "iostream.h": No such file or directory
(Anche se ho installato tutti componenti del c++)
Che cosa può essere?
Grazie!
#include <iostream>
non
#include <iostream.h>
Visual c++ per il c++ non è che sia proprio una chicca cmq (e neanche per le winapi)
Zagor HW
05-02-2005, 11:10
Originariamente inviato da kk3z
#include <iostream>
non
#include <iostream.h>
Visual c++ per il c++ non è che sia proprio una chicca cmq (e neanche per le winapi)
Adesso mi da questi errori:
Foglio.cpp(12) : warning C4305: "inizializzazione": troncamento da "double" a "float"
Foglio.cpp(14) : error C2065: "cout": identificatore non dichiarato
Foglio.cpp(15) : error C2065: "cin": identificatore non dichiarato
Foglio.cpp(16) : error C2065: "endl": identificatore non dichiarato
Foglio.cpp(16) : error C3861: "cout": identificatore non trovato nemmeno con una ricerca dipendente dall'argomento
Foglio.cpp(18) : error C3861: "cout": identificatore non trovato nemmeno con una ricerca dipendente dall'argomento
Foglio.cpp(18) : error C3861: "endl": identificatore non trovato nemmeno con una ricerca dipendente dall'argomento
Cmq che programma mi consigli di ultizzare per il c++ allora?
Scusa, mi sono dimenticato di
using namespace std;
il primo è un warning, il programma ti compilerà cmq il programma. Il warning è dato dal fatto che stai inizializzando un float con due decimali, in quel caso dovresti usare un double (trasformando anche gli altri float in double). Se lo tieni così il compilatore troncherà l'ultimo decimale così che il float sia uguale a 3.1
Prima volevo dire, Visual c++ è più per fare programmi in windows (con le MFC), io mi trovo molto bene con Dev-cpp.
Zagor HW
05-02-2005, 11:39
Ok Grazie infinite!
Originariamente inviato da kk3z
Se lo tieni così il compilatore troncherà l'ultimo decimale così che il float sia uguale a 3.1
Un float a 32 bit può tenere ben oltre un decimale ;) Il problema è che per default un numero scritto con la virgola viene creato come double (64 bit)...e la conversione da double a float di conseguenza potrebbe comportare (ma anche no) un troncamento...
una domanda, se volessimo fare la radice quadrata di qualcosa quale libreria bisogna includere??? come bisogna dichiarare le variabili??
Originariamente inviato da kk3z
#include <iostream>
non
#include <iostream.h>
Visual c++ per il c++ non è che sia proprio una chicca cmq (e neanche per le winapi)
Scusa ma non sono affato d'accordo sull'ultima affermazione! Il Visual C++ 6.0 per l'uso delle API Win32 è assolutamente il massimo (e ci mancherebbe), e per il C++ in generale non sarà il meglio, ma è cmq abbastanza buono (secondo me). Viceversa, il Dev-C++ io come IDE lo odio, l'unica cosa buona che ha è il compilatore, però quest'ultima cosa è più che altro questione di gusti.
Originariamente inviato da Print
una domanda, se volessimo fare la radice quadrata di qualcosa quale libreria bisogna includere??? come bisogna dichiarare le variabili??
#include <cmath>
La funzione è sqrt ;)
Originariamente inviato da cionci
#include <cmath>
La funzione è sqrt ;)
le variabili come le devo dichiarare??? double, float, .... ????(se le dichiaro float mi esce questo warning "warning C4244: '=' : conversion from 'double' to 'float', possible loss of data") come faccio perchè questo non accada???
Non vedo perchè tu debba usare i float... Con le CPU odierne, tranne in casi particolari ti conviene usare sempre i double...
Ovviamente sqrt è double sqrt(double)
Usa una conversione esplicita se non vuoi avere i warning...
Originariamente inviato da cionci
Non vedo perchè tu debba usare i float... Con le CPU odierne, tranne in casi particolari ti conviene usare sempre i double...
Ovviamente sqrt è double sqrt(double)
Usa una conversione esplicita se non vuoi avere i warning...
non ho capito :D
puoi ripetere ?? :ave:
float a;
float b = 10;
a = (float)sqrt(b);
Scrivendo (float) converti il risultato di sqrt (che è un double) in un float...
se dichiari a come float che senso ha ridefinirlo come tale quando fai la radice quadrata?
il casting è "automatico"
sqrt restituiesce sempre double?
scusa la domanda ma non sapevo
Come dicevo sqrt è definita come:
double sqrt(double)
Si fa la conversione per evitare di avere quel warning riportato prima...
Originariamente inviato da cionci
Come dicevo sqrt è definita come:
double sqrt(double)
Si fa la conversione per evitare di avere quel warning riportato prima...
perfetto, un'altra domanda, se volessi che il risultato al posto di essere scritto in cifre 1,43453, lo volessi 2*sqrt(5), come devo fare???
grazie ancora :ave:
Non puoi ;)
Dovresti fare un programma che ti fa una cosa del genere...e, almeno per ora, non credo che sia alla tua portata...
Originariamente inviato da cionci
Non puoi ;)
Dovresti fare un programma che ti fa una cosa del genere...e, almeno per ora, non credo che sia alla tua portata...
+ o - dimmi in grandi linee come potrei fare
:ave:
Da codice non lo puoi fare...
Ad esempio:
a = sqrt(50) * 8 +15;
Non potrai mai stampare sqrt(50) * 8 + 15 a partire da a...
Ma se quello che vuoi fare è una specie di calcolatrice che lavora con i simboli devi salvarti la sequenza di operazioni che l'utente richiede...
In base a quella puoi ricostruire sia la stampa delle operazioni che il risultato numerico...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.