Java débutant appel de fonctions
Fermé
Senkei
-
7 oct. 2011 à 21:19
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 oct. 2011 à 14:45
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 oct. 2011 à 14:45
A voir également:
- Java débutant appel de fonctions
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Appel inconnu - Guide
- Java apk - Télécharger - Langages
- Nommez une application d'appel vidéo ou de visioconférence - Guide
3 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
7 oct. 2011 à 22:01
7 oct. 2011 à 22:01
Les fonctions doivent faire un travail, là tu mélanges plein de choses...
Ce que je veux dire, c'est que tes fonctions de conversion doivent... convertir !
Toi tes fonctions elles te posent des questions, tu lui réponds, tout ça c'est dans des méthodes de tests à part qu'il faut le mettre (le main par exemple).
Je ne corrige pas ton code, je ne fais que déplacer tes lignes au bon endroit, mais du coup il va t'en manquer, à toi de voir ce qu'il faut rajouter/modifier...
Ce que je veux dire, c'est que tes fonctions de conversion doivent... convertir !
Toi tes fonctions elles te posent des questions, tu lui réponds, tout ça c'est dans des méthodes de tests à part qu'il faut le mettre (le main par exemple).
Je ne corrige pas ton code, je ne fais que déplacer tes lignes au bon endroit, mais du coup il va t'en manquer, à toi de voir ce qu'il faut rajouter/modifier...
import java.util.Scanner; public class Conversion { public static double celsius2Farenheit(double c) { double f; f = (9 * c) / 5 + 32; return f; } public static double ht2Ttc(double p, double t) { double r; r = p + (p * t) / 100; return r; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Température en °C"); c = sc.nextDouble(); System.out.println("Température en °F"); System.out.println("Prix hors taxe"); p = sc.nextDouble(); System.out.println("Taux de TVA"); t = sc.nextDouble(); System.out.println("Prix toutes taxes comprises:"); } }
Merci pour ta réponse, j'ai modifié un peu et ça donne ça
import java.util.Scanner;
public class Conversion{
public static double celsius2Farenheit(double c){
double f;
f = (9 * c) / 5 + 32;
return f;
}
public static double ht2Ttc(double p, double t){
double r;
r = p + (p * t) / 100;
return r;
}
public static void main(String[] args){
double c, p, t;
Scanner sc = new Scanner(System.in);
System.out.println("Température en °C");
c = sc.nextDouble();
System.out.println("Température en °F" + celsius2Farenheit(f));
System.out.println("Prix hors taxe");
p = sc.nextDouble();
System.out.println("Taux de TVA");
t = sc.nextDouble();
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(r));
}
}
Mais a la compilation, il m'indique ça
Conversion.java:24: error: f cannot be resolved
System.out.println("Temprature en F" + celsius2Farenheit(f));
^
Conversion.java:29: error: r cannot be resolved
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(r));
Qu'est que cela signifie?
import java.util.Scanner;
public class Conversion{
public static double celsius2Farenheit(double c){
double f;
f = (9 * c) / 5 + 32;
return f;
}
public static double ht2Ttc(double p, double t){
double r;
r = p + (p * t) / 100;
return r;
}
public static void main(String[] args){
double c, p, t;
Scanner sc = new Scanner(System.in);
System.out.println("Température en °C");
c = sc.nextDouble();
System.out.println("Température en °F" + celsius2Farenheit(f));
System.out.println("Prix hors taxe");
p = sc.nextDouble();
System.out.println("Taux de TVA");
t = sc.nextDouble();
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(r));
}
}
Mais a la compilation, il m'indique ça
Conversion.java:24: error: f cannot be resolved
System.out.println("Temprature en F" + celsius2Farenheit(f));
^
Conversion.java:29: error: r cannot be resolved
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(r));
Qu'est que cela signifie?
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
7 oct. 2011 à 23:40
7 oct. 2011 à 23:40
Tu affiches celsius2Farenheit(f) or f n'existe pas (f cannot be resolved).
Idem pour ht2Ttc(r) sauf qu'en plus elle attends deux paramètres et tu lui en donnes qu'un
Idem pour ht2Ttc(r) sauf qu'en plus elle attends deux paramètres et tu lui en donnes qu'un
Bon je pense avoir plus ou moins reussi:
import java.util.Scanner;
class Conversion{
public static double celsius2Fahrenheit(double c){
return 9 * c / 5 + 32;
}
public static double ht2Ttc(double p, double t){
return p + (p * t) / 100;
}
public static void main(String[] args){
double c;
Scanner sc = new Scanner(System.in);
System.out.println("Température en °C");
c = sc.nextDouble();
System.out.println("Température en F: " + celsius2Fahrenheit(c));
double p, t;
System.out.println("Prix hors taxe");
p = sc.nextDouble();
System.out.println("Taux de TVA");
t = sc.nextDouble();
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(p, t));
}
}
Mais il reste encore quelques problèmes:
- Quand je lance le programme et que j'indique une valeur décimale dans c, p, ou t il me met ça:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:857)
at java.util.Scanner.next(Scanner.java:1478)
at java.util.Scanner.nextDouble(Scanner.java:2404)
at Conversion.main(Conversion.java:20)
Par contre ça fonctione pour les valeurs entières et les resultats sont bien en décimaux.
J'aimerai également savoir comment faire pour choisir la fonction a effectuer.
Merci
import java.util.Scanner;
class Conversion{
public static double celsius2Fahrenheit(double c){
return 9 * c / 5 + 32;
}
public static double ht2Ttc(double p, double t){
return p + (p * t) / 100;
}
public static void main(String[] args){
double c;
Scanner sc = new Scanner(System.in);
System.out.println("Température en °C");
c = sc.nextDouble();
System.out.println("Température en F: " + celsius2Fahrenheit(c));
double p, t;
System.out.println("Prix hors taxe");
p = sc.nextDouble();
System.out.println("Taux de TVA");
t = sc.nextDouble();
System.out.println("Prix toutes taxes comprises:"+ ht2Ttc(p, t));
}
}
Mais il reste encore quelques problèmes:
- Quand je lance le programme et que j'indique une valeur décimale dans c, p, ou t il me met ça:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:857)
at java.util.Scanner.next(Scanner.java:1478)
at java.util.Scanner.nextDouble(Scanner.java:2404)
at Conversion.main(Conversion.java:20)
Par contre ça fonctione pour les valeurs entières et les resultats sont bien en décimaux.
J'aimerai également savoir comment faire pour choisir la fonction a effectuer.
Merci
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
8 oct. 2011 à 14:45
8 oct. 2011 à 14:45
Pour choisir l'une ou l'autre il faut faire un petit menu qui te demande si tu veux l'un ou l'autre (tu réponds en entrant un entier par exemple) et après tu fais un if sur cet entier pour savoir quoi faire
En ce qui concerne les nextDouble, par défaut System.in est configuré sur la syntaxe locale, or en France on utilise des virgules alors que j'imagines que tu as utilisé des points.
Donc soit tu utilises des virgules soit tu te la joues à l'américaine avec sc.useLocale(Locale.US);
En ce qui concerne les nextDouble, par défaut System.in est configuré sur la syntaxe locale, or en France on utilise des virgules alors que j'imagines que tu as utilisé des points.
Donc soit tu utilises des virgules soit tu te la joues à l'américaine avec sc.useLocale(Locale.US);