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

Affichage des résultats du sondage: Participez-vous au défi Qt ?

Votants
36. Vous ne pouvez pas participer à ce sondage.
  • J'ai déjà commencé

    10 27,78%
  • J'envisage de participer plus tard

    15 41,67%
  • Je ne participerai pas

    11 30,56%
Anciens défis Discussion :

Le premier défi Qt ! Enfin un vainqueur :p


Sujet :

Anciens défis

  1. #21
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Je suis désolé d'en remettre une couche, mais int *t =new int[10] est une syntaxe C++. Le mot clé new n'existe pas en C.

    Plus précisément, C est inclus dans C++ comme un subset. Un nombre limité d'incompatibilités existent tout de même entre les deux.

    De plus, Qt utilise lui-même des char* à la place de QString à certains endroits pour des raisons d'optimisations. C'est expliqué dans plusieurs pages de leur documentation.

    Pour conclure, je comprend que vous souhaitiez éviter d'utiliser du code C incorrect ou impropre à l'intérieur de classes C++. Mais je persiste à penser qu'utiliser des char et des char* est une bonne manière d'optimiser le programme.

  2. #22
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par kryptos Voir le message
    Je suis désolé d'en remettre une couche, mais int *t =new int[10] est une syntaxe C++. Le mot clé new n'existe pas en C.
    sur celle la je suis allez un peu vite dsl . Mais, l'idée est là, il est beaucoup plus propre d'utiliser un std::vector qu'un tebleau comme cela. ET niveau perf, c'est pareil.

    De plus, Qt utilise lui-même des char* à la place de QString à certains endroits pour des raisons d'optimisations. C'est expliqué dans plusieurs pages de leur documentation.
    tu aurais un exemple, cela m'intéresse.

  3. #23
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Citation Envoyé par kryptos Voir le message
    Je suis désolé d'en remettre une couche, mais int *t =new int[10] est une syntaxe C++. Le mot clé new n'existe pas en C.

    Plus précisément, C est inclus dans C++ comme un subset. Un nombre limité d'incompatibilités existent tout de même entre les deux.

    De plus, Qt utilise lui-même des char* à la place de QString à certains endroits pour des raisons d'optimisations. C'est expliqué dans plusieurs pages de leur documentation.

    Pour conclure, je comprend que vous souhaitiez éviter d'utiliser du code C incorrect ou impropre à l'intérieur de classes C++. Mais je persiste à penser qu'utiliser des char et des char* est une bonne manière d'optimiser le programme.
    Ce que l'on voulait dire, c'est que le C++ de référence qu'on utilise c'est le beau C++ dont on parle beaucoup, le C++ moderne. On appréciera l'approche RAII, la généricité, l'utilisation de l'héritage SEULEMENT quand il faut, le polymorphisme statique lorsqu'il suffit par rapport à un héritage, etc. On va noter par rapport au C++ moderne, pas par rapport au "C/C++" qui n'est qu'une tâche historique dans l'histoire du C++.

    Si vous avez d'autres questions n'hésitez pas.

  4. #24
    Membre habitué Avatar de 0x4e84
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2002
    Messages : 116
    Points : 155
    Points
    155
    Par défaut Qt 4.6 accepté pour le défi?
    La version 4.6 de Qt a été publiée hier.

    Je suppose que cette version est acceptée implicitement pour le défi, bien qu'il soit fait mention uniquement des versions "4.5.3 (Windows, Linux, Mac OS X) et 4.6.0 release candidate (Windows, Linux)" ?

    Merci, à +!

  5. #25
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Oui oui, au moment de la sortie du défi le release n'était pas sortie, mais nous l'accepterons car surtout d'ici 3 mois personne dans le jury n'aura d'excuse pour ne pas avoir accès à Qt 4.6, et d'ailleurs nous l'avons déjà probablement tous installée

  6. #26
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    c'est intéressant ce challenge & je veux savoir est ce que on peut tout change (algorithme, types, etc...) dans le générateur, au plutôt on peux re-crée un nouveau?

    merci!

  7. #27
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Z3vil Voir le message
    Bonjour,

    c'est intéressant ce challenge & je veux savoir est ce que on peut tout change (algorithme, types, etc...) dans le générateur, au plutôt on peux re-crée un nouveau?

    merci!
    Les sources sont sous licence MIT, donc tu en fait ce que tu veux
    En faite, c'est toi qui voie si tu veut te baser dessus, la modifier ou tous refaire à ta sauce.

  8. #28
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    C'est surtout fait pour aider pour ceux qui auraient du mal à ce niveau là. Afin de ne pas les bloquer, yan a mis cela à disposition. Mais tu peux tout à fait ne pas t'en servir.

  9. #29
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 695
    Points : 188 897
    Points
    188 897
    Par défaut Dura lex, sed lex
    Bonjour,

    Apparemment, l'interdiction du C en choque certains. Voici plus de détails sur ce point.

    C et C++ ont une origine commune, c'est vrai. Mais c'est il y a quelques années. Depuis lors, les deux langages ont évolué différemment. Des incompatibilités sont apparues. Autoriser le C, ce serait ne pas l'autoriser entièrement.

    Le C++ est réputé pour être un langage de haut-niveau, le C pour un langage de bas-niveau. De nos jours, il est nettement moins important de se préoccuper du bas-niveau : on préfère développer "plus haut", comme Qt. Autoriser le C, c'est aussi revenir en arrière à ce niveau.

    Le C++ est nativement multiparadigmes. Le C, biparadigmes : impératif et objet (ce dernier en jouant très fort sur le langage, l'amenant dans ses extrémités - comme GTK+). Le C++ : impératif, objet (principalement), mais aussi fonctionnel et bien d'autres (même s'il n'est pas prévu pour ceux-là). Le C++ est donc plus permissif à ce niveau que le C.

    On voit donc aisément que le C n'est pas le C++. Si on autorise le C parce qu'il ressemble au C++, on devra aussi pouvoir supporter des pléthores d'autres langages : le Java, qui ressemble beaucoup au C++ ; le C#, proche du Java ; l'Objective-C ; le D ; le PHP ; et bien d'autres !

    Aussi, l'ancêtre C with Classes et autres préversions du C++ ne sont pas autorisées pour les mêmes raisons. De plus, il s'agit de standards plus que dépassés, qui n'apportent pas grand chose à la programmation. Ce standard est aussi très différent du C++ de nos jours : beaucoup de nouveautés qui permettent de rendre un code plus lisible ne sont pas encore arrivées, le "C++ moderne" n'était pas encore dans le jeu.

    Il existe quand même une exception : l'ECMAScript. En effet, il est supporté par Qt depuis longtemps (dès l'arrivée du module QtScript dans Qt 4.3, et bien avant avec QSA).

    De même, C++ for CUDA n'est pas autorisé (la question du C for CUDA et du Fortran for CUDA est déjà soulevée), même s'il utilise le C++ : personne ne s'est à présent opposé contre l'interdiction de librairies externes, et CUDA en est une.

    Aussi, il est possible d'obtenir de meilleures performances grâce au GPGPU : serait-il juste de devoir mieux noter un programme qui tire parti du GPGPU qu'un autre, qui se contente du CPU, alors que le programme sur CPU a subi des optimisations plus profondes ?

    J'espère avoir ainsi répondu à ces interrogations sur ces interdits.

  10. #30
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par yan Voir le message
    tu aurais un exemple, cela m'intéresse.
    Typiquement les fonctions pour le mécanisme de signal/slot utilisent des char*.
    Les char* sont aussi utilisés pour les fonctions utilisant une clé (et donc une hashmap en interne) comme setProperty/getProperty.
    Enfin char* (ou QByteArray qui est un sorte de wrapper objet) est conseillé partout où l'utilisateur final n'est pas concerné : http://doc.trolltech.com/4.6/interna...r-visible-text

  11. #31
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par kryptos Voir le message
    Typiquement les fonctions pour le mécanisme de signal/slot utilisent des char*.
    Les char* sont aussi utilisés pour les fonctions utilisant une clé (et donc une hashmap en interne) comme setProperty/getProperty.
    Enfin char* (ou QByteArray qui est un sorte de wrapper objet) est conseillé partout où l'utilisateur final n'est pas concerné : http://qt.developpez.com/doc/latest/...-l-utilisateur
    Ce que tu montre n'est pas vraiment lié à de l'optimisation. Mais à l'utilisation de macro (qui ajoute des informatin dans la string) et l'inutilité de créer de la mémoire pour cela. De plus ce sont des const char * et non char*. Pourquoi ? lorsque tu écrit dans le code, cela génère un tableau de char de la taille de la string directement dans le binaire résultat. Elle ne peut donc être modifié.

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Je ne sais pas si je vais participer (je ne connais rien à Qt et le "beau" C++ n'est pas mon fort) mais j'ai quand même une question. Puisque OpenGl est autorisé (Qt possédant un module OpenGL), l'utilisation de bibliothèques telles que glee ou glew pour faciliter le chargement des extensions est autorisée également? Parce qu'il faut se contenter de coder à "l'ancienne" avec des display list (à présent dépréciées) bof bof...

  13. #33
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 695
    Points : 188 897
    Points
    188 897
    Par défaut
    Citation Envoyé par TresNulDev Voir le message
    Puisque OpenGl est autorisé (Qt possédant un module OpenGL), l'utilisation de bibliothèques telles que glee ou glew pour faciliter le chargement des extensions est autorisée également? Parce qu'il faut se contenter de coder à "l'ancienne" avec des display list (à présent dépréciées) bof bof...
    Pas de bibliothèque, peu importe la finalité. Dura lex, sed lex.

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    D'accord c'est très clair, merci. Donc je ne participerai pas.

  15. #35
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par TresNulDev Voir le message
    D'accord c'est très clair, merci. Donc je ne participerai pas.
    pourquoi?
    as tu regardé les nouveauté fournie par Qt 4.6 pour faire de l'opengl?

    http://qt.developpez.com/doc/4.6/qt4...#qt3d-enablers

  16. #36
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Moi j'ai une question, est-ce possible d'inclure OpenCL pour calculer la fractale avec le GPU pour une meilleure optimisation ?

  17. #37
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par marco565 Voir le message
    Moi j'ai une question, est-ce possible d'inclure OpenCL pour calculer la fractale avec le GPU pour une meilleure optimisation ?
    Temps que OpenCL n'est pas intégrer dans Qt, non.

  18. #38
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 935
    Points : 220 942
    Points
    220 942
    Billets dans le blog
    129
    Par défaut
    Comme je l'ai dis, je vais participé ( bon faut encore que je lise les règles ) mais je vais le faire de ce pas.
    Par contre, je voulais savoir, lorsque vous allez faire les notations et autres analyse de notre code, vous allez nous dire comment le rendre encore plus "beau C++". Je veux dire, que pour le moment, j'ai quelques doutes sur la beauté de mon code, et sur l'utilisation correct du C++. Donc, je vais surement profité du concours, pour essayé de m'amélioré sur ces points. Du coup, j'espère avoir une tonne de remarque sur mes points faibles .

  19. #39
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Je veux bien prendre le temps de le faire pour un certain nombre de participants. Pour les autres je ne sais pas, mais je peux trouver un peu de temps, mais ce n'est pas pour autant envisageable de le faire pour tous s'il y a 100 participants (mais ça serait assez énorme pour un premier défi)

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Bonjour, j'ai à peu près compris le principe du Mandelbrot mais j'ai plus de mal avec celui du Buddhabrot. Les explications, en "français" du site Wikipedia, que vous avez reprises' me semblent confuses (en tout cas me rendent confus). Vous allez me prendre pour un neuneu (à juste titre?!...) mais pourriez-vous décrire le Buddhabrot en pseudo-code s'il-vous-plaît?

Discussions similaires

  1. Résultats du premier défi JavaScript / AJAX en partenariat avec ENI
    Par Bovino dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 26/11/2010, 10h14
  2. Réponses: 0
    Dernier message: 25/03/2010, 11h15
  3. [défi n°8]: premiers nombres premiers
    Par javatwister dans le forum Général JavaScript
    Réponses: 41
    Dernier message: 14/06/2005, 11h22

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