|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Help per un programma in C++
Ciao raga, avrei bisogno dell'urgente aiuto da parte vostra (mi serve per domani).
In pratica il testo dice: Dato un numero minore di 4 mila, convertirlo in cifre romane. E poi c'è la tabella: 1000 - M 200 - CM 500 - D 400 - CD 100 - C 90 - XC 50 - L 40 - XL 10 - X 9 - IX 5 - V 4 - IV 1 - I Qualcuno di voi sa darmi una mano? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma lo vuoi fare in C++ per bene ? Con le classi e tutto il resto ? E con la STL ?
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Io vorrei un programma in C++ funzionante, nel senso che se lo copio in Visual Studio e compilo, mi gira.
Cmq mi accontento anche del corpo del programma, però almeno quello mi serve. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ma santa pazienza:
se digiti su www.google.it la seguente chiave di ricerca "c++ number roman converter" ne trovi quanti ne vuoi di sorgenti |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Quote:
Mi hai salvato la pelle, sono in debito con te. Grazie mille. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nooo...caspita... L'avevo fatto
Codice:
#include <string>
#include <iostream>
using namespace std;
string inRomani(int num)
{
if(num <= 0 && num >= 4000)
return "";
string ret = "";
while(num > 0)
{
if(num >= 1000)
{
ret += "M";
num -= 1000;
}
else if(num >= 900)
{
ret += "CM";
num -= 900;
}
else if(num >= 500)
{
ret += "D";
num -= 500;
}
else if(num >= 400)
{
ret += "CD";
num -= 400;
}
else if(num >= 100)
{
ret += "C";
num -= 100;
}
else if(num >= 90)
{
ret += "XC";
num -= 90;
}
else if(num >= 50)
{
ret += "L";
num -= 50;
}
else if(num >= 40)
{
ret += "XL";
num -= 40;
}
else if(num >= 10)
{
ret += "X";
num -= 10;
}
else if(num >= 9)
{
ret += "IX";
num -= 9;
}
else if(num >= 5)
{
ret += "V";
num -= 5;
}
else if(num >= 4)
{
ret += "IV";
num -= 4;
}
else if(num >= 1)
{
ret += "I";
num -= 1;
}
}
return ret;
}
void main()
{
int i;
cin >> i;
cout << inRomani(i);
}
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Non ti preoccupare, prendo il tuo.
Quelli che ho trovato con Google erano troppo lunghi e complessi, professore sospetterà di certo. In ogni caso grazie a tutti i due, soprattutto per la disponibilità. |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Ultima cosa, il comando "ret" a cosa serve? Non l'abbiamo fatto, come del resto non so il significato di "using namespace std" (quel using)?
E' che non vorrei fare una figuraccia... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' per quello che ti chiedevo come lo volevi fatto...
Fanno parte di una definizione successiva dello standard del C++... ret non è un comando... E' l'istanza di una classe string (della Standard Template Library)... Codice:
#include <iostream.h>
#include <string.h>
int inRomani(int num)
{
if(num <= 0 && num >= 4000)
return -1;
char ret[] = "";
while(num > 0)
{
if(num >= 1000)
{
strcat(ret, "M");
num -= 1000;
}
else if(num >= 900)
{
strcat(ret, "CM");
num -= 900;
}
else if(num >= 500)
{
strcat(ret, "D");
num -= 500;
}
else if(num >= 400)
{
strcat(ret, "CD");
num -= 400;
}
else if(num >= 100)
{
strcat(ret, "C");
num -= 100;
}
else if(num >= 90)
{
strcat(ret, "XC");
num -= 90;
}
else if(num >= 50)
{
strcat(ret, "L");
num -= 50;
}
else if(num >= 40)
{
strcat(ret, "XL");
num -= 40;
}
else if(num >= 10)
{
strcat(ret, "X");
num -= 10;
}
else if(num >= 9)
{
strcat(ret, "IX");
num -= 9;
}
else if(num >= 5)
{
strcat(ret, "V");
num -= 5;
}
else if(num >= 4)
{
strcat(ret, "IV");
num -= 4;
}
else if(num >= 1)
{
strcat(ret, "I");
num -= 1;
}
}
return 0;
}
void main()
{
int i;
char str[100];
cin >> i;
inRomani(i, str);
cout << str;
}
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Cosi mi è un po' più chiaro, grazie mille.
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 1999
Città: Pescia (PT)
Messaggi: 1391
|
azzio era facile
SCIAO |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho fatto un paio di errori... L'ho modificato al volo a partire da quello iniziale
Codice:
#include <iostream.h>
#include <string.h>
int inRomani(int num, char *ret)
{
if(num <= 0 && num >= 4000)
return -1;
ret[0] = '\0';
while(num > 0)
{
if(num >= 1000)
{
strcat(ret, "M");
num -= 1000;
}
else if(num >= 900)
{
strcat(ret, "CM");
num -= 900;
}
else if(num >= 500)
{
strcat(ret, "D");
num -= 500;
}
else if(num >= 400)
{
strcat(ret, "CD");
num -= 400;
}
else if(num >= 100)
{
strcat(ret, "C");
num -= 100;
}
else if(num >= 90)
{
strcat(ret, "XC");
num -= 90;
}
else if(num >= 50)
{
strcat(ret, "L");
num -= 50;
}
else if(num >= 40)
{
strcat(ret, "XL");
num -= 40;
}
else if(num >= 10)
{
strcat(ret, "X");
num -= 10;
}
else if(num >= 9)
{
strcat(ret, "IX");
num -= 9;
}
else if(num >= 5)
{
strcat(ret, "V");
num -= 5;
}
else if(num >= 4)
{
strcat(ret, "IV");
num -= 4;
}
else if(num >= 1)
{
strcat(ret, "I");
num -= 1;
}
}
return 0;
}
void main()
{
int i;
char str[100];
cin >> i;
inRomani(i, str);
cout << str;
}
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
E che vi devo dire, grazie ancora.
Qualcuno di voi usa .NET? Come si fa a scrivere un programma in C++, compilarlo e eseguirlo (soprattutto quest'ultima)? |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se non usi finestre o comunque qualche funzione della piattaforma .Net...Visual C++ .NET è un compilatore per console come la versione 6...
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Cioè?
Faccio New-->File-->C++File, scrivo il codice, e poi? |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
New -> Project -> Console project
Oppure anche New -> File -> C++ file... Poi al momento della cmpilazione dovrai creare il progetto... |
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Oct 2002
Messaggi: 81
|
Ma si chiama proprio Console Project?
Non lo trovo... |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Dec 1999
Città: Pescia (PT)
Messaggi: 1391
|
io uso il Dev c++ versione 4, quello che abbiamo in facoltà, e nn mi ci trovo male, a parte una volta che mi sono setnito un deficiente, dovevo inizializzare una lista......nulla, faccio il menù e poi nn va...azz tutti scrivevano e a me dava 12 errori...panico...poi ho fatto copia e ho incollato in un nuovo progetto, allora mi dava 31 errori, lì mi sono perso del tutto, poi ho visto che si era sputtanata la iostream.h!!!
Ma mi chiedo io....ma chi ci va a smanettare nelle librerie?!?!?! sciao ciao |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Ci deve essere scritto Console... |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:15.



















