View Full Version : 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? :(
Ma lo vuoi fare in C++ per bene ? Con le classi e tutto il resto ? E con la STL ?
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. :(
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;)
Originariamente inviato da misterx
[B]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;)
Mi hai salvato la pelle, sono in debito con te. :cool:
Grazie mille. :)
Nooo...caspita... L'avevo fatto ;)
#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);
}
Non ti preoccupare, prendo il tuo. :)
Quelli che ho trovato con Google erano troppo lunghi e complessi, professore sospetterà di certo. :D
In ogni caso grazie a tutti i due, soprattutto per la disponibilità. :)
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...:cool:
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)...
#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;
}
Cosi mi è un po' più chiaro, grazie mille. :)
sandropallini
03-12-2002, 11:42
azzio era facile :D in effetti nn è fatto male, putroppo noi all'uni nn siamo stati abituati ad usare le funzioni di libreria quindi la cosa si fa + lunga, presumo che si facciano in fondamenti di informatica 2 ;), ma anche senza le funzioni di libreria era corto...e visto che sono coll'acqua alla gola d'ora in poi chiederò aiuto qui :D:D abituatevi alle mie domande apparentemente prive di senso che denotano una certa impreparazione di base :D:D
SCIAO
Ho fatto un paio di errori... L'ho modificato al volo a partire da quello iniziale ;)
#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;
}
E che vi devo dire, grazie ancora. :D
Qualcuno di voi usa .NET?
Come si fa a scrivere un programma in C++, compilarlo e eseguirlo (soprattutto quest'ultima)? :confused:
Se non usi finestre o comunque qualche funzione della piattaforma .Net...Visual C++ .NET è un compilatore per console come la versione 6...
Cioè? :confused:
Faccio New-->File-->C++File, scrivo il codice, e poi?
New -> Project -> Console project
Oppure anche New -> File -> C++ file... Poi al momento della cmpilazione dovrai creare il progetto...
Ma si chiama proprio Console Project? :confused:
Non lo trovo...
sandropallini
03-12-2002, 23:46
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!!! :eek:
Ma mi chiedo io....ma chi ci va a smanettare nelle librerie?!?!?! :D:D:D
sciao ciao
Originariamente inviato da Mitsuo
[B]Ma si chiama proprio Console Project? :confused:
Non lo trovo...
Win32 Console Application c'è ?
Ci deve essere scritto Console...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.