CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Convertir du code Java en Python ou autre langage

Rakers
Rakers
Niveau 1
03 février 2022 à 16:15:29

Bonjour j'ai un code
import java.util.*; import java.util.stream.IntStream; import java.io.*; public class projet{ public int valeur;//valeur de l'occurence public char nom;//lettre du noeud public projet pere;//noeud pere public projet fd;//noeud fils droit public projet fg;//noeud fils gauche public int binaire;//vlaur binaire //mon constructeur de noeud s'appelle 'projet' car le fichier s'appelle projet et je n'ai donc pas pu l'appeler noeud public projet(int valeur, char nom, projet pere, projet fd, projet fg, int binaire){ this.valeur = valeur; this.nom = nom; this.pere = pere; this.fd = fd; this.fg = fg; this.binaire = binaire; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("Tapez une phrase : "); String mot = sc.nextLine(); int arbre; int car = mot.length();//taille du mot int petit;//valeur de la plus grande occurence int tri;//position du caractere avec la plus grande occurence int n1 = 0;//valeur pour differencier 2 caracteres avec la meme occurence int n2 = 0;//valeur pour differencier 2 caracteres avec la meme occurence ArrayList<Character> alpha = new ArrayList(List.of('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9',' ','!','?','.',',',';','(',')')); ArrayList<Character> chaine = new ArrayList();//contient chaque caracteres de la chaine de caracteres passée en entrée ArrayList<Character> lettres = new ArrayList();//contient les differentes lettres de la chaine de caracteres passée en entrée ArrayList<Integer> nombres = new ArrayList();//contient le nombre de fois ou chaque caracteres apparait ArrayList<Integer> nbtri = new ArrayList(); ArrayList<Character> lttri = new ArrayList(); ArrayList<Integer> NB_arbre = new ArrayList(); ArrayList<Character> LT_arbre= new ArrayList(); ArrayList<projet> noeuds = new ArrayList();//contient les noeuds de l'arbre ArrayList<ArrayList> code = new ArrayList();//contient les codes binaires de chaque lettres du mot for(int i = 0;i < car; i++){ chaine.add(mot.charAt(i)); } //regarde les différentes lettres présentes dans le mot ainsi que leur occurence System.out.println("\nVotre phrase est :\n"+mot); for(int i = 0; i < alpha.size();i++){ int occurence = 0; for(int j = 0; j < chaine.size();j++){ if(alpha.get(i) == chaine.get(j)){ occurence++; } } if(occurence > 0){ lettres.add(alpha.get(i)); nombres.add(occurence); } } //trie les lettres par occurence et ordre alphabetique while(nombres.size() != 0){ petit = 100; tri = 0; for(int l = 0; l < nombres.size();l++){ if(nombres.get(l) < petit){//on regarde si l'occurence de la lettre est plus petite que la variable 'petit' petit = nombres.get(l);//'petit' prend la valeur de l'occurence a la position 'l' tri = l;//la variable 'tri' prend la valeur 'l' } else if(nombres.get(l) == petit){//si l'occurence est égale a 'petit' for(int n = 0;n < alpha.size();n++){//on regarde dans l'alphabet if(alpha.get(n) == lettres.get(l)){ n1 = n; } if(alpha.get(n) == lettres.get(tri)){ n2 = n; } } if(n1 < n2){//on compare les lettres aux positions 'l' et 'tri' tri = l; } } } nbtri.add(nombres.get(tri)); lttri.add(lettres.get(tri)); nombres.remove(tri); lettres.remove(tri); //la ligne ci dessous permet d'afficher les différentes étapes du tri //System.out.println(lttri+"\n"+nbtri); } //on peut afficher les tableaux de lettres et d'occurence triés avec la ligne de code ci dessous //System.out.println("\nLettres tri\u00e9es :\n"+lttri+"\n"+nbtri); nombres = nbtri; lettres = lttri; final ArrayList<Integer> NB = new ArrayList(nombres); final ArrayList<Character> LT = new ArrayList(lettres); //création de l'arbre while(nombres.size() != 1){ arbre = 0; int transfert = nombres.get(0) + nombres.get(1);//prend la valeur de la somme des 2 premieres occurences char change = lettres.get(1);//prend la valeur a la 2e position dans le tableau de lettres //on ajoute les 2 premieres lettres du tableaux de lettres ainsi que leurs occurences dans les tableaux utilisés pour fabriquer l'arbre NB_arbre.add(nombres.get(0)); LT_arbre.add(lettres.get(0)); NB_arbre.add(nombres.get(1)); LT_arbre.add(lettres.get(1)); //on crée un noeud par lettre ajoutées projet noeud1 = new projet(nombres.get(0),lettres.get(0),null,null,null,2); projet noeud2 = new projet(nombres.get(1),lettres.get(1),null,null,null,2); nombres.remove(nombres.get(0)); lettres.remove(lettres.get(0)); //on définit la position ou seront mises les nouvelles valeurs 'transfert' et 'change' dans les tableaux de lettres et d'occurence for(int j = 0; j < nombres.size(); j++){ if(nombres.get(j) == transfert){ for(int n = 0;n < alpha.size();n++){ if(alpha.get(n) == change){ n1 = n; } if(alpha.get(n) == lettres.get(j)){ n2 = n; } } if(n1 < n2){ arbre = j-1; } else{ arbre = j ; } } else if((nombres.get(j) > transfert) && (arbre == 0)){ arbre = j-1; break; } } //on met a jour les positions dans les tableaux de lettres et d'occurence if(arbre == 0){ arbre = nombres.size() - 1; for(int k = 0; k < arbre; k++){ nombres.set(k, nombres.get(k+1)); lettres.set(k, lettres.get(k+1)); } } else{ for(int k = 0; k < arbre; k++){ nombres.set(k, nombres.get(k+1)); lettres.set(k, lettres.get(k+1)); } } int presence1 = 0; int presence2 = 0; //on affecte les bonnes valeurs aux variables 'pere','fg','fd' et 'binaire' pour les noeuds for(int i = noeuds.size()-1; i > 0; i--){ if(noeuds.get(i).nom == noeud1.nom && presence1 == 0){ noeuds.get(i).pere = noeud1; noeuds.get(i-1).pere = noeud1; noeuds.get(i).binaire = 1; noeuds.get(i-1).binaire = 0; noeud1.fg = noeuds.get(i-1); noeud1.fd = noeuds.get(i); presence1 = 1; } else if(noeuds.get(i).nom == noeud2.nom && presence2 == 0){ noeuds.get(i).pere = noeud2; noeuds.get(i-1).pere = noeud2; noeuds.get(i).binaire = 1; noeuds.get(i-1).binaire = 0; noeud2.fg = noeuds.get(i-1); noeud2.fd = noeuds.get(i); presence2 = 1; } } //si le premier noeud n'est jamais apparu, on met son fils droit et son fils gauche a null if(presence1 == 0){ noeud1.fg = noeud1.fd = null; } //si le deuxieme noeud n'est jamais apparu, on met son fils droit et son fils gauche a null if(presence2 == 0){ noeud2.fg = noeud2.fd = null; } noeuds.add(noeud1); noeuds.add(noeud2); nombres.set(arbre, transfert); lettres.set(arbre, change); } //on crée un nouveau noeud pour la derniere variable des tableaux de lettres et d'ocurrence projet noeud = new projet(nombres.get(0),lettres.get(0),null,null,null,2); noeuds.add(noeud); NB_arbre.add(nombres.get(0)); LT_arbre.add(lettres.get(0)); lettres.remove(lettres.get(0)); nombres.remove(nombres.get(0)); noeuds.get(noeuds.size()-2).pere = noeud; noeuds.get(noeuds.size()-3).pere = noeud; noeuds.get(noeuds.size()-2).binaire = 1; noeuds.get(noeuds.size()-3).binaire = 0; noeud.fg = noeuds.get(noeuds.size()-3); noeud.fd = noeuds.get(noeuds.size()-2); //affichage code binaire for(int i = 0; i < NB.size();i++){ for(int j = 0; j < noeuds.size(); j++){ if((LT.get(i) == noeuds.get(j).nom) && (noeuds.get(j).fg == null)){ ArrayList<Integer> bin = new ArrayList(); projet parent = new projet(0,'-',null,null,null,2);//on crée une nouveau noeud parent = noeuds.get(j);//le nouveau noeud prend la valeur du noeud actuel while(parent.pere != null){ bin.add(parent.binaire);//on ajoute la valeur binaire (1 ou 0) a la nouvelle arraylist parent = parent.pere;//le noeud devient le neoud pere } code.add(bin);//on ajoute l'arraylist avec le code binaire a l'envers dans le tableau de code binaire } } } //Les lignes de code ci dessous permettent d'afficher le code binaire de chaque lettres du mot /*System.out.println("\nCode binaire de chaque lettre :"); for(int i = 0; i < LT.size();i++){ System.out.print(LT.get(i)+" : "); for(int j = code.get(i).size()-1;j >=0; j--){ System.out.print(code.get(i).get(j)); } System.out.println(); }*/ System.out.println("\nLe code binaire de votre phrase est :"); for(int i = 0; i < chaine.size(); i++){ for(int j = 0; j < LT.size(); j++){ if(chaine.get(i) == LT.get(j)){ for(int k = code.get(j).size()-1; k >= 0; k--){//on parcourt chaque tableaux de code binaire de la derniere position a la premiere System.out.print(code.get(j).get(k));//on affiche la valeur de la position et on obtient le code binaire dans le bon ordre } System.out.print(" "); } } } } }

Je voulais voir si quelqu'un sait le faire modifier le code et le mettre en Python ou n'importe quelle autre langage

Merci d'avance

damsover
damsover
Niveau 5
03 février 2022 à 16:29:19

T’as raté l’utilisation de la balise code, il faut un retour à la ligne avant le début de la balise.

Tu as écrit le code sinon ?

Magrozz
Magrozz
Niveau 7
03 février 2022 à 16:35:26

Le 03 février 2022 à 16:15:29 :

Je voulais voir si quelqu'un sait le faire modifier le code et le mettre en Python ou n'importe quelle autre langage

Merci d'avance

Oui

de_nada_cono
de_nada_cono
Niveau 10
03 février 2022 à 16:38:40

qu'est ce que c'est sensé faire ?

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment