Aide!!!!!! (Turbo Pascal 1.5) SVP
Fermé
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
-
24 juin 2008 à 18:24
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 25 juin 2008 à 22:28
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 25 juin 2008 à 22:28
A voir également:
- Aide!!!!!! (Turbo Pascal 1.5) SVP
- Turbo pascal download - Télécharger - Édition & Programmation
- Iphone turbo sim inconvénient - Forum iPhone
- My pascal - Télécharger - Édition & Programmation
- Telecharger turbo pascal 1.5 gratuit pour windows 10 ✓ - Forum Pascal
- Turbo sim - Forum iPhone
5 réponses
wAxxx
Messages postés
421
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
29 septembre 2015
46
24 juin 2008 à 19:47
24 juin 2008 à 19:47
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!
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
25 juin 2008 à 21:59
25 juin 2008 à 21:59
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
BoBoXx
Messages postés
260
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
3 août 2008
34
24 juin 2008 à 19:10
24 juin 2008 à 19:10
Bah pourquoi tu ne le fait pas alors ?
wAxxx
Messages postés
421
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
29 septembre 2015
46
24 juin 2008 à 19:49
24 juin 2008 à 19:49
avez des connaissance en récursivité? si oui je donnerez la solution.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
25 juin 2008 à 15:58
25 juin 2008 à 15:58
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;
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
7
25 juin 2008 à 16:19
25 juin 2008 à 16:19
Merci bcp mais il y a une erreur lors de la compilation.
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
>
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
25 juin 2008 à 16:37
25 juin 2008 à 16:37
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...
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
7
>
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
25 juin 2008 à 16:47
25 juin 2008 à 16:47
J'ai essayé aussi avec Dev-Pascal 1.9.2 mais le même problème
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
>
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
25 juin 2008 à 17:07
25 juin 2008 à 17:07
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.
ghost1
Messages postés
38
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
9 avril 2009
7
>
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
25 juin 2008 à 18:00
25 juin 2008 à 18:00
ça marche, merci pour ton aide.
25 juin 2008 à 00:19
25 juin 2008 à 22:28
procedure SolutionSecondDegre(a,b,c:real;var x1,x2:real); var delta:real; begin writeln(a:0:3,'.x^2+',b:0:3,'.x+',c:0:3,'=0'); x1:=0; x2:=0; if a=0 then if b=0 then if c=0 then writeln('R tout entier est solution') else writeln('Il n''y a pas de solution') else begin x1:=-c/b; x2:=x1; writeln('Une solution (simple) : ',x1:0:5); end else begin delta:=b*b-4*a*c; if delta<0 then writeln('Il n''y a pas de solution reelle'); if delta=0 then begin x1:=-b/(2*a); x2:=x1; writeln('Une solution (double) : ',x1:0:5); end; if delta>0 then begin delta:=sqrt(delta); if a>0 then begin x1:=(-b-delta)/(2*a); x2:=(-b+delta)/(2*a); end else begin x1:=(-b+delta)/(2*a); x2:=(-b-delta)/(2*a); end; writeln('Il y a deux solutions reelles :',x1:0:5,' et ',x2:0:5); end; end; end;