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. #1
    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 Du c vers le java
    Bonsoir,
    j'ai codé un programme en C, et étant étudiant, on me demande bêtement de le mettre en java (ils n'ont pas l'obligation de connaître le langage C pour corriger ce que j'ai fais - apparemment, je pensais qu'ils étaient maitres-conf mais bon).
    Donc je cherche quelque chose qui pourrait m'aider (tableaux, aide à la conversion).
    Les flux stream je ne vois pas trop comment je peux faire, et encore moins partir d'une chaine et d'un fichier, pour en garder une variable stream (FILE) qui pointe sur le contenu. D'autres petite chose aussi.
    Où puis-je me documenter?

    (langage java pour un projet, alors qu'on n'est pas censé à notre niveau être capable de programmer en langage objet - ils veulent aussi une interface graphique, et ne veulent pas de mon GTK+ en langage C).

    Bref, la louz'.
    Merci d'avance.
    "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.

  2. #2
    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
    Bonjour,

    Je connais bien les deux langage et la conversion du C vers le java est facile.

    Grosso-modo
    objet <=> structure,
    new <=> malloc,
    garbage collector => pas de free
    Java tout est pointeur à part les types primitifs.

  3. #3
    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
    Salut
    Citation Envoyé par dafpp Voir le message
    Où puis-je me documenter?
    Tutoriel java sur gogol

    Citation Envoyé par dafpp Voir le message
    (langage java pour un projet, alors qu'on n'est pas censé à notre niveau être capable de programmer en langage objet
    Ce n'est pas parce que tu utilises un langage objet que tu es obligé de programer en objet. Maintenant programmer en objet c'est pas compliqué.
    Un objet c'est quoi ? C'est juste une structure dans laquelle tu rajoutes des fonctions pour la manipuler. Ce qui permet de tout regrouper et t'évite de t'embêter à trouver des noms différents pour des fonctions similaires.
    Exemple: tu veux gérer et afficher une date et une personne. En C tu crées ta structure date puis ta structure personne. Puis tu devras créer une fonction spéciale "afficherDate()" et une autre "afficherPersonne()".
    En objet tu crées ta structure date et tu lui rajoutes, à l'intérieur, la méthode "afficher()". Et pareil pour ta structure personne. La différence se fera par rapport à la variable qui appellera "afficher()". Si cette variable est une date ça appellera la méthode codée dans la structure date ; si cette variable est une personne ça appellera la méthode codée dans la structure personne.
    Bref ça te simplifie juste la programmation, rien de plus.

    Citation Envoyé par dafpp Voir le message
    - ils veulent aussi une interface graphique, et ne veulent pas de mon GTK+ en langage C).
    Ptet du coté de Qt. Ceci dit, je pense que tu aurais pu leur demander les contraintes avant...
    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]

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par dafpp Voir le message
    Les flux stream je ne vois pas trop comment je peux faire, et encore moins partir d'une chaine et d'un fichier, pour en garder une variable stream (FILE) qui pointe sur le contenu.
    D'autres petite chose aussi.
    Où puis-je me documenter?
    La syntaxe de Java est très proche du C. Une fois qu'on connait les deux, il est plus simple de programmer en Java. Le mieux serait que tu postes les blocs de code en C qui te posent problème.
    ils veulent aussi une interface graphique, et ne veulent pas de mon GTK+ en langage C).
    C'est probablement côté graphique qu'il risque d'y avoir le plus de boulot.
    ɹǝsn *sıɹɐlos*

  5. #5
    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
    ce qui m’embête c'est par exemple les types.

    Comment faire l'équivalent de :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct TNoeud
    {
       uint16_t lettre;
       unsigned int occ;
       struct TNoeud *g;
       struct TNoeud *d;
    } TNoeud;
    Comment on fait pour avoir un type de taille précise (uint16_t)?
    Comment faire pour gérer un tableau TNoeud dynamique?
    Sinon la classe je vois comment elle doit s'écrire...
    Mais réécrire en Java demande de réécrire plus de choses.
    J'ai le droit de tricher (bon on est pas au forum java) et mettre tout en public pour éviter les setters et getters?

    Je vais relire un cours complet, histoire de pas bidouiller pour chaque bout de code.
    "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. #6
    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 dafpp Voir le message
    Comment on fait pour avoir un type de taille précise (uint16_t)?
    Bah tu dois avoir un type équivalent en java...

    Citation Envoyé par dafpp Voir le message
    Comment faire pour gérer un tableau TNoeud dynamique?
    Bon en fait je connais pas java, et en plus effectivement on n'est pas en forum java. Mais si on était en Python (où là aussi comme Java tout est objet) je ferais un tab.append(). Et comme Java est plus haut niveau que le C, tu dois sûrement avoir un truc analogue...

    Citation Envoyé par dafpp Voir le message
    J'ai le droit de tricher (bon on est pas au forum java) et mettre tout en public pour éviter les setters et getters?
    Ca c'est tes profs qui te le diront. Toutefois le langage l'autorise.
    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]

  7. #7
    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
    bon je cherche comment faut faire pour les fichiers, car ça je vois pas trop.

    pour le type, en effet : short.
    "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.

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par dafpp Voir le message
    ce qui m’embête c'est par exemple les types.

    Comment faire l'équivalent de :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct TNoeud
    {
       uint16_t lettre;
       unsigned int occ;
       struct TNoeud *g;
       struct TNoeud *d;
    } TNoeud;
    Quelque chose comme ça (il n'y a pas de type unsigned en java):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class TNoeud {
      char lettre;
      int occ;
      TNoeud g;
      TNoeud d;
    }
    Comment on fait pour avoir un type de taille précise (uint16_t)?
    Pourquoi as tu besoin d'une taille précise ?
    Comment faire pour gérer un tableau TNoeud dynamique?
    Montre nous du code C correspondant.
    Sinon la classe je vois comment elle doit s'écrire...
    Mais réécrire en Java demande de réécrire plus de choses.
    J'ai le droit de tricher (bon on est pas au forum java) et mettre tout en public pour éviter les setters et getters?
    Oui, bien sûr, tu peux aussi mettre toutes tes classes dans un seul fichier.
    ɹǝsn *sıɹɐlos*

  9. #9
    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
    ha ça c'est sûr je vais tout faire comme j'ai fais en C, pour avoir le moins de choses à faire.

    Il n'y a pas d'unsigned? Je pensais, fichtre.

    Pour une liste de noeud, j'avais trouvé un bout de code plus particulier, c'est pour ça je me posais des questions.
    Donc non c'est bon pour ça normalement.

    L'histoire des fichiers va m'embêter, mais je verrai.
    "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. #10
    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
    J'ai le droit de tricher (bon on est pas au forum java) et mettre tout en public pour éviter les setters et getters?


    Rien en t'en empêche, mais c'est vraiment sale. Je suis d'accord que l'adaptation sera sans doute un peu moins rapide à faire, mais elle sera bien plus propre et maintenable.

    Comment on fait pour avoir un type de taille précise (uint16_t)?
    En Java, la taille de chaque type est précise. Un short fait 16 bits, un int fait 32 bits, par exemple. Tu ne peux pas avoir une autre taille pour un type donné.

    Bon en fait je connais pas java, et en plus effectivement on n'est pas en forum java. Mais si on était en Python (où là aussi comme Java tout est objet) je ferais un tab.append(). Et comme Java est plus haut niveau que le C, tu dois sûrement avoir un truc analogue...
    ArraList devrait sans doute faire l'affaire : http://docs.oracle.com/javase/7/docs...ArrayList.html

    L'histoire des fichiers va m'embêter, mais je verrai.
    C'est très facile de lire des fichiers en java. Tu crées un objet de type File avec le chemin vers le fichier. Tu créées ensuite un InputStream (resp. OutputStream) avec cet objet et tu fais des read (resp. write).

  11. #11
    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
    ha
    à chaque fois je repousse, et quand je m'y mets, ça m'emm***.
    C'est une horreur, et certaines choses doivent être totalement réécrite.
    J'abandonne pour le moment. J'aime pas le java. Surtout pour ce genre de
    problème d'arbre, je ne vois pas pourquoi le faire à coup de Java,
    c'est contre productif.
    On nous apprend à comment marche un ordinateur, la mémoire et autre, et
    on nous fait programmer sur un langage objet où tout est objet - alors que à mon niveau
    (même si je sais) on n'est pas censé avoir appris.
    Quand je gère des arbres, j'ai besoin de pointeur clair. D'allouer, de
    désallouer la mémoire. Pour comparer un tableau, je compare directement
    la mémoire qui pointe et pas chaque valeur. Si je veux gérer les options
    du programme, il y a une option facile à utiliser, ... Fichtre,
    sérieux.
    Coups de gueule de la soirée, ça me saoule.

    - et puis merd*, pourquoi faire du java pour faire du java. J'en ferai
    pas grand chose plus tard, c'est sûr.
    Ha je suis dégouté à un haut niveau! (petit jeu de mot).
    "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.

  12. #12
    Inactif
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par mith06 Voir le message
    Bonjour,

    Je connais bien les deux langage et la conversion du C vers le java est facile.

    Grosso-modo
    objet <=> structure,
    new <=> malloc,
    garbage collector => pas de free
    Java tout est pointeur à part les types primitifs.
    Java tout est REFERENCE à part les types primitifs. N'insulte pas le Java avec des concepts dépassés.


    je compare directement
    la mémoire qui pointe et pas chaque valeur
    Euh si tu compares 2 tableaux != il faut parcourir les valeurs pour savoir si ils sont == ... ça change pas ...
    Tu peux comparer les références en Java aussi ...

    Pas besoin de cracher ton venin sur ce langage tu le maitrises pas c'est tout c'est aussi simple que le c ou le c++ quand tu le maitrises ...

  13. #13
    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 Jean84 Voir le message
    Java
    tout est REFERENCE à part les types primitifs. N'insulte pas le Java
    avec des concepts dépassés.




    Euh si tu compares 2 tableaux != il faut parcourir les valeurs pour
    savoir si ils sont == ... ça change pas ...
    Tu peux comparer les références en Java aussi ...

    Pas besoin de cracher ton venin sur ce langage tu le maitrises pas c'est
    tout c'est aussi simple que le c ou le c++ quand tu le maitrises
    ...
    Je me suis mal exprimé, je parlais de comparer les valeurs du tableau pour ensuite les trier.
    Il existe la même chose que qsort en java?
    C'est pas compliqué à refaire mais ce sont toujours des choses en plus.

    Parce que la manière de programmer est la même?
    J'aime pas spécialement faire du code moche, mais si je réécris le code, je dois rajouter pas mal de choses pour de simple instructions. Il y a des choses que je ne sais pas reproduire comme en C (surtout une histoire de class que je ne connais pas mais pas que - certes).
    Je ne crache pas vraiment sur le Java, je crache plutôt sur l'intelligence d'utiliser le java pour ce genre de projet (petit programme). Ça ne concerne pas le début de la conversation (du topic), donc je vais m'arrêter là, mais quand on est à ses débuts de programmation, faudrait mieux s'en tenir à super bien comprendre le bas niveau avant de se lancer au haut niveau avec des langages objet (qui n'ont pas forcement d'intérêts selon les besoins). Mais c'est hors sujet, et c'était qu'un coup de gueule. Ça ne tient qu'à moi.
    "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.

  14. #14
    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 dafpp Voir le message
    Quand je gère des arbres, j'ai besoin de pointeur clair. D'allouer, de désallouer la mémoire.
    Je pense que tu dramatises. Et aussi que tu n'as pas perçu la portée des langages "évolués"...

    Je vais te donner un exemple simple en C et en Python pour allouer un noeud de liste chainée et l'ajouter en fin de liste.

    En C
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    typedef struct s_noeud {
    	char *nom;
    	struct s_noeud *next;
    } t_node;
     
    typedef struct {
    	t_node *racine;
    } t_liste;
     
    t_node *newNode(char *nom)
    {
    	t_node *node;
    	node=malloc(sizeof(t_node));
    	node->nom=strdup(nom);
    	node->next=NULL;
    	return node;
    }
     
    void append(t_liste *liste, t_node *node)
    {
    	t_node *current;
    	if (liste->racine == NULL)
    	{
    		liste->racine=node;
    		return;
    	}
     
    	for (current=liste->racine; current->next != NULL; current=current->next);
    	current->next=node;
    }
     
    void init(t_liste *liste)
    {
    	liste->racine=NULL;
    }
     
    void affiche(t_liste *liste)
    {
    	t_node *current;
    	unsigned short i;
    	if (liste->racine == NULL)
    	{
    		printf("Liste vide !!!\n");
    		return;
    	}
    	for (current=liste->racine, i=1; current != NULL; current=current->next, i++)
    		printf("Noeud [%d]: %s\n", i, current->nom);
    }
     
    int main()
    {
    	t_liste liste;
    	init(&liste);
     
    	affiche(&liste);
    	append(&liste, newNode("toto"));
    	append(&liste, newNode("titi"));
    	append(&liste, newNode("tata"));
    	affiche(&liste);
    }

    En Python
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    class cNode(object):
    	def __init__(self, nom):
    		self.nom=nom
    		self.suiv=None
    	# __init()
    # cNode
     
    class cListe(object):
    	def __init__(self):
    		self.racine=None
    	# __init()
    # cListe
     
    def append(liste, node):
    	if liste.racine is None:
    		liste.racine=node
    		return
    	# if
     
    	current=liste.racine
    	while current.suiv is not None:
    		current=current.suiv
    	current.suiv=node
    # append()
     
    def affiche(liste):
    	if liste.racine is None:
    		print "Liste vide !!!"
    		return
    	# if
     
    	current=liste.racine
    	i=1
    	while current is not None:
    		print "Noeud %d: %s" % (i, current.nom)
    		current=current.suiv
    		i+=1
    	# while
    # affiche()
     
    if __name__ == "__main__":
    	liste=cListe()
    	affiche(liste)
    	append(liste, cNode("toto"))
    	append(liste, cNode("titi"))
    	append(liste, cNode("tata"))
    	affiche(liste)
    # if

    Bon c'est pas parfait parfait. Pour la partie C je ne vérifie pas les malloc et me préoccupe pas du nettoyage. Et pour la partie Python je n'utilise pas la puissance de l'objet (pour être le plus similaire possible avec le code C)
    En fait c'est surtout pour te montrer que dans les langages évolués (comme Python, C#, Java) où tout élément complexe est automatiquement traité par référence, t'as plus besoin de te casser la tête avec les adresses. Quand tu passes un truc à une fonction, si ce truc est simple (entier, caractère, flottant) le truc est recopié dans la fonction. Et si le truc est complexe (tableau, objet) alors c'est la référence du truc qui est passée à la fonction. Mais toi tu ne t'en préoccupes absolument pas. Tu veux récupérer le truc tu fais simplement variable=truc et soit ta variable récupère une copie de l'élément simple, soit elle récupère la référence de l'élément complexe...

    Citation Envoyé par Jean84 Voir le message
    Pas besoin de cracher ton venin sur ce langage tu le maitrises pas c'est tout c'est aussi simple que le c ou le c++ quand tu le maitrises ...
    Euh je ne le maitrise pas non plus mais j'en ai eu un petit aperçu. Déjà un langage dit "de haut niveau" qui n'accepte pas les paramètres optionnels dans ses fonctions c'est plus que moyen. Et quand je lance une appli java et que je vois mon ancien PC s'effondrer au vu des ressources monopolisées par la JVM ben je me dis que quelque part il y a dû avoir des ratés... Pourtant c'était pas une merde mon ancien PC. Il datait de 2004 et avait 2 processeurs, 2G de mémoire vive et une CG de 512ko. Je l'avais payé dans les 1800€ quoi...
    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]

  15. #15
    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
    ouais...
    bon je reprendrai pas sur le même code (surtout) et je recoderai tout ça du début en faisant plus simple.

    Merci je me débrouillerai.
    "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.

  16. #16
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par dafpp Voir le message
    C'est une horreur, et certaines choses doivent être totalement réécrite.
    Java n'a jamais eu la prétention d'apporter une compatibilité avec le C, contrairement par exemple à C++.
    J'abandonne pour le moment.
    Si tu avait posté du code, tu aurais pu avoir une aide plus efficace.
    J'aime pas le java. Surtout pour ce genre de problème d'arbre, je ne vois pas pourquoi le faire à coup de Java, c'est contre productif.
    J'ai 30 ans d'expérience en C et 18 en Java, avec quelques centaines de milliers de lignes écrites dans chaque langage et je peux t'assurer que bien que ces langages ne soient pas interchangeables, on est beaucoup plus productif en Java qu'en C pour le type de développement que tu décris.
    On nous apprend à comment marche un ordinateur, la mémoire et autre, et on nous fait programmer sur un langage objet où tout est objet
    Tout n'est pas objet en Java, par exemple les types natifs ou les opérateurs de base ne sont pas des objets. Si tu veux voir un langage où tout est objet, regarde du côté de Smalltalk.
    - alors que à mon niveau (même si je sais) on n'est pas censé avoir appris.
    Si on te demande de programmer en Java sans t'avoir enseigné les rudiments du langage, il y a en effet probablement quelque chose qui cloche.
    Quand je gère des arbres, j'ai besoin de pointeur clair.
    Non, tu as besoin d'un pointeur en C mais pas en Java qui est beaucoup plus simple de ce côté là.
    D'allouer, de désallouer la mémoire.
    Même remarque. Allouer/désallouer la mémoire est une source inépuisable de bugs et de complexité du C qui disparait à peu près complètement avec Java.
    Pour comparer un tableau, je compare directement la mémoire qui pointe et pas chaque valeur.
    C'est bourrin, il y a mieux (en C comme en Java)
    Si je veux gérer les options du programme, il y a une option facile à utiliser
    Si tu parles de getopt, il y a plein d'implémentations disponibles.
    ɹǝsn *sıɹɐlos*

  17. #17
    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
    Je vais aussi aller dans le sens de mes camarades : dans l'ensemble, c'est plus simple de coder en Java.

    J'ai été formé au C puisque je suis issu d'une filière informatique industrielle. J'ai utilisé Java en entreprise, un peu par hasard, sans trop comprendre, en m'en sortant car la syntaxe est proche du C et que je connaissais les principes objets avec C++. Depuis un an, je travaille dans une société qui fait des JVM pour l'embarqué. Je code donc en Java et en C. Le premier pour faire de l'applicatif, le second pour faire interagir la JVM avec les périphériques du micro-contrôleur. Et si au début, j'étais un peu réfractaire à Java, je peux t'assurer qu'aujourd'hui je ne choisirais plus forcément le C pour faire un programme sur PC. Je prendrais plutôt du Java ou du Python. Haut-niveau est souvent synonyme de haute productivité pour l'applicatif. Je réserverai C à des petits programmes, ou pour des parties que je ne saurais pas faire en Python ou en Java (et tu appelles le bout de C depuis ces autres langages), ou encore si de la très haute performance est demandée (et même à ce moment, je me demande si je ne me mettrais pas au C++ plutôt).

    En tout cas, je comprend ta frustration de devoir recoder un programme dans un langage que tu ne connais pas. Bon courage

  18. #18
    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
    Franchement, faire un arbre en Java ou C#, c'est pas bien méchant. J'aurais plus de mal pour la lecture de flux.

    Et aussi, le manque de passage par référence est assez handicapant.
    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.

  19. #19
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Et aussi, le manque de passage par référence est assez handicapant.
    Avec quel langage manque-t-il ?
    Tu peux donner un exemple où ce manque serait handicapant ?
    ɹǝsn *sıɹɐlos*

  20. #20
    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
    Il manque à Java. Il est présent en C#/VB/C++, et émulable facilement en C avec le passage par adresse.
    En Java, si tu veux, pour un exemple simple, inverser deux entiers avec une fonction, tu es obligé de passer par un tableau d'entiers.

    Ou tout simplement retourner deux valeurs différentes, chacune pouvant être un type primitif: Dictionary<TKey, TValue>::TryGetValue()
    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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

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