Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme

Posté par
lou1100
24-10-22 à 11:22

Bonjour, j'ai cet exercice :

"Compléter cet algorithme qui prend en arguments la partie réelle et la partie imaginaire d'un nombre complexe z et qui retourne:
- "0 n'a pas d'inverse si z est égal à 0"
- " La partie réelle et la partie imaginaire de son inverse \frac{1}{z} sinon

Fonction inverse(a,b):
Si.....................
      ...........................

Sinon
        ..........................
        ..........................

Retourner........


Je vous propose cela;
Fonction inverse(a,b):
Si z = 0
      "0 n'a pas d'inverse"

Sinon
        z > 0
        "la partie réelle et la partie imaginaire de son  inverse \frac{1}{z}"


Retourner z



Les algorithmes ne sont pas mon fort, veuillez m'excuser par avance si ma proposition est absurde
Merci d'avance pour votre aide
lou1100

Posté par
mathafou Moderateur
re : Algorithme 24-10-22 à 11:56

Bonjour,

"si z = 0"
déja z n'est pas défini, seuls sont définis sa partir réelle (je suppose que c'est a) et sa partie imaginaire (b)
tout test ou calcul devra se faire à partir de a et b uniquement

et il faut calculer la partie réelle et la partie imaginaire de l'inverse (à partir de a et de b)

Posté par
carpediem
re : Algorithme 24-10-22 à 12:03

salut

et ce n'est pas parce que tu ne sais pas faire d'algo que tu as le droit d'écrire n'importe quoi comme

Citation :
z > 0
...
qu'est-ce qu'un complexe plus grand que 0 ?

Posté par
lou1100
re : Algorithme 24-10-22 à 13:29

Quand on me dit que le programme retourne "0 n'a pas d'inverse" si z est égale à 0 est-ce que je peut déduire que a et b = 0 car :
z = a + ib = 0 + i0 = 0

Et pour "la partie réelle et la partie imaginaire de son inverse \frac{1}{z}" cela signifie que a et b sont donc différents de 0 ?

Merci d'avance pour vos retours

Posté par
carpediem
re : Algorithme 24-10-22 à 13:35

1/ oui évidemment !! 0 = 0 + 0i

2/ si z = a + ib alors écrire 1/z sous forme algébrique pour obtenir ses parties réelle et imaginaire

Posté par
mathafou Moderateur
re : Algorithme 24-10-22 à 13:43

z =a +ib est nul si et seulement si a = 0 et b = 0
donc le test "si z=0" doit être remplacé par un test équivalent sur a et b (avec un "et" dans la formulation)

"la partie réelle SA VALEUR et la partie imaginaire SA VALEUR de son inverse"
il faut les calculer
ce n'est pas de l'algorithme, c'est des maths pures
comment calculer la partie réelle et la partie imaginaire de 1/(a+ib)

ensuite on écrit ça dans l'algorithme
on ne renvoie pas du baratin inutile, on renvoie le résultat du calcul

Posté par
lou1100
re : Algorithme 24-10-22 à 14:13

mathafou @ 24-10-2022 à 13:43

z =a +ib est nul si et seulement si a = 0 et b = 0
donc le test "si z=0" doit être remplacé par un test équivalent sur a et b (avec un "et" dans la formulation)

"la partie réelle SA VALEUR et la partie imaginaire SA VALEUR de son inverse"
il faut les calculer
ce n'est pas de l'algorithme, c'est des maths pures
comment calculer la partie réelle et la partie imaginaire de 1/(a+ib)

ensuite on écrit ça dans l'algorithme
on ne renvoie pas du baratin inutile, on renvoie le résultat du calcul

Posté par
lou1100
re : Algorithme 24-10-22 à 14:14

excusez-moi, fausse manipulation !

Posté par
lou1100
re : Algorithme 24-10-22 à 14:25

Pour la première partie ?


    Fonction inverse (a,b):
    Si a = 0 et b = 0
         a + ib = 0

Posté par
mathafou Moderateur
re : Algorithme 24-10-22 à 14:53


Fonction inverse (a,b):
   Si a = 0 et b = 0
     renvoyer "0 n'a pas d'inverse"  (c'est dans l'énoncé cette phrase)
   Sinon
             calcul à faire ...
     (et en renvoyer le résultat)
   Fin

Posté par
lou1100
re : Algorithme 24-10-22 à 15:15

Je réfléchis à  cela quand je rentre chez moi et je vous poste ma réponse !
Merci pour votre patience

Posté par
lou1100
re : Algorithme 24-10-22 à 18:17

Je pense que le programme complet donne;
Fonction inverse (a,b):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
a + ib = 1/(a+ib)
1/z
Retourner a et b

Posté par
carpediem
re : Algorithme 24-10-22 à 18:21

as-tu lu ce qu'on a écrit :

carpediem @ 24-10-2022 à 13:35

2/ si z = a + ib alors écrire 1/z sous forme algébrique pour obtenir ses parties réelle et imaginaire
et
mathafou @ 24-10-2022 à 13:43


"la partie réelle SA VALEUR et la partie imaginaire SA VALEUR de son inverse"
il faut les calculer

ce n'est pas de l'algorithme, c'est des maths pures
comment calculer la partie réelle et la partie imaginaire de 1/(a+ib)

Posté par
lou1100
re : Algorithme 24-10-22 à 19:46

1/z sous forme algébrique = 1/a + ib
La partie réelle = 1/a et la partie imaginaire = 1/b
Comment est-ce qu'on doit "calculer la partie réelle et la partie imaginaire" ?

Posté par
carpediem
re : Algorithme 24-10-22 à 19:53

ha bon !!

d'une part il manque des parenthèses ...

d'autre part tu penses que 1/ (2 + 3) = 1/2 + 1/3

ne sais-tu pas calculer la forme algébrique du complexe 1/(2 + 3i) ?

Posté par
lou1100
re : Algorithme 24-10-22 à 20:29

La forme algébrique du complexe 1/(2+3i) = \frac{1(2+3i)}{(2+3i)(2-3i)} = \frac{2-3i}{13} = \frac{2}{13} - \frac{3}{13}i

Donc si on suit cet exemple, La forme algébrique du complexe 1/(a+ib) =  \frac{a}{a²+b²}- \frac{bi}{a² + b²}

Posté par
carpediem
re : Algorithme 24-10-22 à 20:31

ha ben enfin !!!

il y a cependant une erreur (de signe) dans le premier calcul ...

Posté par
lou1100
re : Algorithme 24-10-22 à 21:09

\frac{1(2-3i)}{(2+3i)(2-3i)}
c'est mieux comme ça !

Donc pour notre algorithme on a finalement :
Fonction inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon 1/(a +ib) = a/(a² + b²) - b²/a² +b²
renvoyer la partie réelle et la partie imaginaire
Retourner a et b

Posté par
carpediem
re : Algorithme 24-10-22 à 21:55

lou1100 @ 24-10-2022 à 21:09

\frac{1(2-3i)}{(2+3i)(2-3i)}
c'est mieux comme ça !

Donc pour notre algorithme on a finalement :
Fonction inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon 1/(a +ib) = a/(a² + b²) - b²/a² +b²
renvoyer la partie réelle et la partie imaginaire
Retourner a et b
ce qui est en bleu ne va pas ...

Posté par
lou1100
re : Algorithme 24-10-22 à 22:09

Même si vous m'avez déjà beaucoup aidé est-ce que vous pourriez me donner juste une petite dernière piste pour que je puisse modifier la partie bleu car là je sèche

Posté par
carpediem
re : Algorithme 25-10-22 à 09:45

non car il est important que tu suives la correction que ton prof te donnera ...

mais par contre tu peux ouvrir tes livres de math ou d'algorithmique ou chercher sur le net pour apprendre par toi-même car cela t'enrichira plus ...

Posté par
lou1100
re : Algorithme 25-10-22 à 10:33

Bonjour, je comprends votre réponse.
J'ai réfléchis et je pense être sur le bon chemin

Fonction  inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
a prend la valeur a²/(a²+b²)
b prend la valeur b²/(a²+b²)
Retourner a et b

Posté par
carpediem
re : Algorithme 25-10-22 à 10:48

ok c'est beaucoup mieux ...

mais il reste une erreur grave : tu modifies la valeur de a dans la "boucle sinon" ...

Posté par
lou1100
re : Algorithme 25-10-22 à 11:13

peut-être
a prend la valeur 1/(a+ib) ?

Posté par
Leile
re : Algorithme 25-10-22 à 11:30

carpediem semble absent :

"peut-être
a prend la valeur 1/(a+ib) ?"    non, ce n'est pas ça.

en entrée de l'algo, tu as    a et   b   ,   mais ton calcul change la valeur de a, c'est ça qui est gênant.

à partir de   a+ib,    calcules plutôt   A + iB.

Posté par
lou1100
re : Algorithme 25-10-22 à 11:39

D'accord donc il est préférable d'écrire
A prend la valeur A²/A²+B²
B prend la valeur B²/A²+B²

Posté par
mathafou Moderateur
re : Algorithme 25-10-22 à 11:39

et pour éviter des fautes de frappe sur la casse des lettres , j'aurais même dit C + iD
1/(a+ ib) = C+iD
de toute façon , même "mathématiquement" 1/(a+ib) = a+ib ce serait du n'importe quoi.
il y a suffisamment de lettres dans l'alphabet pour appeler différemment des choses différentes.

Posté par
Leile
re : Algorithme 25-10-22 à 11:49

"D'accord donc il est préférable d'écrire
A prend la valeur A²/A²+B²
B prend la valeur B²/A²+B²"  

tu ne comprends pas :  les noms des variables, c'est comme des petites boites qui ne peuvent contenir qu'une valeur à la fois.

on te donne deux boites : a et b
tu as besoin de garder les valeurs de ces boites pendant tout le temps, elles ne doivent pas changer.

quand tu écris     a =  a²/(a²+b²)    tu changes la valeur dans  la boite a, alors que tu en as besoin  pour le calcul suivant.
solution : au lieu de changer  la valeur de a, ouvre une autre boite que tu appelles A (ou C, ou R1, comme tu veux), tu y ranges le résultat de ton calcul et "a" n'est pas modifié.
A =  a²/(a²+b²)

de même pour b et B

c'est plus clair ?

Posté par
carpediem
re : Algorithme 25-10-22 à 11:50

lou1100 @ 25-10-2022 à 11:39

D'accord donc il est préférable d'écrire
A prend la valeur A²/A²+B²
B prend la valeur B²/A²+B²
et ut recommences !!!
non seulement la valeur de A change mais en plus les formules sont fausses (voir ton msg plus bas)

puisque la réponse a été donnée ...
mathafou @ 25-10-2022 à 11:39

il y a suffisamment de lettres dans l'alphabet pour appeler différemment des choses différentes.
donc
lou1100 @ 24-10-2022 à 20:29

Donc si on suit cet exemple, La forme algébrique du complexe 1/(a+ib) =  \frac{a}{a²+b²}- \frac{bi}{a² + b²} \red = c + id

Posté par
lou1100
re : Algorithme 25-10-22 à 12:46

A l'aide de vos informations, le programme donne donc:
Fonction  inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
A prend la valeur a²/(a²+b²)
B prend la valeur b²/(a²+b²)
Retourner A et B

Posté par
Leile
re : Algorithme 25-10-22 à 13:02

Oui  !!  

Posté par
mathafou Moderateur
re : Algorithme 25-10-22 à 13:20

NON
formules toujours fausses


lou1100 @ 24-10-2022 à 20:29

... 1/(a+ib) = \dfrac{\red a}{a²+b²}- \dfrac{{\red b}}{a² + b²}\,i

ces formules sont justes

\dfrac{{\red a^2}}{a²+b²} et {\red+}\dfrac{{\red b^2}}{a² + b²} est faux

Posté par
lou1100
re : Algorithme 25-10-22 à 13:31

Mince...je rectifie le tir
Fonction  inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
A prend la valeur a/(a²+b²)
B prend la valeur b/(a²+b²)
Retourner A et B

Posté par
mathafou Moderateur
re : Algorithme 25-10-22 à 13:34

presque :

B prend la valeur moins b/(a²+b²)

Posté par
Leile
re : Algorithme 25-10-22 à 16:31

en effet, je n'avais pas vu qu'il manquait le signe -   pour B, désolée lou1100

Posté par
mathafou Moderateur
re : Algorithme 25-10-22 à 16:33

et que les numérateurs étaient intempestivement au carré

Posté par
lou1100
re : Algorithme 25-10-22 à 18:30

La version finale est donc :
Fonction  inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
A prend la valeur a/(a²+b²)
B prend la valeur moins b/(a²+b²)
Retourner A et B

Je vous remercie pour votre grande aide ainsi que votre patience, maintenant je pense avoir bien compris le principe.

Je vous souhaite une belle soirée
lou1100

Posté par
carpediem
re : Algorithme 25-10-22 à 19:13

lou1100 @ 25-10-2022 à 18:30

La version finale est donc :
Fonction  inverse ( a,b ):
Si a = 0 et b = 0
renvoyer "0 n'a pas d'inverse"
Sinon
A prend la valeur a/(a²+b²)
B prend la valeur moins b/(a²+b²)  peut-être mettre simlement le signe -
Retourner A et B
pour ma part j'utiliserai simplement les lettres c et d pour éviter des majuscules (non directement accessibles (en une touche))

bonne soirée à toi aussi



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !