Annonce

Réduire
Aucune annonce.

Créer ses fonctions et sa bibliothèque en C++ ?

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Créer ses fonctions et sa bibliothèque en C++ ?

    bonjour à tous!

    serait-il possible d'avoir des infos pour savoir comment on crée sa propre bibliothèque, et donc comment créer une fonction qui nous intéresse.

    j'aimerai bien avoir un exemple, comme la création de la fonction (pour commencer): retour à la ligne, ou afficher (mais pas l'addition et autre raisonnement mathématique qu'il suffit d'écrire).

    merci d'avance
    polo

  • #2
    quel langage ? à quoi cette lib servirait-elle ? etc. faut beaucoup + d'infos si tu veux une réponse.
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

    Commentaire


    • #3
      pour l'instant je me contente de c++
      je suis débutant, je n'ai pas encore de projet de création de librairie
      mais je voudrai savoir comment les créateurs de librairie travaillent, et être capable de créer des fonctions par moi-même, sans passer par une librairie déjà existante

      par exemple, la fonction: afficher à l'écran , en c++ : refaire la fonction cout par moi même en fait

      Commentaire


      • #4
        Envoyé par Polo29
        Par exemple, la fonction: afficher à l'écran , en c++ : refaire la fonction cout par moi même en fait
        Dans ce cas tu dois créer une librairie en assembleur. Afficher un message à l'écran c'est du bas niveau.
        Maintenant s'affranchir d'une commande comme celle-ci, c'est un manque de connaissances !
        Ça ne sert à rien.

        Quand je programme, j'ai l'habitude de réinventer des libraires mais seulement quand elles sont complexes.
        Par exemple pour la cryptographie.

        Ma démarche est la suivante (ça semble être le sens de ta question):
        -Je démonte le script ou je lis de la documentation sur le sujet
        -Après avoir bien compris l'algorithme, je pose mes idées sur une feuille de brouillon
        -Puis finalement je code une fois en vrac.
        -Je la retape une seconde fois pour qu'elle soit optimisée.
        Dernière modification par Yarflam, 21 février 2013, 13h28.
        ~ Yarflam ~

        ❉ L'Univers se dirige vers son ultime perfection ❉

        Commentaire


        • #5
          oui je sais bien que c'est du bas niveau, mais c'est le mien! oui évidemment la librairie que je veux créer maintenant n'est pas très complexe..

          mon problème est le suivant: je débute dans l'informatique (premiers cours de base en école d'ingé) et je me dis: celui qui est vraiment bon, et libre!(capable de créer les programmes qu'il veut même si personne n'y a pensé avant) est celui qui sait créer ses propres librairies

          je suis donc allé chercher des infos à ce sujet et je suis tombé sur:
          http://www.siteduzero.com/informatiq...ec-code-blocks

          si tu vas voir, tu tomberas sur l'addition et la multiplication au carré,et pour la cryptographie, c'est aussi des math, que je suis capable de comprendre! mon problème ne se situe pas là pour l'instant.

          je sais qu'il faut comprendre et écrire son algorithme, puis son code. mais je ne comprends pas comment on s'y prend lorsque l'action demandée à l'ordinateur n'est pas un calcul ou l'exécution d'un algorithme (d'où la fonction écrire comme exemple, mais on peut aussi prendre lire, sauter une ligne ou encore laisser un espace.. avant de passer à plus intéressant).

          je me doute bien que c'est aussi un algorithme, mais je ne le connais pas, et c'est d'autant plus frustrant que c'est "du bas niveau"

          Commentaire


          • #6
            Envoyé par polo29
            oui je sais bien que c'est du bas niveau, mais c'est le mien!
            http://goo.gl/zrzAw
            sigpic

            Cyprium Download Link

            Plus j'étudie plus j'me rends compte que je n'sais rien.

            †|

            Commentaire


            • #7
              Envoyé par SAKAROV Voir le message
              C'est pas bien de se moquer
              Il parle d'un langage de bas niveau (asm), pas de ton niveau.

              Commentaire


              • #8
                Envoyé par polo29 Voir le message
                je sais qu'il faut comprendre et écrire son algorithme, puis son code. mais je ne comprends pas comment on s'y prend lorsque l'action demandée à l'ordinateur n'est pas un calcul ou l'exécution d'un algorithme (d'où la fonction écrire comme exemple, mais on peut aussi prendre lire, sauter une ligne ou encore laisser un espace.. avant de passer à plus intéressant).
                Tu sais comment fonctionne ton ordinateur ?!

                BINAIRE (-> Processeur x64 x86) -> Architecture de fichiers UNIX/WINDOWS -> Système d'exploitation DISTRIB LINUX/WINDOWS/MAC OS -> Environnement graphique KDE/GNOME/AQUA/EXPLORER...

                Pour pouvoir afficher un message dans le plus bas niveau, la solution serait d'ordonner à la carte graphique via l'environnement graphique d'afficher tel pixel à l'écran. A ce niveau là, je ne pourrai pas t'aider et ça devient tout de suite des mathématiques de malade. Il te faudrait un bon nombre de ligne pour juste afficher un A, alors imagines les autres lettres ...
                Tu peux oublier

                NB: Je ne pense pas m'être trompé dans le schéma. Mais si c'était le cas que quelqu'un me le signale.
                ~ Yarflam ~

                ❉ L'Univers se dirige vers son ultime perfection ❉

                Commentaire


                • #9
                  Pour appuyer le discours de Yarflam, je t'expose ici le développement mathématique nécessaire pour l'affichage d'un simple '-' :

                  C = (ci,j)

                  C = (0 0 0 0
                  0 1 1 0
                  0 1 1 0
                  0 0 0 0)

                  C(i,j) = (c2,2,c2,3,c3,2,c3,3)

                  (vec)u(ci)i∈[1,n]

                  TvC = [(x2,2+c2,2)+(x2,3+c2,3)+((x3,2+c3,2)+((x3,3+c3,3)]

                  ⟨i|j⟩ = 0 ; ⟨j|k⟩ = 0 ; ⟨k|i⟩ = 0

                  OM(TvC) = √(x²+y²+0)

                  Avec (nx,ny,nz) coordonnées de (vec)N :
                  (n²x+n²y+n²z) = ||(vec)N||² = 1
                  (vec)V = ((vec)N,φ)

                  (vec)V = (x',y',0) = ((cos φ - sin φ), (sin φ cos φ), (0 0))

                  Afficher (vec)V.
                  Ex-membre Hackademiciens.

                  Commentaire


                  • #10
                    merci pour les réponses, mais j'aurai besoin de quelques précisions svp:

                    TvC = [(x2,2+c2,2)+(x2,3+c2,3)+((x3,2+c3,2)+((x3,3+c3,3)]
                    Tv est une matrice? ou v une opération que je ne connais pas encore.. le résultat est une matrice? de quelle taille?

                    ⟨i|j⟩ = 0 ; ⟨j|k⟩ = 0 ; ⟨k|i⟩ = 0 qu'est-ce que ça signifie? ⟨ | ⟩ représente un produit scalaire non?
                    il faut des vecteurs dedans non?

                    pour la définition de la distance OM(TvC), TvC est une matrice 1,3? j'aurai dit 1,1 ou 1,4

                    que sont exactement N et phi par rapport à C et Tv? pourquoi N serait unitaire?
                    pourquoi (cos φ - sin φ) et (sin φ cos φ)?

                    pour finir, n'est-il pas curieux d'utiliser afficher à la fin alors que c'est la fonction que je cherche à créer?

                    Commentaire


                    • #11
                      Tv est une matrice? ou v une opération que je ne connais pas encore.. le résultat est une matrice? de quelle taille?
                      Tv est une opération de translation locale. Au lieu d'utiliser directement une matrice de translation comme on le ferait pour une matrice d'ordre supérieur, on extrait directement les points qui nous intéresse et on leur applique une translation positive manuellement. Le résultat peut être agencé sous forme matricielle pour les besoins du développement. Ce qui nous donne plus bas une distance pour une matrice 1,1.

                      ⟨i|j⟩ = 0 ; ⟨j|k⟩ = 0 ; ⟨k|i⟩ = 0 qu'est-ce que ça signifie?
                      C'est une précondition du repère orthonormé : les trois vecteurs unitaires sont orthonormaux. Ici, le signe "vecteur" n'est pas nécessaire.

                      que sont exactement N et phi
                      Des opérateurs rotationnels planes.

                      pourquoi (cos φ - sin φ) et (sin φ cos φ)?
                      Opération de rotation. A noter qu'ici elle est matricielle, mais nous aurions pu opérer de la même manière que pour la translation d'axe x, d'ailleurs cela aurait été plus cohérent.

                      pour finir, n'est-il pas curieux d'utiliser afficher à la fin alors que c'est la fonction que je cherche à créer
                      Le développement présuppose que tu sais déjà comment afficher une opération mathématique ; ici le développement expose une fonction de dessin, qui est de toutes façons inhérente à ta fonction afficher.


                      Si tu veux de plus amples informations et des précisions sur ces développements mathématiques et les développements concernant tous les autres caractères, et notamment la façon d'envisager une fonction d'affichage, je t'invite à lire la documentation POSIX (IEEE 1003) qui explique tout ceci.
                      Dernière modification par MadHatter, 02 avril 2013, 11h47.
                      Ex-membre Hackademiciens.

                      Commentaire


                      • #12
                        Envoyé par polo29 Voir le message
                        serait-il possible d'avoir des infos pour savoir comment on crée sa propre bibliothèque, et donc comment créer une fonction qui nous intéresse.

                        j'aimerai bien avoir un exemple, comme la création de la fonction (pour commencer): retour à la ligne, ou afficher (mais pas l'addition et autre raisonnement mathématique qu'il suffit d'écrire).
                        Si tu cherches le pourquoi du comment une fonction est réaliser, tu peux par exemple t'amuser à te refaire une lib perso en C (.a), dans laquelle tu t'amuses à recoder par exemple (putnbr, getnbr, getline, etc..)

                        Commentaire

                        Chargement...
                        X