IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Du c vers le java


Sujet :

C

  1. #41
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par dafpp Voir le message
    Faire:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Liste_TNoeud
    {
      public TNoeud noeud;
      public Liste_TNoeud suivant;
     
      public Liste_TNoeud()
      {
         this.noeud = new TNoeud();
         this.suivant = new Liste_TNoeud();
      }
    }
    ne va pas produire un problème?
    Car ça initialise le suivant, qui lui initialise son suivant, qui lui aussi initialise son suivant ...
    C'est parce que tu n'as aucune raison d'allouer suivant dans ton constructeur. Initialise-le à null.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #42
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Sauf
    que la réalité de la machine n'est pas franchement proche de la réalité
    humaine. Si on a inventé les langage de haut niveau, c'est justement
    pour se détacher de la machine car il est communément admis qu'il est
    plus simple de penser en tant qu'humain qu'en tant que machine.

    Je vais être honnête, j'ai du mal à comprendre ce que tu veux faire avec
    cette ligne :

    Je présume que tu cherches à renvoyer -1, 0 ou 1 selon si da est plus
    petit, égal ou plus grand que db. C'est bien ça ?

    Ici, tu te bases sur le fait qu'un test renvoie 0 ou 1 en particulier
    (et pas d'autres nombres et même pas un booléen) en C pour pouvoir faire
    des calculs qui te donneront une valeur représentant la différence.
    Déjà, moi je me dis : je fais un test logique, je veux un résultat
    logique (donc un booléen, VRAI ou FAUX). Pas un nombre que je vais
    utiliser pour faire un calcul. Tu me diras qu'en algèbre de Bool, on
    utilise souvent 0 et 1 mais on ne fait pas d'arithmétique ensuite
    dessus. Après, chacun sa vision des choses, mais je trouve ce genre de
    code beaucoup plus compréhensible avec des IF / ELSE IF / ELSE et 1
    affectation par cas.

    Pour ce qui est des unsigned, ça me perturbe encore des fois. Mais bon,
    on s'y fait ^^

    Pourquoi recoder des listes plutôt que d'utiliser les types de Java
    ?
    Je comprends bien mieux l'intérêt du haut niveau. Et c'est sans doute pour ça que pour le moment c'est pas quelque chose qui me plaît - et donc c'est bien dommage qu'on nous donne ça comme premier langage de programmation (un langage haut niveau).

    Oui -1, 0 et 1. Pour comparer. J'ai toujours vu ça comme ça, et je préfère. Chacun ses goûts va!

    Pour les listes, je suis censé être en apprentissage (ce qui est bien le cas en JAVA XD), et je préfère faire ma petite liste de mon côté pour pas avoir des erreurs de conceptions ou de mauvaises utilisations des outils. Surtout que la liste TNoeud a des paramètres propre à mon problème.
    Je suis aussi de ceux qui ne veulent pas refaire la roue, mais ici, vu que le java c'est ma soupe froide, je préfère pas partir trop ... trop ... compliquer (même si ça ne l'est sans doute pas, ça fait toujours des choses en plus, et je veux pas non plus trop tarder sur ça - qui est simple petit exercice).
    "Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
    "Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

  3. #43
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    C'est
    parce que tu n'as aucune raison d'allouer
    suivant dans ton constructeur.
    Initialise-le à null.
    J'osais pas le faire, car j'avais des erreurs à cause du null dans le main.
    Mais c'est ça merci. Mea culpa.
    "Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
    "Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

  4. #44
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ça montre que tu n'avais pas entièrement compris les principes de la liste chaînée et de l'allocation d'objets. Le code que tu traduis en Java doit être un code dont tu comprends la signification et l'utilité de chaque ligne, pas une formule magique.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #45
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Ça
    montre que tu n'avais pas entièrement compris les principes de la liste
    chaînée et de l'allocation d'objets. Le code que tu traduis en Java
    doit être un code dont tu comprends la signification et l'utilité de
    chaque ligne, pas une formule magique.
    C'est pour ça, mieux vaut se contenter du minimum. Plus d'excuses de ma part.

    Pour l'histoire du topic, voilà le code en Java (mais qui fait un peu moins de choses):
    Il faut juste donner sa chaine de caractères à traiter en entrée standard (stdin) et finir par C-d.
    Fichiers attachés Fichiers attachés
    "Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
    "Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

  6. #46
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ouh là là... pourquoi à chaque fois que tu déclares un "pointeur temporaire", alloues-tu un objet au bout?

    De plus, pour ce qui est de ton nombre d'occurrences, il serait plus correct algorithmiquement parlant de passer par une classe intermédiaire:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class CarEtOccurences
    {
    public char c;
    public int nb;
    }
    De plus, tu as un main() énorme, tu devrais trouver moyen de le décomposer un peu.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #47
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Si tu codes sous Eclipse (tu fais ça j'espère ? ), tu peux utiliser le raccourci CRTL + SHIFT + O pour réorganiser les imports. Tu auras alors la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.Comparator;
    Tu remarqueras que Scanner a été enlevé car inutilisé.

  8. #48
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Je vais être honnête, j'ai du mal à comprendre ce que tu veux faire avec cette ligne :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    int diff = (da > db) - (da < db);

    Je présume que tu cherches à renvoyer -1, 0 ou 1 selon si da est plus petit, égal ou plus grand que db. C'est bien ça ?
    Moi j'aime beaucoup. Bon ça ne fonctionnera pas, certes, mais ça montre une ouverture d'esprit, une envie de trouver des raccourcis, bref une vraie motivation pour le langage et ses possibilités.
    Après, bien entendu, comme pour tous les extrèmes, faut pas en abuser...

    PS: si le topic dérive vers le java, peut-être serait-il bon de le déplacer dans la bonne rubrique...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #49
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Ouh là là... pourquoi à chaque fois que tu déclares un "pointeur temporaire", alloues-tu un objet au bout?

    De plus, pour ce qui est de ton nombre d'occurrences, il serait plus correct algorithmiquement parlant de passer par une classe intermédiaire:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class CarEtOccurences
    {
    public char c;
    public int nb;
    }
    De plus, tu as un main() énorme, tu devrais trouver moyen de le décomposer un peu.
    Pour les variables temporaire que j'alloue, c'est simplement parce que je faisais l'équivalent de 'var = null', pour m'assurer de la valeur. Je vais nettoyer ça.

    Oui oui pour la classe. Et il serait plus intéressant de ne pas prendre forcement un caractères, mais un nombre de bits à la place (mais j'aurai préféré le faire en C et pas en Java) pour ne pas travailler tout le temps avec un octets mais avec x bits.

    Oui le main est énorme, on peut me faire la même reproche avec le code en C.

    Citation Envoyé par Bktero Voir le message
    Si tu codes sous Eclipse (tu fais ça j'espère ? ), tu peux utiliser le raccourci CRTL + SHIFT + O pour réorganiser les imports. Tu auras alors la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.Comparator;
    Tu remarqueras que Scanner a été enlevé car inutilisé.
    Je me suis mis sur Emacs depuis peu, et j'aimerai continuer. Il doit avoir des choses spécialement pour le Java, mais je ne suis pas spécialement au courant (ni spécialement intéressé pour le moment).

    Citation Envoyé par Sve@r Voir le message
    PS: si le topic dérive vers le java, peut-être serait-il bon de le déplacer dans la bonne rubrique...
    Aux modérateurs d'en décider.
    "Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
    "Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

  10. #50
    Membre expérimenté

    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 545
    Points : 1 429
    Points
    1 429
    Par défaut
    j'ai appris JAVA avec EMACS aussi. J'ai fait un projet de fin d’année de 20000 lignes comme ça...

    Mais après j'ai découvert https://netbeans.org/
    Ça m'a révolutionné le développement en JAVA.
    Quand je pense au temps que j'ai perdu avec EMACS.... (a ce concentrer sur la forme plus que sur le fond...)

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Rediriger logs vers programme java
    Par Rayndell dans le forum Apache
    Réponses: 8
    Dernier message: 25/05/2007, 17h17
  2. Réponses: 1
    Dernier message: 24/03/2006, 18h25
  3. [Débat] Traduire du français vers le Java
    Par mtaveau dans le forum Général Java
    Réponses: 17
    Dernier message: 17/01/2006, 11h14
  4. [RegExp] Adapter une regexp Perl vers du Java
    Par GLDavid dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 22/12/2005, 12h40
  5. convertisseur de classe C++ vers classe Java ?
    Par novice12 dans le forum C++
    Réponses: 3
    Dernier message: 16/12/2004, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo