Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal
Pascal Forum d'entraide sur la programmation en langage Pascal et sur les EDI. Avant de poster -> la F.A.Q Pascal, les cours
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/11/2012, 21h37   #1
roobi
Invité de passage
 
Femme
Inscription : mai 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2012
Messages : 8
Points : 0
Points : 0
Par défaut Calcul de l'argument d'un nombre complexe

Salut... Aidez-moi svp, j'ai un exercice que j'ai pas pu résoudre.
Citation:
Exercice :
écrire un sous-programme chargé de calculer l'argument d'un nombre complexe ?
Alors j'ai déclaré le type complexe :
Code :
1
2
3
4
 
type complexe=record
                     reel,imaginaire:real;
              end;
Rappelons que l'argument principal d'un nombre complexe z=a+ib non nul est un angle 'tita' tel que
  • cos(tita)= a/ module(z) et
  • sin(tita)= b/module(z)
Le résultat du programme est la valeur de "tita" ???
Aidez-moi svp
roobi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 14h09   #2
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 358
Points : 39 358
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour,

Pour pouvoir t'aider, il faut que l'on sache où tu rencontres des problèmes : est-ce dans la mise en oeuvre des fonctions trigonométriques ou ailleurs ?

__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 22h30   #3
roobi
Invité de passage
 
Femme
Inscription : mai 2012
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2012
Messages : 8
Points : 0
Points : 0
Citation:
Envoyé par Alcatîz Voir le message
Bonjour,

Pour pouvoir t'aider, il faut que l'on sache où tu rencontres des problèmes : est-ce dans la mise en oeuvre des fonctions trigonométriques ou ailleurs ?

mon problème est comment trouver "tita" on connaissant son sinus et cosinus
alors mon problème est mathématique en premier temps
roobi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2012, 01h25   #4
Modulpro
Membre habitué
 
Avatar de Modulpro
 
Homme Emilien
Étudiant
Inscription : octobre 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Emilien
Âge : 19
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 69
Points : 146
Points : 146
Bonsoir

L'angle que vous cherchez (qui au passage est désigné par la lettre grecque θ qui s'écrit "thêta") vérifie
Citation:
sin(θ) = Im(z) / |z|
cos(θ) = Re(z) / |z|
Ainsi, en faisant le quotient des deux égalité vous obtenez
Citation:
tan(θ) = Im(z) / Re(z)
Il suffit donc de prendre l’arctangente du quotient de la partie imaginaire sur la partie réelle pour obtenir θ modulo π. Pour obtenir la valeur exacte, il faut étudier le signe des deux termes du quotient. Il peut être utile pour cela de raisonner avec un cercle trigonométrique (si Re(z) < 0, θ = arctan(Im(z) / Re(z)) ± π) : cette subtilité vient du fait que la fonction tangente n'est bijective que sur sa restriction à ]-π/2 ; π/2[, ce qui implique qu’arctangente ne revoie que des valeurs dans cet intervalle. Plus de détail ici.
Modulpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/12/2012, 17h44   #5
EtherOS
Membre habitué
 
Avatar de EtherOS
 
Homme Lionel Tidjon
Etudiant Polytechnicien
Inscription : juillet 2012
Messages : 51
Détails du profil
Informations personnelles :
Nom : Homme Lionel Tidjon
Localisation : Cameroun

Informations professionnelles :
Activité : Etudiant Polytechnicien
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2012
Messages : 51
Points : 110
Points : 110
Par défaut Proposition

{Attention: ce code n'est pas testé et peut contenir des erreurs.}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Program CalculAngle(input,output);
Uses Math,Crt;
Type TComplexe = record
             RealPart : real;
             ImgPart : real;
         End;
Var z: Tcomplexe;

Fonction Module (var InputZ: Tcomplexe) : real;
Begin
       Module := sqrt(sqr(InputZ.ImgPart)+sqr(InputZ.RealPart));
End;

Procedure Angle (InputZ: Tcomplexe;var OutputAngle: real );
Begin
       OutputAngle := asin(InputZ.ImgPart / Module(InputZ));
End;

Var theta : real;
Begin
       Textbackground(1);
       clrscr;
       Textcolor(10);
       Writeln("Entrer un complexe :");
       Textcolor(14);
       Gotoxy(10,3);Readln(z.RealPart,z.ImgPart);
       Angle(z,theta);
       Textcolor(11);
       Gotoxy(10,5);Writeln(#205,"Votre Resultat :",#205);
       Textcolor(14);
       Gotoxy(10,7);Writeln("THETA = ", theta:0:3);
       Readln;
End.
EtherOS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2012, 01h49   #6
Modulpro
Membre habitué
 
Avatar de Modulpro
 
Homme Emilien
Étudiant
Inscription : octobre 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Emilien
Âge : 19
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 69
Points : 146
Points : 146
Bonsoir,

Le code proposé ci-dessus utilise le fait que sin(θ) = Im(z) / |z|, relation que l'on peut retrouver facilement de manière graphique dans le plan complexe. Cependant, cette méthode présente l'inconvénient de devoir calculer le module pour trouver l'argument. Elle ne résout pas non plus le problème posée par la fonction arctangente, puisqu'elle ne permet d'obtenir que des valeurs dans [-π/2 ; π/2]. Il faut donc distinguer les cas en fonction du signe de la partie réelle pour avoir un résultat correcte :
Citation:
Pour a = arcsin( Im(z) / |z|) on a
- si Re(z) >= 0, alors θ = a
- si Re(z) < 0, alors θ = π - a
De même avec la tangente :

Citation:
Pour b = arctan( Im(z) / Re(z)) on a
- si Re(z) >= 0, alors θ = b
- si Re(z) < 0, alors θ = b ± π
Cette dernière méthode ne prend cependant pas en compte le cas ou Re(z) = 0.
Ces deux méthodes peuvent se retrouver à l'aide du cercle trigonométrique et se démontrent en résolvant le système trigonométrique complet :
sin(θ) = Im(z) / |z|
cos(θ) = Re(z) / |z|
qui n'admet qu'une unique solution à 2π près, contrairement aux équations faisant intervenir les fonctions réciproques.
Modulpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h51.


 
 
 
 
Partenaires

Hébergement Web