Programme en pascal??????
liza22
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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........