Programme en pascal??????
liza22
-
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,
j'ai un programmme pour realiser consernant les matrices ,le programme fait lui meme choisir un matrice (5x5),et fait remplier aleatoirement mais en fait respecter a deux condition :
1-les nombre de la matrice entre 0 et 1. (deux nombres apres la virgule).
2-la somme de chaque colonne egale a 1.
j'ai un programmme pour realiser consernant les matrices ,le programme fait lui meme choisir un matrice (5x5),et fait remplier aleatoirement mais en fait respecter a deux condition :
1-les nombre de la matrice entre 0 et 1. (deux nombres apres la virgule).
2-la somme de chaque colonne egale a 1.
A voir également:
- Programme en pascal??????
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
18 réponses
program SansTitre; // uses KX; const a=5; b=5; type colonne=array[1..a] of real; matrice=array[1..b] of colonne; procedure RemplirColonne(var c:colonne); var i,partiel,total:integer; begin total:=100; for i:=1 to (a-1) do begin partiel:=random(total); total:=total-partiel; c[i]:=real(partiel)/100; end; c[a]:=real(total)/100; end; procedure RemplirMatrice(var m:matrice); var j:integer; begin for j:=1 to b do RemplirColonne(m[j]); end; procedure AfficherMatrice(m:matrice); var i,j:integer; begin for j:=1 to b do begin for i:=1 to a do write(m[i,j]:5:2); writeln; end; end; var m:matrice; begin randomize; RemplirMatrice(m); AfficherMatrice(m); writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.
program SansTitre; // uses KX; const a=5; b=5; type colonne=array[1..a] of real; matrice=array[1..b] of colonne; procedure RemplirColonne(var c:colonne); var i,partiel,total:integer; begin total:=100; for i:=1 to (a-1) do begin partiel:=random(total); total:=total-partiel; c[i]:=real(partiel)/100; end; c[a]:=real(total)/100; end; procedure RemplirMatrice(var m:matrice); var j:integer; begin for j:=1 to b do RemplirColonne(m[j]); end; procedure AfficherMatrice(m:matrice); var i,j:integer; begin for j:=1 to b do begin for i:=1 to a do write(m[i,j]:5:2); writeln; end; end; function Moyenne(c:colonne):real; var i:integer; begin result:=0; for i:=1 to a do result:=result+c[i]; result:=result/a; end; function SommeCarre(c:colonne):real; var i:integer; begin result:=0; for i:=1 to a do result:=result+sqr(c[i]); end; function EcartType(c:colonne):real; begin result:=sqrt(SommeCarre(c)-sqr(Moyenne(c)))/a end; var m:matrice; i:integer; begin randomize; RemplirMatrice(m); AfficherMatrice(m); for i:=1 to b do begin writeln; writeln('Colonne ',i); writeln('Moyenne : ',Moyenne(m[i]):0:4); writeln('Ecart-T : ',EcartType(m[i]):0:4); end; writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.
Je suis désolé mais moi j'obtiens une moyenne de 0.20 (normal puisque la somme est de 1)
Et un écart type compris entre 0.13 et 0.19...
Ton problème ne vient pas du code... Qu'utilises-tu comme compilateur ?
Et un écart type compris entre 0.13 et 0.19...
Ton problème ne vient pas du code... Qu'utilises-tu comme compilateur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le code est bon, j'arrive à le faire marcher sans problème et j'obtiens ce genre de résultat :
0.08 0.43 0.06 0.48 0.31 0.68 0.53 0.52 0.14 0.05 0.18 0.02 0.21 0.00 0.24 0.05 0.00 0.15 0.35 0.28 0.01 0.02 0.06 0.03 0.09Qu'est ce que tu utilises comme compilateur ?
le programme ne marche pas (des erreurs),et je n'arrive pas a resouler,l'erreur c'est :
Invalid type cast................
Invalid type cast................
merci merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii , c'est le programme s'a marche, j'ai enlever le mot real l'à :
*******
c[i]:=real(partiel)/100;
end;
c[a]:=real(total)/100;
end;
*************
*******
c[i]:=real(partiel)/100;
end;
c[a]:=real(total)/100;
end;
*************
maintenant la 2 eme partie :
comment fait aussi afficher Xbar et l'ecart type de chaque colonne ,(les resultat toujour deux nombre apres la virgules) , bien sur apres afficher la matrice il affiche Xbar et l'ecart type de chaque colonne......????
comment fait aussi afficher Xbar et l'ecart type de chaque colonne ,(les resultat toujour deux nombre apres la virgules) , bien sur apres afficher la matrice il affiche Xbar et l'ecart type de chaque colonne......????
Petite remarque : écart type=racine_carré( somme_des_carrés - carré_de_la_moyenne)/n
function Moyenne(c:colonne):real; var i:integer; begin result:=0; for i:=1 to a do result:=result+c[i]; result:=result/a; end; function SommeCarre(c:colonne):real; var i:integer; begin result:=0; for i:=1 to a do result:=result+sqr(c[i]); end; function EcartType(c:colonne):real; begin result:=sqrt(SommeCarre(c)-sqr(Moyenne(c)))/a end;
oui j'ai fait comme tu ma dait mais les resultats de moyenne et l'ecart type qui sont apparu sont faut pourquoi........mon dieu j'arrive a etre fou.......
Turbo Pascal c'est ça ton compilateur...
Moi j'utilise Dev-Pascal... Et je ne sais pas quelles sont les différences entre les deux !
Mais normalement il ne devrait pas y avoir de telles absurdités...
J'ai trouvé une petite erreur même si ça ne devrait pas changer grand chose...
Moi j'utilise Dev-Pascal... Et je ne sais pas quelles sont les différences entre les deux !
Mais normalement il ne devrait pas y avoir de telles absurdités...
J'ai trouvé une petite erreur même si ça ne devrait pas changer grand chose...
procedure AfficherMatrice(m:matrice); var i,j:integer; begin for j:=1 to b do begin for i:=1 to a do write(m[j][i]:5:2); writeln; end; end;Si ce n'est toujours pas ça il faudrait que tu essayes avec autre chose que Turbo Pascal...
waw c'est tres bien il marche bien ,merci beaucoup........ ,mais j_ai un question comment tu as arrivee a savoir tous ca et savoir maitriser le pascal..................merci...................merci........