Partage
  • Partager sur Facebook
  • Partager sur Twitter

Zero vaut quelque chose, tout le reste vaut zero

    19 décembre 2011 à 17:42:14

    Citation : Tunisiano

    C'est pas une fonction continue.
    C'est un peu nimporte quoi.

    Tu as une dent contre les fonctions non continues ?
    minosubb fait ce qu'il veut, s'il a envie d'écrire une fonction pour faire ceci ou cela, c'est son droit.

    @ minosubb : D'ailleurs, je serais curieux de savoir pourquoi tu demandes ça… ?
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2011 à 12:38:27

      La raison de cette fonction est que pour un traitement informatique, avec une variable x qui va de 1 à 10 par increment de 1 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) je dois prendre en compte une partie de la formule quand la variable vaut 1, et ne pas la prendre quand elle est > 1.

      Valeur finale = A + B si x = 1
      Valeur finale = A si x > 1

      Maintenant avec la formule qui fait que Zero = 1 et le reste = 0, je peux faire autrement que mettre des if else (pour le plaisir de changer un peu des conventions). En remplacant x par x-1 afin que mon point 'zero' devienne le '1'

      Je peux faire :

      <math>\(Valeurfinale = A + B*\frac{1-\sqrt{(x-1)^2}+\sqrt{(\sqrt{(x-1)^2}-1)^2}}{2}\)</math>


      P.S. C'est quoi une fonction continue?

      Et si a la base je demandais avec des regles simples tel que addition, ..., C'est que je programme en COBOL via l'instruction compute et que en fonction des niveau d'installation du langage, toutes les fonctions n'existent pas obligatoirement, comme certaines formules que j'ai vu avec tout pleins de caracteres en grec ancien. alors que le + - * et / eux sont present sur tous les environnements et langages.
      • Partager sur Facebook
      • Partager sur Twitter
        20 décembre 2011 à 12:52:17

        Je me doutais un peu que c'était pour de l'informatique. Dans ce cas, il y a une solution plus simple et bien plus efficace (pas de calculs complexes) : utiliser les opérations logiques.

        Dans ton cas, ça donnerait ceci : <math>\(C = A + B\times(x=1)\)</math>

        <math>\((x=1)\)</math> est l'opérateur logique renvoyant un booléen, c'est-à-dire 1 si la condition est vraie, 0 si elle est fausse.
        Son écriture dépend du langage que tu utilises. Dans beaucoup de langages, c'est le == (double signe égal, pour le différencier de =, égal d'affectation). De façon générale, les opérateurs logiques sont ceux que tu utilises habituellement dans les if, for et compagnie : ==, !=, >, >=, <, <=, &&, ||;)
        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2011 à 19:38:11

          ou de façon plus propre :
          Valeur_finale = A+ B
          for x=2 to 10 :
             Valeur_finale = A
          finpour

          Au passage, je t'avais posé la question dans un de mes messages précédents... Cela aurait évité pas mal de remue ménage/méninge si tu nous avais expliqué ce que tu voulais faire depuis le début ce que tu veux faire. Penses-y la prochaine fois.
          • Partager sur Facebook
          • Partager sur Twitter
            20 décembre 2011 à 19:44:24

            Citation : sebsheep

            ou de façon plus propre :

            Valeur_finale = A+ B
            for x=2 to 10 :
               Valeur_finale = A
            finpour

            Je ne comprends pas cet algo. Mais si on commence à en écrire un, alors pourquoi se fatiguer ?
            si x=1 alors
               valeur ← A + B
            sinon
               valeur ← A
            fin si
            Son but était justement de condenser en une seule bêêêêêle formule en évitant les mots-clé. Je suis d'accord c'est pas forcément très propre, mais c'est parfois bien pratique.
            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2011 à 20:07:12

              Vu qu'il effectue un boucle avec x qui va de 1 à 10 et que le cas x=1 est particulier, autant le traiter AVANT la boucle et éviter des tests disgracieux dans le corps de boucle.
              • Partager sur Facebook
              • Partager sur Twitter
                20 décembre 2011 à 20:27:26

                Ah oui d'accord, j'avais pas fait attention à la description qu'il avait donnée de son algorithme.
                • Partager sur Facebook
                • Partager sur Twitter
                  20 décembre 2011 à 23:28:47

                  @minosubb : je n'avais pas vu que tu programmais en ... COBOL... Mais pourquoi tant de haine ? Tu as été forcé par ton grand père, nostalgique du code spaghetti ?

                  Sinon, une fonction continue, pour faire simple, c'est une fonction dont le graphe peut se tracer "sans lever le crayon". Tu peux aller voir là pour des beaux dessins : http://www.google.fr/url?sa=t&rct=j&q='fonction%20continue%22%20&source=web&cd=7&ved=0CGEQFjAG&url=http%3A%2F%2Fwww.lyc-plaineneauphle-trappes.ac-versailles.fr%2FIMG%2Fpdf%2Fcont.pdf&ei=WgvxTu_AIYT14QSVn5TIAQ&usg=AFQjCNEvdubgfWYxUsPhYqoixj6iYkYoKg&sig2=WlMliz0QOSi1SRFj1QxH6A , laisse tomber la partie 1, la partie 2 sera la plus utile pour toi je pense si tu es intéressé par avoir une idée de ce qu'est (ou n'est pas) la continuité. Mais ca ne t'aidera en rien à résoudre ton problème :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    20 décembre 2011 à 23:33:57

                    Citation : sebsheep

                    @minosubb : je n'avais pas vu que tu programmais en ... COBOL... Mais pourquoi tant de haine ? Tu as été forcé par ton grand père, nostalgique du code spaghetti ?

                    Sinon, une fonction continue, pour faire simple, c'est une fonction dont le graphe peut se tracer "sans lever le crayon". Tu peux aller voir là pour des beaux dessins : http://www.google.fr/url?sa=t&rct=j&q='fonction%20continue%22%20&source=web&cd=7&ved=0CGEQFjAG&url=http%3A%2F%2Fwww.lyc-plaineneauphle-trappes.ac-versailles.fr%2FIMG%2Fpdf%2Fcont.pdf&ei=WgvxTu_AIYT14QSVn5TIAQ&usg=AFQjCNEvdubgfWYxUsPhYqoixj6iYkYoKg&sig2=WlMliz0QOSi1SRFj1QxH6A , laisse tomber la partie 1, la partie 2 sera la plus utile pour toi je pense si tu es intéressé par avoir une idée de ce qu'est (ou n'est pas) la continuité. Mais ca ne t'aidera en rien à résoudre ton problème :p


                    Même si je pense que c'était ironique, on peut "bien" coder en COBOL.
                    D'ailleurs c'est encore largement utilisé dans la finance grâce à la gestion des nombres à virgule fixe. Tant que ça coûte moins cher de faire la maintenance de ces softwares plutôt que d'en faire de nouveau, le COBOL a encore quelques jours devant lui.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 décembre 2011 à 11:53:53

                      Pour ce qui etait de la formule du ZERO=1 sinon 0 c'etait juste pour donner un petit peu de piquand a ce code simple et faire refflechir ceux qui reprendront le truc. Car le truc du Si x=1 alors Multiple = 1 sinon multiple = 0. puis resu = A + B * multiple. C'etait codé depuis longtemps. Mais le remplacer par une petite formule que si je tombais dessus, je me dirait 'ptain c'est quoi ce truc!!!!!' Ca me tentait assez.

                      Et Oui, je suis programeur COBOListe + assembleur depuis pres de 18 ans, et fier de l'etre. C'est ce qui paye les factures et le reste. Et de plus, j'aime bien ce langage. Il est des plus simple et permet de se faire plaisir dans la partie algorythmique.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 décembre 2011 à 14:08:38

                        Au passage, ton <math>\(x\)</math> est un entier naturel (0,1,2,3,4,...), donc tu n'as pas besoin d'en prendre la racine du carré dans ta formule (celle là: <math>\(\frac{1-\sqrt{x^2}+\sqrt{(\sqrt{x^2}-1)^2}}{2}\)</math>); tu peux mettre ton <math>\(x\)</math> directement, ce qui te donne.

                        <math>\(\frac{1-x+\sqrt{(x-1)^2}}{2}\)</math>


                        Après, dans l'optique de surprendre ceux qui reliront ton code, la racine du carré de <math>\(x\)</math> apporte son petit effet aussi, c'est sûr ;)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Zero vaut quelque chose, tout le reste vaut zero

                        × 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