Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] boucles for

    26 mai 2006 à 14:23:03

    Bonjour à tous,
    Inscription au site très sympa :)

    Zéro en Java que je n'utilise pas souvent, je voudrais faire :

    répéter N fois une instruction:
    SigmoidLayer hidden1 = new SigmoidLayer(); /*une histoire de réseaux*/
    SigmoidLayer hidden2 = new SigmoidLayer();
    ...
    SigmoidLayer hiddenN = new SigmoidLayer();

    Un tableau hidden avec une bouble for, par exemple, c'est la bonne méthode ? je vous dis, je débute ...
    Merci

    Gilles
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2006 à 14:32:07

      Si tu connais par avance le nombre de boucles, le for est la bonne méthode ... normalement, je connais pas le java :-°:honte:

      mais la boucle for est normalement dans tous les langages la boucle utilisée lorsqu'un connait d'avance le nombre de boucles avec certitude ^^
      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2006 à 14:41:36

        Merci Myosotis, N est connu, mon doute était aussi sur la création répétée d'objets dans la boucle et le choix de la structure tableau.
        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2006 à 16:04:51

          C'est a dire ... ? :p
          étant donné que je ne connais pas le java :euh: ton code ne m'aide pas beaucoup donc il faut que tu sois un peu plus clair dans les questions ;)
          • Partager sur Facebook
          • Partager sur Twitter
            26 mai 2006 à 16:15:16

            tu fais simplement :
            SigmoidLayer []hidden = new SigmoidLayer[N];
            for(int i = 0;i < N;i++)
            {
                hidden[i] = new SigmoidLayer();
            }
            • Partager sur Facebook
            • Partager sur Twitter
              26 mai 2006 à 16:16:51

              ah mais en fait ca ressemble étrangement au C le java ... !

              *découverte* ^^:honte:
              • Partager sur Facebook
              • Partager sur Twitter
                26 mai 2006 à 19:21:04

                Ah ! Merci beaucoup à vous deux, aide efficace, j'essaie ce code ce soir, la boucle je voyais bien mais la première ligne ? Il faut que j'approfondisse ... A+
                Je m'interroge sur la gestion de la mémoire aussi, à voir ensuite.
                Myosotis, c'est vrai, les langages impératifs se ressemblent, les langages objets se ressemblent ... certains sont mixtes avec un tronc commun. Jette un oeil sur ces différents types, je les découvre moi-même ... !

                Gilles
                • Partager sur Facebook
                • Partager sur Twitter
                  26 mai 2006 à 20:44:14

                  Sous Java la memoire est entierement geree par la VM, tu n'a donc pas a t'en soucie.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 mai 2006 à 23:23:56

                    Citation : Garuma

                    Sous Java la memoire est entierement geree par la VM, tu n'a donc pas a t'en soucie.



                    Tiens, oui, la machine virtuelle, je n'ai jamais bien compris cette appelation, elle semble pourtant au centre du langage Java. Merci pour la précision
                    Gilles
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 mai 2006 à 0:53:56

                      Citation : Pas de titre

                      ah mais en fait ca ressemble étrangement au C le java ... !


                      d'un autre coté c'est assez normale, la syntaxe du java dérive de celle du c, avec les pointeurs en moins
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 mai 2006 à 9:19:24

                        Citation : myriapodes

                        Citation : Garuma

                        Sous Java la memoire est entierement geree par la VM, tu n'a donc pas a t'en soucie.



                        Tiens, oui, la machine virtuelle, je n'ai jamais bien compris cette appelation, elle semble pourtant au centre du langage Java. Merci pour la précision
                        Gilles



                        Pour lancer un programme java, il faut lancer la machine virtuelle sur ton programme java. Tu codes comme tu veux, ca tournera (normalement :-°) sous tous OS car la machine virtuelle arrange tes appels de méthodes pour qu'elles soient compatibles avec ton système. C'est aussi pour ca que c'est un peu plus lent.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 mai 2006 à 20:44:00

                          Citation : kokotchY


                          Pour lancer un programme java, il faut lancer la machine virtuelle sur ton programme java. Tu codes comme tu veux, ca tournera (normalement :-°) sous tous OS car la machine virtuelle arrange tes appels de méthodes pour qu'elles soient compatibles avec ton système. C'est aussi pour ca que c'est un peu plus lent.



                          Ok, Si je veux construire une interface (GUI) qui fonctionne sur tout système (linux, windows, mac en gros), java est le bon choix car tous installent java, non ? (pas le cas pour les autres langages, et les lib Gtk, Qt ?? ...) Mais c'est plus long car "universel". le mieux est de créer une version de son prog pour chaque système ...

                          Mon prob de boucle produit un NullPointerException mais ça ne vient pas de la boucle, je cherche ...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 mai 2006 à 20:53:57

                            Le GUI par défaut de Java est SWING. Comme cette bibliothèque est implémenté en Java elle est portable partout où la machine Java a été porté. Sinon il existe des couches d'abstraction qui utilise les widgets natifs du système hôte, comme la librairie SWT qu'utilise Eclipse et Vos Tutos Offline mais dans ce cas tu es limité à Windows, Linux, MacOS et Motif (bon en théorie je ne connais aucun système qui n'est pas au moins un de ces quatres là)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 mai 2006 à 21:43:11

                              Citation : Garuma

                              Windows, Linux, MacOS et Motif (bon en théorie je ne connais aucun système qui n'est pas au moins un de ces quatres là)


                              Solaris, mais à tu es sûr que la JVM est installer par défaut.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                29 mai 2006 à 21:55:31

                                Garuma> SWT est une horreur (parole de Macqueux).

                                Qt est par exemple beaucoup, beaucoup plus adapté (je suis en train de découvrir suite au début de propagande Kedariste (son coup de coeur actuel) et c'est pas mal).

                                Edit : mais Qt est pas installé par défaut sur Mac, quand même.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 mai 2006 à 12:50:53

                                  Citation : minirop

                                  Solaris, mais à tu es sûr que la JVM est installer par défaut.


                                  Tu es sur qu'il n'utilise pas GTK+ ou un genre de Motif ? Ca serait quand meme fort qu'un produit fait avec Java ne tourne pas sur un systeme fait par Sun :p

                                  Bigloo > pour MAC je ne peux que te croire en tout cas sous Linux et Windows ya pas de probleme. Apres meme pour developper sous MAC je prefererai prendre wxWidgets, la au moins ca sera natif et y'aura pas de probleme au niveau graphisme.
                                  //edit : mais du coup Qt c'est fait en C++ alors que la on parle de Java ^^ . D'ou un probleme que je repete ici, si on voulait faire un wrapper de Qt pour Java ca poserait des problemes de licence qui la rendrait inutilisable pour la plupart des projets.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    30 mai 2006 à 13:58:31

                                    Et pour Java alors tu peux choisir quoi ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      30 mai 2006 à 15:31:26

                                      Ben pas grand chose d'autre que SWING ou SWT a mon avis.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 mai 2006 à 16:42:19

                                        Citation : Garuma

                                        Ben pas grand chose d'autre que SWING ou SWT a mon avis.



                                        Oui mais comme on peut créer ses propres look & feel ce n'est pas un gros problème estétique : faites-le vous-même!

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          30 mai 2006 à 18:52:12

                                          Une interface, c'est pas seulement une apparence. C'est pas une question de thèmes.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            30 mai 2006 à 20:19:03

                                            Si ce n'est pas l'apparence qui compte, qu'est-ce que vous reprochez à Swing?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              30 mai 2006 à 20:28:50

                                              Moi je lui reproche d'émuler son interface a contrario de SWT qui a à mon avis une meilleur approche.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Anonyme
                                                30 mai 2006 à 20:33:39

                                                SuperMat> L'inadaptation. Un programme MacOS X graphique, j'attends de lui qu'il réponde aux pomme+q (quitter), ou aux glisser/déposer, ou à plein d'autres constantes dans les interfaces des applications MacOS X natives.

                                                Visiblement, peu de programmeurs Java se soucient de tout ça. Soit ils sont tous des porcs de l'interface, soit c'est juste que Java est incapable de réellement le mettre en place facilement (Qt c'est automatique). Je n'en sais pas plus, je ne connais pas Java autrement que par l'utilisation (désagréable) des programmes qu'il sert à faire.

                                                C'est le style de portabilité qui, au lieu de s'adapter aux environnements choisis par l'utilisateur, cherche à adapter l'utilisateur lui-même. C'est pas ce que je préfère.

                                                Apparemment selon ce que vient de dire Garuma je sais mal ce que c'est exactement. Tant pis.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  30 mai 2006 à 21:12:53

                                                  Je suis d'accord avec ce que tu dis Bigloo, une bibliothèque de GUI pour être efficace doit s'adapter aux spécifité de l'OS hôte et pas forcer l'utilisateur à utiliser son propre style. C'est entre autre ce qui se passe avec wxWidgets où chaque spécificité du système son prises en compte (glisser-déposer, menu de l'application dans la barre de MacOS...)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    30 mai 2006 à 21:16:07

                                                    Ca a l'air, oui.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      30 mai 2006 à 21:26:05

                                                      C'est toujours mieux que GTK+ qui est horrible sous MAC d'après ce qu'on en dit.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Anonyme
                                                        30 mai 2006 à 21:48:44

                                                        Remplace "horrible" par "inexistant en natif" (du moins à ma dernière tentative d'utilisation du Gimp sur Mac). Passage par X11 obligatoire.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          30 mai 2006 à 22:09:04

                                                          Citation : Bigloo

                                                          C'est le style de portabilité qui, au lieu de s'adapter aux environnements choisis par l'utilisateur, cherche à adapter l'utilisateur lui-même. C'est pas ce que je préfère.



                                                          C'est vrai que Swing a un comportement par défaut assez proche de Java plutôt que de l'OS sous lequel il tourne. Mais par exemple le glisser-déposer a normalement un comportement typique de l'OS utilisé. De même, la sélection simple, multiple, de zone, etc est aussi fonction de l'OS. Les sélections, apparitions d'un menu contextuel dépendent de ce qu'il se fait d'habitude dans l'OS.

                                                          Maintenant, il est vrai qu'il faut se donner la peine de dire qu'on veut un comportement par défaut sur tels et tels objets, sans quoi il ne se passe rien. Les programmeurs fainéants font donc des mauvais programmes, preuve qu'il faut encore améliorer le système. Mais il y a eu de grands progrès sur la dernière version de Java, et celle en bêta à l'air prometteuse de ce coté (je n'ai pas encore pu la tester).

                                                          Pour ce qui est des particuliarités de MacOS désolé mais je n'y connais rien. Notamment le menu de l'application dans la barre.

                                                          Si je reconnais à SWT sa rapidité et son aspect natif, je préfèrerais en tant que client d'avoir quelque chose qui ne donne pas tous les conforts habituels (à cause de ces paillasses de programmeurs) et en échange d'avoir l'assurance d'avoir la même chose quelque soit la plateforme. En tant que programmeur, je suis un peu embêté que SWT ne soit pas un standard Java. Mais ca reste mineur par rapport au fait que la communauté est moindre comparée à celle de Swing, donc moins d'aide en cas de coup dur et si j'ai bien compris l'absence de look and feel.

                                                          Je pense qu'il y a actuellement un projet visant à unir SWT et Swing. Notamment pour offrir la souplesse de Swing et son abstraction, tout en ayant cette vitesse de SWT.

                                                          Il faudrait aussi booster la reconnaissance des spécificités de l'OS dans les applications. Mais rien qu'avec le choix dans l'utilisation de la souris dans les listes, les boutons etc ce ne doit pas être facile. S'il y avait un comportement par défaut plus élaboré ca serait mieux, certainement. Ca va venir ;)

                                                          edit : Qt est-il disponible sur toutes les plateformes exploitant Java?
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Anonyme
                                                            30 mai 2006 à 23:05:45

                                                            Citation : SuperMat

                                                            C'est vrai que Swing a un comportement par défaut assez proche de Java plutôt que de l'OS sous lequel il tourne. Mais par exemple le glisser-déposer a normalement un comportement typique de l'OS utilisé. De même, la sélection simple, multiple, de zone, etc est aussi fonction de l'OS. Les sélections, apparitions d'un menu contextuel dépendent de ce qu'il se fait d'habitude dans l'OS.



                                                            Cela ne change rien. Sous MacOS, il est très fréquent de sélectionner quelque chose (lien, image, texte...) et de le glisser ailleurs en *sachant* que ça va marcher. Résultat, à utiliser des trucs qui ne prévoient pas ça, on se retrouve à faire glisser le texte et à attendre bêtement que quelque chose se produise ^^

                                                            Tout cela n'est généralement pas à programmer, cela n'influe pas sur le programme, c'est juste une façon d'utiliser les données. Prenons un exemple concret, VTO (désolé Kayl, rien de personnel, j'admire le travail fourni dans VTO mais ça reste SWT). Si j'ai un texte quelque part, je le sélectionne, et je le fais glisser : c'est comme si j'avais entré ce texte en copier/coller... "Oh non ! Ca marche pas !"

                                                            Citation : SuperMat

                                                            Maintenant, il est vrai qu'il faut se donner la peine de dire qu'on veut un comportement par défaut sur tels et tels objets, sans quoi il ne se passe rien. Les programmeurs fainéants font donc des mauvais programmes, preuve qu'il faut encore améliorer le système. Mais il y a eu de grands progrès sur la dernière version de Java, et celle en bêta à l'air prometteuse de ce coté (je n'ai pas encore pu la tester).



                                                            Quelqu'un peut-il nous renseigner ?

                                                            Citation : SuperMat

                                                            Pour ce qui est des particuliarités de MacOS désolé mais je n'y connais rien. Notamment le menu de l'application dans la barre.


                                                            C'est plus une particularité d'utilisation, tout ça. L'interface est pensée pour ça (quand je fais glisser du texte sur l'icône de Mail, un nouvel e-mail est créé avec ce texte : gain de temps, et tellement plus classe...). C'est également pénible de se retrouver face à des fenêtres de dialogue différentes de ce dont on a l'habitude, etc... bref je râle. Note que Qt doit souffrir des mêmes défauts de ce point de vue. Mais il existe un module Python nommé EasyDialogs pour ça.


                                                            Bien sûr Qt n'est pas parfaite, loin de là (déjà elle est moins répandue, ensuite faut se taper l'installation). Je ne suis pas là pour en vanter les mérites - j'aimerai juste qu'on arrête de considérer la portabilité d'une application comme suffisante quand cette dernière fonctionne sous MacOS comme elle fonctionne sous Windows (surtout que Java sur Mac, c'est Apple qui le fait, et c'est pas le top de chez top)
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              31 mai 2006 à 9:17:14

                                                              Citation : SuperMat

                                                              edit : Qt est-il disponible sur toutes les plateformes exploitant Java?



                                                              Citation : TrollTech

                                                              Qt is available for the following platforms:

                                                              * Qt/Windows (Microsoft Windows XP, 2000, NT 4, Me/98)
                                                              * Qt/Mac (Mac OS X)
                                                              * Qt/X11 (Linux, Solaris, HP-UX, IRIX, AIX, many other Unix variants)

                                                              Qt encapsulates the different platform-specific APIs of Unix, Windows, and Mac, and the APIs for file handling, networking (Operations, Protocols), process handling, threading, database access, and more.
                                                              qt-platforms

                                                              Qt applications run natively - indistinguishable from native applications - compiled from a single source code on all major platforms:

                                                              * Qt is native on Windows
                                                              * Qt is native on Mac OS X
                                                              * Qt is native on Linux/X11



                                                              La dernière partie ("indistinguishable from native applications") n'est vrai que sous Linux/KDE

                                                              Cependant Qt c'est du C++ pas du Java, hein.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [JAVA] boucles for

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown