Probleme turbo pascal
Fermé
melissav2004
Messages postés
1
Date d'inscription
dimanche 1 juin 2008
Statut
Membre
Dernière intervention
1 juin 2008
-
1 juin 2008 à 11:52
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 31 juil. 2008 à 17:07
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 31 juil. 2008 à 17:07
A voir également:
- Probleme turbo pascal
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev-pascal - Télécharger - Édition & Programmation
- Turbo pascal linux ✓ - Forum Linux / Unix
- Turbo sim c'est quoi - Forum Mobile
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
31 juil. 2008 à 16:16
31 juil. 2008 à 16:16
Voici la programmation Pascal de l'algorithme de Gauss Jordan dont je parlais plus haut.
Il permet la résolution de systèmes de n équations à n inconnues :
La confiance n'exclut pas le contrôle
Il permet la résolution de systèmes de n équations à n inconnues :
program GaussJordan; const Nmax=10; type Systeme=record n:integer; a:array[1..Nmax,1..Nmax] of real; b:array[1..Nmax] of real; end; procedure EditerSysteme(var s:Systeme); var i,j:integer; begin write('Dimension de la matrice : n='); readln(s.n); writeln; for i:=1 to s.n do begin writeln('Ligne ',i,' : '); writeln; for j:=1 to s.n do begin write('a[',i,',',j,']='); readln(s.a[i,j]); end; writeln; write('b[',i,']='); readln(s.b[i]); writeln; end; end; procedure Elimination_Gauss_Jordan(var s:Systeme); var i,j,k:integer; c,d:real; begin for i:=1 to s.n do begin c:=s.a[i,i]; if c=0 then begin writeln('Erreur : coefficient nul en ',i,'eme ligne, ',i,'eme colonne'); writeln; exit; end; for j:=1 to s.n do s.a[i,j]:=s.a[i,j]/c; s.b[i]:=s.b[i]/c; for k:=1 to s.n do if k<>i then begin d:=s.a[k,i]; for j:=i to s.n do s.a[k,j]:=s.a[k,j]-d*s.a[i,j]; s.b[k]:=s.b[k]-d*s.b[i]; end; end; end; procedure AffichageSolution(var s:Systeme); var i:integer; begin for i:=1 to s.n do writeln('x[',i,']=',s.b[i]); end; var s:Systeme; begin EditerSysteme(s); Elimination_Gauss_Jordan(s); AffichageSolution(s); writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.--
La confiance n'exclut pas le contrôle
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
1 juin 2008 à 23:56
1 juin 2008 à 23:56
Je n'ai pas étudié ton code, mais il me semble que ton problème relève plus de théorie mathématiques que de programmation pascal.
Pour avoir une équation impossible il faudrait avoir plus d'équations que d'inconnues (ce que ton programme ne permet apparemment pas de faire).
Pour avoir une équation indéterminée il faudrait que plusieurs équations soit équivalentes auquel cas le déterminant de ta matrice (triangulaire donc carré) sera nul.
Finalement seuls deux cas peuvent se présenter :
Tes n équations à n inconnues sont toutes distinctes, auquel cas il existe une unique solution (cf. Cramer) et ton algorithme de Gauss devrait marcher.
Ou alors il existe au moins deux équations proportionnelles et tu auras une infinité de solution.
Mais aucun cas tu pourras avoir de solution vide si tu as autant (ou moins) d'équation que d'inconnue.
Si je m'égare en théorie et que ton problème est effectivement lié à la programmation Pascal, merci de préciser qu'est-ce que tu es censé obtenir pour chaque fonction/procédure que tu écris et expliquer un minimum le fonctionnement recherché, sinon comment savoir où sont les erreurs (ou non) de fonctionnement.
Pour avoir une équation impossible il faudrait avoir plus d'équations que d'inconnues (ce que ton programme ne permet apparemment pas de faire).
Pour avoir une équation indéterminée il faudrait que plusieurs équations soit équivalentes auquel cas le déterminant de ta matrice (triangulaire donc carré) sera nul.
Finalement seuls deux cas peuvent se présenter :
Tes n équations à n inconnues sont toutes distinctes, auquel cas il existe une unique solution (cf. Cramer) et ton algorithme de Gauss devrait marcher.
Ou alors il existe au moins deux équations proportionnelles et tu auras une infinité de solution.
Mais aucun cas tu pourras avoir de solution vide si tu as autant (ou moins) d'équation que d'inconnue.
Si je m'égare en théorie et que ton problème est effectivement lié à la programmation Pascal, merci de préciser qu'est-ce que tu es censé obtenir pour chaque fonction/procédure que tu écris et expliquer un minimum le fonctionnement recherché, sinon comment savoir où sont les erreurs (ou non) de fonctionnement.
Bonjour,
J'ai eu des difficultés sur Turbo PAscal pour la creation de la procedure de resolution de n equation a n inconue en utilisant la methode de pivot.
Pouvez vous me donner la procedure complete de ce dernier avec explication!
Merci d'avance
J'ai eu des difficultés sur Turbo PAscal pour la creation de la procedure de resolution de n equation a n inconue en utilisant la methode de pivot.
Pouvez vous me donner la procedure complete de ce dernier avec explication!
Merci d'avance
bestkiller92
Messages postés
118
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
1 août 2008
4
31 juil. 2008 à 15:45
31 juil. 2008 à 15:45
ouille, je savais pas que y avait encore des gens qui utilisait, le turbo pascal. vous pouvez me dre quel genre de progrmame on arrive a faire avec?
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
31 juil. 2008 à 15:52
31 juil. 2008 à 15:52
Le Turbo Pascal est encore fortement utilisé dans les milieux scolaires pour l'initiation à la programmation !
Certes c'est pas très joli, mais après on peut passer à Delphi, où là y a de quoi faire un peu mieux !
Contrairement à ce que tu as l'air de penser, le Pascal est suffisant pour tous ceux qui n'ont pas envie de passer leur vie à programmer, ou qui n'ont pas envie d'apprendre d'autres langages que ceux qu'on leur apprend...
Après bien sûr, on peut critiquer le choix du corps enseignant de se borner à l'apprentissage de l'algorithmique par le Pascal... Mais l'évolution n'est pas pour tout de suite !
Certes c'est pas très joli, mais après on peut passer à Delphi, où là y a de quoi faire un peu mieux !
Contrairement à ce que tu as l'air de penser, le Pascal est suffisant pour tous ceux qui n'ont pas envie de passer leur vie à programmer, ou qui n'ont pas envie d'apprendre d'autres langages que ceux qu'on leur apprend...
Après bien sûr, on peut critiquer le choix du corps enseignant de se borner à l'apprentissage de l'algorithmique par le Pascal... Mais l'évolution n'est pas pour tout de suite !
bestkiller92
Messages postés
118
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
1 août 2008
4
>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
31 juil. 2008 à 16:52
31 juil. 2008 à 16:52
non ma question c'était, quel genre de programme on obtien a la fin, 3D, console, ou fenetre ect...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
>
bestkiller92
Messages postés
118
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
1 août 2008
31 juil. 2008 à 17:07
31 juil. 2008 à 17:07
En Turbo Pascal "pur" on peut avoir un affichage console et/ou graphique.
3D je ne pense pas que ce soit possible à moins de bidouiller le mode graphique.
Avec des IDE comme Delphi ou Lazarus on peut aussi créer des fenêtres Windows avec des boutons des cases à cocher, des menus déroulants... Ce qui donne au langage Pascal un peu plus d'esthétisme...
3D je ne pense pas que ce soit possible à moins de bidouiller le mode graphique.
Avec des IDE comme Delphi ou Lazarus on peut aussi créer des fenêtres Windows avec des boutons des cases à cocher, des menus déroulants... Ce qui donne au langage Pascal un peu plus d'esthétisme...