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… ?
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.
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 : ==, !=, >, >=, <, <=, &&, ||…
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.
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.
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.
@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
@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
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.
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.
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
× 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.