Débutant en Ruby - Besoin d'aide !
Mo0oN
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
Mo0oN Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
Mo0oN Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en Ruby, et j'essaie de "traduire" un programme Java en Ruby. Je tiens à signalier que je ne suis pas non plus une foudre de guerre en Java ...
Le programme crée un tableau de conversion entre Fahrenheit et Celsius (on sélectionne une température de début, une température de fin, un pas, et on obtient un tableau de conversion).
Bref, rien d'exceptionnel, mais je rencontre des problèmes tout simples ...
La seule aide que j'ai est des tutoriels sur le net. Et dans aucun, je n'ai pu trouver le moyen (sûrement tout bête) de mettre plusieurs expressions conditionnelles dans un if ... En d'autres termes, je ne sais pas comment faire le || du Java.
Tant qu'à faire, je vais vous donner tout le code Java (que j'ai trouvé dans un tutoriel) et tout mon code Ruby. Si vous pouviez m'indiquer mes erreurs, ce serait cool :) Merci d'avance !
PROGRAMME JAVA :
PROGRAMME RUBY :
Je précise que mes begin ... end while *** sont le seul moyen que j'ai trouvé pour faire des do ... while (et non pas des while ... do)
Je débute en Ruby, et j'essaie de "traduire" un programme Java en Ruby. Je tiens à signalier que je ne suis pas non plus une foudre de guerre en Java ...
Le programme crée un tableau de conversion entre Fahrenheit et Celsius (on sélectionne une température de début, une température de fin, un pas, et on obtient un tableau de conversion).
Bref, rien d'exceptionnel, mais je rencontre des problèmes tout simples ...
La seule aide que j'ai est des tutoriels sur le net. Et dans aucun, je n'ai pu trouver le moyen (sûrement tout bête) de mettre plusieurs expressions conditionnelles dans un if ... En d'autres termes, je ne sais pas comment faire le || du Java.
Tant qu'à faire, je vais vous donner tout le code Java (que j'ai trouvé dans un tutoriel) et tout mon code Ruby. Si vous pouviez m'indiquer mes erreurs, ce serait cool :) Merci d'avance !
PROGRAMME JAVA :
class Sdz1 { public static void main(String[] args) { //Notre objet Scanner Scanner sc = new Scanner(System.in); //initialisation des variables double c, f=0; int i,j=0; char reponse=' '; System.out.println(" ------------------------------------------------------------------------"); System.out.println("| CONVERSION DEGRES CELSIUS ET DEGRES FARENHEIT |"); System.out.println(" ------------------------------------------------------------------------"); do{//tant que reponse = O//boucle principale do{//tant que l'imprimante n'est pas prête//boucle de test pour savoir si l'utilisateur est prêt do {// tant que valeur impossible rentrée //saisie des valeurs System.out.println("A partir de :");//affichage des directives et récupération des données c = sc.nextDouble(); System.out.println("jusqu' à:"); i = sc.nextInt(); System.out.println("Par pas de :"); j = sc.nextInt(); if (c > i || j > i || j == 0) System.out.println("Traitement impossible"); }while(c > i || j > i || j == 0); do {//tant que la reponse n'est pas O ou N System.out.println("Assurez-vous que l'imprimante est prête"); System.out.println("Si vous êtes prêt, tapez O, sinon tapez N"); //sc.reset(); reponse = sc.next().charAt(0); }while (reponse != 'O' && reponse != 'N'); }while (reponse == 'N'); // Traitement des valeurs System.out.println("TABLE DE CONVERSION CELSIUS / FARENHEIT"); System.out.println("---------------------------------------------"); System.out.println(" Celsius | Farenheit "); System.out.println("---------------------------------------------"); do{//tant que l'affichage n'est pas fini, on boucle les données et les calculs f = ((9.0/5.0) * c) + 32.0; if (c < 10)//si le Celsius n'a qu'un chiffre, on affiche un certain nombre d'espaces System.out.println(" "+c+" | "+arrondi(f,1)); else { if(c < 100)//S'il y a un chiffre en plus, on enlève un espace blanc... System.out.println(" "+c+" | "+arrondi(f,1)); else System.out.println(" "+c+" | "+arrondi(f,1)); } c = c + j;//On incrémente le degré Celsius avec le pas }while (c <= i); do{ System.out.println("Souhaitez-vous éditer une autre table ?(O/N)"); reponse = sc.next().charAt(0); }while(reponse != 'O' && reponse != 'N'); }while(reponse == 'O'); System.out.println("Au revoir !"); //Fin de programme } public static double arrondi(double A, int B) { return (double) ( (int) (A * Math.pow(10, B) + .5)) / Math.pow(10, B); } }
PROGRAMME RUBY :
class Celfar conversion = Celfar.new puts "Tableau de conversion Fahrenheit - Celsius" begin begin begin puts "A partir de :" c = gets.chomp.to_i puts c puts "Jusqu'à :" i = gets.chomp.to_i puts i puts "Par pas de :" j = gets.chomp.to_i puts j if (c>i & j>i & j == 0) puts "Traitement impossible" end end while (c>i & j>i & j == 0) begin puts "Si vous êtes prêts, tapez O, sinon tapez N" reponse = gets.chomp.to_s end while (reponse != O & reponse != N) end while (reponse == N) puts "Tableau de conversion" puts "Celsius | Fahrenheit" begin f = ((9.0/5.0) * c) + 32.0 puts c + " | " + f c=c+j end while (c<=i) begin puts "Souhaitez-vous éditer une autre table ?" reponse = gets.chomp.to_s end while (reponse != O & reponse != N) end while (reponse == O) puts "Au revoir !" end
Je précise que mes begin ... end while *** sont le seul moyen que j'ai trouvé pour faire des do ... while (et non pas des while ... do)
A voir également:
- Débutant en Ruby - Besoin d'aide !
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions