traduction python vers java
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

traduction python vers java



  1. #1
    nicom974

    traduction python vers java


    ------

    Bonjour à tous,

    Alors voilà, j'avais un programme à faire en java, le programme demande à l'utilisateur d'entrer un nombre et en fonction du nombre que l'utilisateur à entré, celui ci dessine dans la console une chaine de caractères qui est sensé former une croix... Pour mieux comprendre je vous suggère de compiler et tester mon programme avec le code source ci-dessous.

    Cependant il y a plusieurs méthodes pour le faire. J'ai un ami en deuxième année d'inginerie logiciel qui l'a fait complètement différemment et qui arrive au résultat voulu. Mais le plus surprenant c'est que lui il l'écrit en quelques lignes uniquement et moi j'en ai un nombre monstrueux.

    Voici ma méthode:
    Code:
    import java.util.Scanner;
    public class Challenge2{
    	public static void main(String[] args){
    		Scanner input = new Scanner(System.in);
    		while(true){
    			System.out.print("Please enter a number: ");
    			int number = input.nextInt();
    			for(int i = 1; i<=number; i++){
    				for(int j = 1; j<=number; j++){
    					int ibis = i;
    					int jbis = j;
    					while(ibis > 4){
    						ibis = ibis - 4;
    					}
    					while(jbis > 4){
    						jbis = jbis - 4;
    					}
    					if(ibis == jbis) System.out.print("\\");
    					else if(ibis+jbis == 5) System.out.print("/");
    					else System.out.print(" ");
    				}
    				System.out.println("");
    			}
    		}
    	}
    }
    ET VOICI LA SIENNE:

    J'ai essayé de comprendre son code mais je n'y suis parvenu qu'à moitié. C'est du Python et moi je ne programme pas en Python. Je n'arrive pas à comprendre ce qu'est l'objet pattern dans son code... Est-ce un Array ou une liste? Je ne pense pas que ça soit un array car plus loin dans son code (pas trop loin, il n'y a pas bcp de lignes) il fait: pattern[i%4][j%4] alors que si c'était un tableau on ne pourrait vraisemblablement pas obtenir pattern[][] mais plutot pattern[] ... enfin bref... Il y aurait il quelqu'un pour me traduire son code en java svp?

    Merci pour votre aide...

    AH oui, j'ai failli oublié, difficile à comprendre et à traduire sans son code:
    (Le code ci-dessous n'est pas le mien, le pseudo de l'auteur est Spaxe, en Australie)
    Code:
    def diamond2(n):
        pattern = ['\\  /', ' \\/ ', ' /\\ ', '/  \\']
        output = ''
        for i in range(n):
            for j in range(n):
                output += pattern[i%4][j%4]
            output += '\n'
        print output
    
    for i in range(1, 15, 3):
        print '%d:' % i
        diamond2(i)
        print ''
    Merci pour votre aide

    -----
    Dernière modification par Jack ; 08/05/2010 à 09h15.
    On a tous en nous une part d'ingéniosité... Exploitons la...

  2. #2
    Jack
    Modérateur

    Re : traduction python vers java

    merci d'utiliser les balises "code" à l'avenir afin de faciliter la lecture des codes source

  3. #3
    nicom974

    Re : traduction python vers java

    desolé, à l'origine c'était bien indenté et je ne savais pas que les balises code existaient... merci pour le tuyaux... Voici les codes:
    Mon code:
    Code:
    import java.util.Scanner;
    public class Challenge2{
    	public static void main(String[] args){
    		Scanner input = new Scanner(System.in);
    		while(true){
    			System.out.print("Please enter a number: ");
    			int number = input.nextInt();
    			for(int i = 1; i<=number; i++){
    				for(int j = 1; j<=number; j++){
    					int ibis = i;
    					int jbis = j;
    					while(ibis > 4){
    						ibis = ibis - 4;
    					}
    					while(jbis > 4){
    						jbis = jbis - 4;
    					}
    					if(ibis == jbis) System.out.print("\\");
    					else if(ibis+jbis == 5) System.out.print("/");
    					else System.out.print(" ");
    				}
    				System.out.println("");
    			}
    		}
    	}
    }
    
    Le siens:
    
    Code:
    def diamond2(n):
        pattern = ['\\  /', ' \\/ ', ' /\\ ', '/  \\']
        output = ''
        for i in range(n):
            for j in range(n):
                output += pattern[i%4][j%4]
            output += '\n'
        print output
    
    
    for i in range(1, 15, 3):
        print '%d:' % i
        diamond2(i)
        print ''
    Merci
    On a tous en nous une part d'ingéniosité... Exploitons la...

  4. #4
    invite4f3ac7ae

    Re : traduction python vers java

    Hello, je ne sais pas si tu as besoin encore de cette traduction.

    Je ne me souviens plus assez de Java pour t'écrire directement la même chose en code Java, par contre voici une traduction en algorithme :

    Code:
    Soit la fonction diamond2 (qui prend n en argument)
        Soit pattern la liste contenant les éléments : '\\  /'    ' \\/ '     ' /\\ '    '/  \\'
        Soit output une chaîne vide.
    
        Pour i de 0 à n-1 :
            Pour j de 0 à n-1 :
                Ajouter à output l'élément pattern[i%4][j%4]   *
            Ajouter à output un retour chariot (nouvelle ligne)
        Afficher output
    
    Pour i de 1 à 15 (par saut de 3) :   **
        Affiche 'i:'    ***
        Exécute diamond2(i)
        Affiche ''
    Commentaires :
    * : % est ici un modulo (reste de i dans la division i÷4, pareil pour j). Cela permet de récupérer successivement les 4 chaînes de la liste pattern et à l'intérieur, les caractères. Par exemple pattern[12%4][19%4] est le même que pattern[0][3], c'est le 4e (3+1) caractère de la 1ère (0+1) chaîne de la liste.
    ** : i prendra successivement les valeurs 1, 4, 7, 10 et 13
    *** : affichera successivement '1:' puis '4:', '7:', '10:', '13:'. %d est un format d'affichage pour print (un peu comme printf en C).

    Voilà, bonne fin de soirée.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. traduction dans le sens 5' vers 3'???
    Par inviteebdbcb53 dans le forum Biologie
    Réponses: 13
    Dernier message: 31/12/2011, 12h45
  2. Traduction langage Basic vers flowcode
    Par inviteee484a5f dans le forum Électronique
    Réponses: 4
    Dernier message: 28/01/2010, 21h34
  3. Réponses: 3
    Dernier message: 05/08/2009, 09h04
  4. Python
    Par invite3e3c726d dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 13/03/2009, 11h55
  5. Java, java, java, where are you, there's a mission for you !
    Par invite1237a629 dans le forum Logiciel - Software - Open Source
    Réponses: 35
    Dernier message: 16/03/2008, 22h10