1- Type Tcomplexe=Enregistrement a,b :reel ; Fin ;
2- Fonction ReelZ(Z :Tcomplexe) :reel ;
Debut ReelZ←Z.a ; Fin ;
Fonction ImagZ(Z :Tcomplexe) :reel ;
Debut ImagZ←Z.b ; Fin ;
Fonction ModuleZ(Z :Tcomplexe) :reel ;
Debut ModuleZ←Racine(Z.a*Z.a+Z.b*Z.b) ; Fin ;
3- Procedure SommeZ(E/ Z1,Z2 :Tcomplexe ; S/ Z :Tcomplexe) ;
Debut
Z.a←Z1.a+Z2.a ; Z.b←Z1.b+Z2.b ;
Fin ;
Procedure DiffZ(E/ Z1,Z2 :Tcomplexe ; S/ Z :Tcomplexe) ;
Debut
Z.a←Z1.a-Z2.a ; Z.b←Z1.b-Z2.b ;
Fin ;
Procedure ProdZ(E/ Z1,Z2 :Tcomplexe ; S/ Z :Tcomplexe) ;
Debut
Z.a←Z1.a*Z2.a- Z1.b*Z2.b ; Z.b← Z1.a*Z2.b+ Z1.b*Z2.a ;
Fin ;
4- Procedure ConjZ(E/ Z :Tcomplexe ; S/ ZC :Tcomplexe) ;
Debut
ZC.a←Z.a ; ZC.b← -Z.b;
Fin ;
5- Fonction EgaleZ (Z1,Z2 :Tcomplexe) :Booleen ;
Debut
Si Z1.a=Z2.a et Z1.b=Z2.b Alors EgaleZ← Vrai Sinon EgaleZ← Faux Fsi ;
Fin ;
6- Procédure EcrireZ (Z:Tcomplexe) ;
Debut
Si Z.b=0 AlorsEcrire(Z.a)
Sinon Si Z.a=0 Alors Ecrire(Z.b,’ i’)
Sinon Si Z.b>0 Alors Ecrire(Z.a,’+’,Z.b,’ i’)
Sinon Ecrire(Z.a,Z.b,’ i’)
Fsi ;
Fsi ;
Fsi ;
Fin;
7-
Algorithme Complexe ;
Type Tcomplexe=Enregistrement a,b :reel ; Fin ;
Const Z0.a=0 ; Z0.b=0 ; /*decalation d’une constante complexe nulle ;
Var TC :Tableau[1..100] de Tcomplexe ; I,N :entier ;
Z,Zs,Zp,Zm :Tcomplexe ; M,Max :reel ;
Trouve :booleen ;
/*declaration des différentes APs
- - - -
Debut
Ecrire(‘Donner N’) ;
Repeter Lire(N) ; Jusqu’à N>0 et N≤100 ;
/*lecture du tableau des complexes
Pour I←1 à N
Faire Lire(TC[I].a, TC[I].b) ;
/* on peut faire aussi
Avec T[I] Faire Lire(a,b) Fait ;
/*ou encore utiliser une variable intermédiaire de type Tcomplexe
Lire(Z.a,Z.b) ;
T[I]←Z;
Fait ;
/*Recherche du nombre ayant le plus grand module
Zm←TC[1] ;
Max←ModuleZ(Zm) ;
Pour I←2 à N
Faire
M← ModuleZ(TC[I]) ;
Si M>Max Alors Zm← TC[I] ;
Max←M
Fsi ;
Fait ;
Ecrire(‘Le nombre complexe ayant le plus grand module est :’,EcrireZ(Zm)) ;
/* Recherche du conjugué de Zm dans TC
Trouve←Faux ; I←1 ; Tantque I≤N et Non Trouve Faire
Fait ;
Trouve← EgaleZ(TC[I],ConjZ(Zm)) ; I←I+1 ;
Si Trouve Alors Ecrire(‘Len conjugué existe’ Sinon Ecrire(‘le conjugué n’’existe pas’) Fsi ;
/*calcule de la somme et du produit, on initialise Zs à Z0 et Zp à 1
Zs←Z0 ; Zp.a←1 ; Zp.b←0 ;
Pour I←1 à N
Faire
Si Non EgaleZ(TC[I],Z0)
Alors
SommeZ(Zs,TC[I],Zs) ;
ProdZ(Zp,TC[I],Zp)
Fsi; Fait ;
DiffZ(Zs,Zp,Z) ;
Si ReelZ(Z)=0 et ImagZ(Z)≠0 Alors EcrireZ(Z) Fsi ;
Fin.
Pour I←2 à N
Faire
M← ModuleZ(TC[I]) ;
Si M>Max Alors Zm← TC[I] ;
Max←M
Fsi ;
Fait ;
Ecrire(‘Le nombre complexe ayant le plus grand module est :’,EcrireZ(Zm)) ;
/* Recherche du conjugué de Zm dans TC
Trouve←Faux ; I←1 ; Tantque I≤N et Non Trouve Faire
Fait ;
Trouve← EgaleZ(TC[I],ConjZ(Zm)) ; I←I+1 ;
Fin.
Si Trouve Alors Ecrire(‘Len conjugué existe’ Sinon Ecrire(‘le conjugué n’’existe pas’) Fsi ;
/*calcule de la somme et du produit, on initialise Zs à Z0 et Zp à 1
Zs←Z0 ; Zp.a←1 ; Zp.b←0 ;
Pour I←1 à N
Faire
Si Non EgaleZ(TC[I],Z0)
Alors
SommeZ(Zs,TC[I],Zs) ;
ProdZ(Zp,TC[I],Zp)
Fsi; Fait ;
DiffZ(Zs,Zp,Z) ;
Si ReelZ(Z)=0 et ImagZ(Z)≠0 Alors EcrireZ(Z) Fsi ;
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.