Aide java

Résolu/Fermé
tof5962 Messages postés 21 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 23 mars 2010 - 21 déc. 2007 à 09:42
mos6afa Messages postés 9 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 3 novembre 2008 - 22 févr. 2008 à 19:26
Bonjour,
j'ai trouvé un code source, j'ai rajouté mon main mais erreur de compilation et je ne trouve pas mon probleme. le but de ce prog est si par exemple je dis 78.45, il me renvoi "soixante dix-huits euros quarante cinq centimes"

je vous donne le code complet :

package packlire;

public class sommesenlettres {

	public static String ConvertIntToString(int intToString){
	   	
		int valeur = intToString;
	   	 String result = "";
	  
//Nous allons convertir les chiffres entre 1 000 000 et 999 999 999  
	   	 if(valeur > 1000000)	{
	   	 	int valeurMillion = (int)valeur / 1000000;
	   	 	result = result + " " + ConvertIntToString(valeurMillion) + " million";
	   	 	valeur = valeur - (valeurMillion * 1000000);
	   	 						}
	   	 
//Nous allons convertir les chiffres entre 1000 et 999 999
	   	 if(valeur > 1000){
	   	 	int valeurMille = (int)valeur / 1000;
	   	 	if(valeurMille > 1){
	   	 		result = result + " " + ConvertIntToString(valeurMille) + " mille";
	   	 	}
	   	 	else{
	   	 		result = result + " mille";
	   	 	}
	   	 	
	   	 	valeur = valeur - (valeurMille * 1000);
	   	 }
	   	
//Nous allons convertir les chiffres entre 100 et 999	
	   	 if(valeur > 100){
	   	 	int valeurCent = (int)valeur / 100;
	   	 	if(valeurCent > 1){
	   	 		result = result + " " + ConvertIntToString(valeurCent) + " cent";
	   	 	}
	   	 	else{
	   	 		result = result + " cent";
	   	 	}
	   	 	
	   	 	valeur = valeur - (valeurCent * 100);
	   	 }
	   	 
//Nous allons convertir les chiffres entre 0 et 99
	   	 switch(valeur){
	   	 	case 0 : 
	   	 		if(result == ""){result = "zéro";}
	   	 	break;
	   	 	
	   	 	case 1 : 
	   	 		result = result + " un";
	   	 		break;
	   	 	case 2 : 
	   	 		result = result + " deux";
	   	 		break;
	   	 	case 3 : 
	   	 		result = result + " trois";
	   	 		break;
	   	 	case 4 : 
	   	 		result = result + " quatre";
	   	 		break;
	   		case 5 : 
	   			result = result + " cinq";
	   			break;
	   		case 6 : 
	   			result = result + " six";
	   			break;
	   		case 7 : 
	   			result = result + " sept";
	   			break;
	   		case 8 : 
	   			result = result + " huit";
	   			break;
	   		case 9 : 
	   			result = result + " neuf";
	   			break;
	   		case 10 : 
	   			result = result + " dix";
	   			break;
	   		case 11 : 
	   			result = result + " onze";
	   			break;
	   		case 12 : 
	   			result = result + " douze";
	   			break;
	   		case 13 : 
	   			result = result + " treize";
	   			break;
	   		case 14 : 
	   			result = result + " quatorze";
	   			break;
	   		case 15 : 
	   			result = result + " quinze";
	   			break;
	   		case 16 : 
	   			result = result + " seize";
	   			break;   		
	   		case 20 : 
	   			result = result + " vingt";
	   			break;
	   		case 30 : 
	   			result = result + " trente";
	   			break;
	   		case 40 : 
	   			result = result + " quarante";
	   			break;
	   		case 50 : 
	   			result = result + " cinquante";
	   			break;
	   		case 60 : 
	   			result = result + " soixante";
	   			break;
	   		case 70 : 
	   			result = result + " soixante-dix";
	   			break;
	   		case 80 : 
	   			result = result + " quatre-vingts";
	   			break;
	   		case 81 : 
	   			result = result + " quatre-vingts un";
	   			break;
	   		case 90 : 
	   			result = result + " quatre-vingts-dix";
	   			break;
	   		case 91 : 
	   			result = result + " quatre-vingts onze";
	   			break;
	   		default :
	   			int valeurDizaine = (valeur / 10) * 10;
	   			int valeurUnite = valeur % 10;
	   			
	   			//Les valeurs entre 16 et 20, 70 et 80, et entre 90 et 100 sont des cas
	   			//particuliers, nous devons faire un traitement particulier
	   			if((valeur > 16 && valeur < 20) || (valeur > 70 && valeur < 80) || (valeur > 90 && valeur < 100)){
	   				valeurDizaine -= 10;  			
	   				valeurUnite +=  10;
	   			}
	   			
	   			if(valeurDizaine == 0){
					result = result + " " + ConvertIntToString(valeurUnite);
				}
				else if(valeurUnite == 0){
					result = result + " " + ConvertIntToString(valeurDizaine);
				}
				else if(valeurUnite == 1){
					result = result + " " + ConvertIntToString(valeurDizaine)
					+ " et " + ConvertIntToString(valeurUnite);
				}
				else{
					result = result + " " + ConvertIntToString(valeurDizaine)
					+ "-" + ConvertIntToString(valeurUnite);
				}
	   	 }
	   }
	   //Méthode permettant de convertir le réel sous forme de lettre
	   public static String convertRealToString(double intToString){
		 String euros = "euros";  
		 String centimes="centimes";
	   	 int valeurApresVirgule = (int)(intToString - (int)intToString);
	   	 int valeurAvantVirgule = (int)(intToString - valeurApresVirgule);
	   	 String result = "";
	   	 
	   	if (intToString<=1) euros="euro";
		if (valeurApresVirgule==1) centimes="centime";
	   	 
	   	 if(valeurApresVirgule == 0){
	   	 	result = ConvertIntToString(valeurAvantVirgule)+ euros;
	   	 }
	   	 else{
	   	 	result = ConvertIntToString(valeurAvantVirgule) + euros
				+ ConvertIntToString(valeurApresVirgule)+ centimes;
	   	 }
	   	 
	   	 return result ;
	   }

public static void main(String[] args){ 
	double N;
	System.out.println("donne la somme a traduire : ");
	N = Lire.i();
	convertRealToString(N);				}}
A voir également:

8 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 déc. 2007 à 13:18
Bonjour,

Je n'ai pas jeté de coup d'oeil au code, mais deux remarques :
- Les noms de classe prennent toujours une majuscule ne première lettre
- Une méthode statique s'invoque avec le nom de la classe devant :
  Sommesenlettres.convertRealToString(N);


Dans le code ci-dessus j'ai mis une majuscule comme ca devrait l'être de part les standards java, donc si tu veux copier / coller directement sans chercher à comprendre, n'oubli de pas de rectifier en minuscule.
0
Recopier sans comprendre n'est pas mon but. je vais essayer de faire attention a la syntaxe, en tout les cas, merci de t'etre interréssé
0
bdm_mix Messages postés 1 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 10 janvier 2008
10 janv. 2008 à 14:19
Salut,

Il manque un return result à ta méthode convertIntToString();

++
0
tof5962 Messages postés 21 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 23 mars 2010
31 janv. 2008 à 14:20
a oublié, le programme a été refais avec un code diferrent. autorisation de mettre ce post poubelle car inutile, il ne peu rendre service
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mos6afa Messages postés 9 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 3 novembre 2008
20 févr. 2008 à 18:39
bonjour mes profs,
tout d'abord je suis un très débuttant en programmation java, et je besoin de votre aide, déja de manipule l'algorithme et la programmation pascal, ma question est: est ce que je peut prgrammer en java sans avoir connaitre le C ou C++
Meci d'avant
0
tof5962 Messages postés 21 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 23 mars 2010
20 févr. 2008 à 20:19
ba oui mos6afa, pas de raison. moi qui est en formation professionnel, j'ai meme debuter sur java. je ne connaissais rien a la programmation auparavant. ya un debut a tout. mais faut s'acrocher parfois
0
mos6afa Messages postés 9 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 3 novembre 2008
21 févr. 2008 à 12:00
merci bien mon prof
je souhaite bien ton suivi et merci+
0
mos6afa Messages postés 9 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 3 novembre 2008
21 févr. 2008 à 12:11
je veut un cours très détaillé de java application et applet
et merci mes profs d'avance
0
tof5962 Messages postés 21 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 23 mars 2010
21 févr. 2008 à 13:19
ba ecoute je ne veux pas etre mechant, mais je n'ai reellement pas le temps. je suis en formation du developpeur informatique, j'ai plein de choses a voir encore tellement le monde est immense, je suis en plein cours de sql, et je n'ai pas le temps libre pour montrer mes connaissances. peu etre par la suite mais dans l'immediat je ne peux pas. je te conseil de faire des tutaux et un bon site : www.siteduzero.com
0
mos6afa Messages postés 9 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 3 novembre 2008
22 févr. 2008 à 19:26
Merci mon Prof
Et a la prochaine
0