On veut écrire un programme permettant de résoudre une équation du second degré à coefficients complexes. Les formules sont les mêmes que dans le cas réel mais il faut calculer dans C ce que ne sait pas faire Turbo-Pascal. Il faut donc le lui apprendre en chargeant la bibliothèque de sous-programmes suivante appelée COMPLEXE. Cela s'obtient en rjoutant :
uses COMPLEXE;
avant les déclarations.
Voilà le contenu de cette unité COMPLEXE :
unit complexe;
interface (* saisie d'un nombre complexe *)
(* ecriture d'un nombre complexe *)
(* module d'un nombre complexe *)
(* argument d'un nombre complexe *)
(* somme de deux complexes *)
(* produit de deux complexes *)
(* inverse d'un nombre complexe non nul *)
implementation (* saisie de a+ib *)
(* ecriture d'un nombre complexe *)
(* module d'un nombre complexe *)
(* argument d'un nombre complexe *)
(* somme de deux complexes *)
(* produit de deux complexes *)
(* inverse d'un complexe non nul *)
end. |
Ecrire le programme général utilisant ces procédures et permettant la résolution d'une (ou plusieurs) équations avec le coefficient de x au carré non ul.
Exemple : x*x-(3+2i)*x+(1+3i)=0
====> x1=1+i et x2=2+i
Ainsi BONJOUR
devient COQNTAY
et IL
FAIT BEAU devient JN JFOA KOLG
Ecrire un programme qui propose à l'utilisateur
de laisser invariant, de coder ou de décoder le message de son choix,
ce dernier ne pouvant dépasser 255 caractères qui est la
longueur maximale d'une chaîne en Turbo-Pascal.
Le programme devra utiliser :
- un type mot=string[255]NB1 : La fonction SUCC(c) où c est de type char retourne le caractère qui suit c dans la liste des caractères rangés selon l'ordre ASCII. La fonction PRED(c) retournje le caractère qui précède c.
- une fonction CIRC(X:char):char; qui associe à la lettre majuscule X sa transformée par permutation circulaire
(A-->B, B-->C, ... Z-->A)
- une fonction CIRCINV réciproque de la précédente
- une procédure CODE(m1:mot;Var m2:mot); qui code lemessage en m1 en m2
- une procédure DECODE(m1:mot;Var m2:mot); qui décode lemessage en m1 en m2
NB2 : Prévoir la possibilité de changer de message sans
sortir du programme.