Aide!!!!!! (Turbo Pascal 1.5) SVP
ghost1
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suiis nouveau dans le domaine de programmation avec Turbo Pascal.
Je veux un algrithme traduisé en Pascal qui sert à solver des équations du duxième degré et de troisième degré ,aussi un autre qui sert à trouver le P.G.C.D et le P.P.C.M.
Et merci,
Je suiis nouveau dans le domaine de programmation avec Turbo Pascal.
Je veux un algrithme traduisé en Pascal qui sert à solver des équations du duxième degré et de troisième degré ,aussi un autre qui sert à trouver le P.G.C.D et le P.P.C.M.
Et merci,
A voir également:
- Aide!!!!!! (Turbo Pascal 1.5) SVP
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Adobe audition 1.5 - Forum Création et production musicale
- Activer mode turbo processeur amd ✓ - Forum Carte-mère/mémoire
5 réponses
pour le deuxieme degre:soiit trois variable a,b,c,d,x1,x2 de type reel:
if(a+b+c=0) then
begin
x1:=1;
x2:=a div c;
end;
else
begin
if(a-b+c=0)then
begin
x1:=-1;
x2:=(-a) div c;
end;
else
begin
d:=(b*b)-(4*a*c);
if(d>0) then
begin
ici placer la valeur pour delata superieur a zero avec delat=d
end;
else
begin
if(d<0)then
begin
ici placer les valeurs de x1 et x2 pour delta negatif avec delat=d
end;
else
begin
traitement pour d =0
end;
end;
end;
end;
ici afficher les valeur de x1 et x2;
end.
j'ai fait de mon mieux car j'ai pas un compilateur TP et je code le plus de temps en vc++! désoler pour l'equation du troisieme degre et si t'as un pb avec ma solution j suis toujours la!
if(a+b+c=0) then
begin
x1:=1;
x2:=a div c;
end;
else
begin
if(a-b+c=0)then
begin
x1:=-1;
x2:=(-a) div c;
end;
else
begin
d:=(b*b)-(4*a*c);
if(d>0) then
begin
ici placer la valeur pour delata superieur a zero avec delat=d
end;
else
begin
if(d<0)then
begin
ici placer les valeurs de x1 et x2 pour delta negatif avec delat=d
end;
else
begin
traitement pour d =0
end;
end;
end;
end;
ici afficher les valeur de x1 et x2;
end.
j'ai fait de mon mieux car j'ai pas un compilateur TP et je code le plus de temps en vc++! désoler pour l'equation du troisieme degre et si t'as un pb avec ma solution j suis toujours la!
ghost1
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
7
Merci beaucoup pour ton aide
KX
Messages postés
16761
Date d'inscription
Statut
Modérateur
Dernière intervention
3 020
Je formalise en Pascal
Pour trouver une solution réelle d'une équation du 3è degré (x^3+ax^2+bx+c=0)
function pgcd(a,b:integer):integer; begin if b=0 then result:=a else result:=pgcd(b,a mod b); end; function puiss(x:real;a,b:integer):real; // calcul de x^(a/b) var p:integer; ra,rb:real; begin if a=0 then exit(1.0); if b=0 then begin write('Calcul de puissance impossible. Appuyer sur Entree pour abandonner'); readln; halt; end; if x=0 then exit(0.0); p:=pgcd(a,b); ra:=real(a div p); rb:=real(b div p); if a div 2=0 then result:=exp(ra/rb*ln(abs(x))) else if b div 2=0 then begin write('Calcul de puissance impossible. Appuyer sur Entree pour abandonner'); readln; halt; end else begin if x>0 then result:=exp(ra/rb*ln(x)) else result:=-exp(ra/rb*ln(x)); end; end; function RechercheSolution(a,b,c:real):real; // équation de la forme x^3+ax^2+bx+c=0 var p,q,r,x1,x2,X:real; begin p:=b-puiss(a,2,3); q:=a/27.0*(2.0*puiss(a,2,1)-9.0*b)+c; r:=0.5*puiss(4.0*puiss(p,3,1)/27.0+puiss(q,2,1),1,2); x1:=puiss(-q/2.0+r,1,3); x2:=puiss(-q/2.0-r,1,3); X:=x1+x2; result:=X-a/3.0; end;PS. je n'ai fait que traduire en Pascal les résultats théoriques que j'ai trouvé ici
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour le pgcd, en utilisant (en récursif) l'algorithme d'Euclide, on a :
function pgcd(a,b:integer):integer; begin if b=0 then result:=a else result:=pgcd(b,a mod b); end;Pour le ppcm, en utilisant la propriété a*b=pgcd(a,b)*ppcm(a,b), on a :
function ppcm(a,b:integer):integer; begin result:=a*b div pgcd(a,b); end;
Désolé, mais je n'ai pas Turbo Pascal 1.5, j'ai Dev-Pascal 1.9.2, il serait trop long de connaître toutes les interfaces (et versions) différentes du langage pascal... Chez moi j'ai testé le code et il marche très bien...
Dans ppcm, essaye de mettre a*b entre parenthèse au cas où, mais sinon je ne vois pas de raison pour que ça plante...
Dans ppcm, essaye de mettre a*b entre parenthèse au cas où, mais sinon je ne vois pas de raison pour que ça plante...
Sans rien changé aux fonctions précédentes, voici un programme qui marche très bien sous Dev-Pascal :
program Untitled1; function pgcd(a,b:integer):integer; begin if b=0 then result:=a else result:=pgcd(b,a mod b); end; function ppcm(a,b:integer):integer; begin result:=a*b div pgcd(a,b); end; var a,b:integer; begin write('a='); readln(a); write('b='); readln(b); writeln('pgcd=',pgcd(a,b)); writeln('ppcm=',ppcm(a,b)); readln; end.Si il ne marche pas chez toi, c'est un problème avec le logiciel, mais certainement pas avec le code.