Débutant en Ruby - Besoin d'aide !
Mo0oN
Messages postés
62
Statut
Membre
-
Mo0oN Messages postés 62 Statut Membre -
Mo0oN Messages postés 62 Statut Membre -
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 montage vidéo débutant - Guide
- Logiciel de programmation pour débutant - Guide
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions