PDA

View Full Version : [C++] Primo "Programma" Facilissimo


Loris14
03-11-2010, 09:59
Ciao a tutti,

Ieri a scuola (faccio 3à supeririore) ho iniziato la prima lezione di programmazione e il prof ci ha scritto alla lavagna questo codice, ma se vado a inserirlo su un compilatore (Dev-C++) e faccio il DEBUG mi dice "File non compilato", voi saprete disicuro dirmi il motivo :)

Ecco il codice:

#include <conio.h>
main ()
{
int NUM1,NUM2,SOM;
cin >> NUM1;
cin >> NUM2;
SOM = NUM1+NUM2;
cont << SOM;
}
Dove sbaglio? Io nel compilatore inserisco esattamente quello sopra...

tomminno
03-11-2010, 10:36
Prova così:

#include <iostream>

int main ()
{
int NUM1,NUM2,SOM;
cin >> NUM1;
cin >> NUM2;
SOM = NUM1+NUM2;
cout << SOM;
return 0;
}

Il return sul main è solo per aderenza agli standard non è obbligatorio, ma auspicabile.
Gli errori nel tuo codice erano l'include sbagliato e il cout scritto male.

Loris14
03-11-2010, 10:58
E come mai dopo che creo il file .exe

Scrivo un numero tipo 3, poi un altro tipo 2 e dopo mi appare per mezzo secondo il risultato 5 e si chiude subito la schermata nera (quella del programma)

Sbrocca88
03-11-2010, 11:19
prima di return0 scrivi
system("PAUSE");

Loris14
03-11-2010, 11:28
prima di return0 scrivi
system("PAUSE");

Grazie xD

Loris14
03-11-2010, 13:37
A cosa è dovuto se mi dice file non compilato con questo codice???

#include <iostream.h>

int main ()
{
int NUM1,NUM2,SOM;
cin >> NUM1;
cin >> NUM2;
SOM = NUM1+NUM2;
cout << SOM;
system("PAUSE");
return 0;
}

Supdario
03-11-2010, 14:05
A cosa è dovuto se mi dice file non compilato con questo codice???

#include <iostream.h>

int main ()
{
int NUM1,NUM2,SOM;
cin >> NUM1;
cin >> NUM2;
SOM = NUM1+NUM2;
cout << SOM;
system("PAUSE");
return 0;
}

La libreria è iostream, non iostream.h, quindi devi fare #include <iostream>
Inoltre devi anche usare il namespace std, quindi il codice diventa così:

#include <iostream>
using namespace std;

int main ()
{
int NUM1,NUM2,SOM;
cin >> NUM1;
cin >> NUM2;
SOM = NUM1+NUM2;
cout << SOM;
system("PAUSE");
return 0;
}

oppure

#include <iostream>

int main ()
{
int NUM1,NUM2,SOM;
std::cin >> NUM1;
std::cin >> NUM2;
SOM = NUM1+NUM2;
std::cout << SOM;
system("PAUSE");
return 0;
}

A te la scelta.

Loris14
03-11-2010, 14:20
Stessa cosa per entrambi i casi... Quando faccio il debug mi dice File non compilato...

Supdario
03-11-2010, 15:01
Ma scusa, non puoi vedere nel log di generazione qual è l'errore?

Loris14
03-11-2010, 15:03
Ma scusa, non puoi vedere nel log di generazione qual è l'errore?

Dov'è il log di generazione? Scusa ma non so proprio niente... Ho appena iniziato... Uso Dev-C++...

Loris14
03-11-2010, 15:08
Ecco l'errore preciso che mi dà:

http://img207.imageshack.us/img207/7929/i11111mmagine.png

-MiStO-
03-11-2010, 15:12
l'errore mi sembra abbastanza chiaro: ti dice che cin e cout non sono definite
questo perchè ti sei dimenticato un pezzo:
o scrivi dopo gli include using namespace std; che vuol dire sottindendi il namespace std

oppure scrivi invece di ogni cin e cout
std::cin e std::out

F1r3st0rm
03-11-2010, 15:15
i miei lontani trascorsi con il C++ mi ricordano iostream.h e non iostream ma è ormai tanto tempo che non programmo con il c++.
e in effetti mil log di compilazione sembra dar ragione visto che non riconosce la cout e la cin, poi non saprei mi pare gisuto per il resto.

Supdario
03-11-2010, 16:03
La libreria è iostream, non iostream.h. Se hai degli header che si chiamano "iostream.h", "cstdlib.h", "cstdio.h", ecc... non sono standard ISO C++.

@Loris14: sei veramente sicuro di aver seguito il mio procedimento? Lì non vedo nessun using namespace std o std::

Loris14
13-11-2010, 13:15
I vostri consigli mi sono serviti e così sono riuscito a fare questo:

#include <iostream>
using namespace std;

int main ()
{
int NUM1,NUM2,SOM;
cout << "SOMMA DI DUE NUMERI";
cout << "\n\n";
cout << "Inserisci Il Primo Numero: ";
cin >> NUM1;
cout << "\n";
cout << "Inserisci Il Secondo Numero: ";
cin >> NUM2;
cout << "\n";
SOM = NUM1+NUM2;
cout << NUM1 << " + " << NUM2 << " = " << SOM;
cout << "\n\n";
system("PAUSE");
return 0;
}

Però ora, sempre a scuola, ho cominciato a fare la funzione IF, e non so perchè ma da quello che ci ha detto il prof. questo codice mi da un errore... Mi dice expected `;' before '}' token
Sapete dirmi come mai?
Il codice è questo:

#include <iostream>
using namespace std;

int main ()
{
int NUM,NPOS;
cin >> NUM;
if (NUM>0)
{
NPOS=NUM;
}
else
{
NPOS=-NUM;
}
cout << NPOS
}

PS: Per ora l'ho fatto senza pause...

ndakota
13-11-2010, 13:48
Il ; dopo l'ultimo cout