Correction d'examen +aide (procedure,digonal)

adel_3n1 Messages postés 17 Statut Membre -  
 anouar -
Salut;
S.v.p la corection et aide pour mon examen que j'ai passe Merci
Exercice 1:Exercice 1 : Soit deux tableaux A(3x3) et B(3x3) définis comme suit:
tableaux A
2 4 6
8 10 12
14 16 18

Tableaux B

1 3 5
7 9 11
13 15 17

Ecrire en langage pascal un programme qui permet de :
1)créer les deux tableaux A et B tels qui sont donnes ci-dessus
2) Calculer et imprimer la somme des digonales de A et de B (à la fois) ( indication : A[i,i] et B[i,i] avec i=1,2,3 ; sont respectivement
les élément de la digonale da A et B)
3) Ecrire une procédure MAX(x :array[1..3,1..3] of integer ; var max :integer)
qui determine le max du tableaux X et retourne la maximum dans la varibles max.
4)Ecrire un programme principal dans lequel on utilise la procédure MAX de la
question 3) pour calculer et imprimer le max des tableaux A et B ,
soit maxA et maxB ,soit maxAB.

Ma Réponse :

Program tableaux;
Var
Max(a,b),maxA,maxB,i,j,k:integer;
Tableaux :array [1..3,1..3] of integer;
A,B :tableaux;
Procedure creetableuxA (var d:tableaux);
Var
begin
K,i,j:integer;
For i:=1 to 3 do
For j:=1 to 3 do
Begin
D[i,j]:=k;
K:=k+2;
End;
End;
Procedure creetableauxB (var m:tableaux);
Var
K,i,j:integer;
Begin
K:=1;
For i:=1 to 3 do
For j:=1 to 3 do
Begin
M[i,j]:=k;
K:=k+2;
End;
End;
Procedure affichertableaux(xx:tableaux);
Begin
Var
I,j:integer
Begin
For i:=1 to 3 do
For j:=1 to 3 do begin {je me rappel pas si dans la feuille d’examen
Write xx[i,j]; j’ai écrie pour sauter chaque ligne}
End;
Writeln
End;
(*Calculer le Max*)
procedure Max (x:tbleaux;var max:integer);
begin
MAX:=[1,1];
For i:=1 to 3 do
For j:=1 to 3 do
If max<x[i,j] then
Max :=x[i,j];
Write (max);
End;
Begin (*p.p*)
Creetableaux (A);
Affichertableaux (A);
Creetableaux (B);
Affichertableaux (B) ;
Max (A,maxA) ; {s.v.p c’est juste ici}
Max (B ,maxb) ; {s.v.p c’est juste ici}
(*calcule du max (A, b) 1er méthode*) {s.v.p c’est juste les deux méthodes}
max(a,b) :=maxA
if max(A,B)<maxB then
max(A,B):=maxB
else max(A,B):=maxA;
(*calcule du max(a,b) une deuxième méthode
j’ai oublier laquelle que j’ai utiliser*)

max(a,b) :=MaxA
if maxA>maxB then
max(a,b):=maxA
Else
Max(a,b):=maxB;

End.

REPONSE Exercice n°2:
Program digonale;
Diag,var,somme1,somme2,i,j :integer ;
A, B:array [1..3,1..3] of integer;
Begin
Somme:=0;
For i:=1 to 3 do
Begin
Diag:=A[i,i] ;
Somme1 :=somme1+diag ;
End ;
Write (somme1);
For i:=1 to 3 do
Begin
Diag:=B[i,i];
Somme2:=somme2 + diag;
End;
Write (somme2);
End.

Sil vous plait des questions ?
1)pour les question de notre exercices de l’examen EMD2 s.v.p
quelle est la solution optimal dans un seule programme d’après les question
sans isoler la question n° 2 ?
2) je n’est pas arriver a l’examen a transformer la question n°2
en procédure (somme digonales),s.v.p comment faire,pour avoir un seule programme globale avec les questions 1) 2)et 3) en procédures et 4) en programme principal ?
3) S.V.P et ce que ont fait la somme de la digonale total somme1+somme2 comme il a dit a la fois ?

Merci

6 réponses

idir
 
je veut une repance de ce exercice s v p
ecrure un programme pascale qui calcule le determinant d'une matrice de n collonne et n lgne avec (procedure ,function)

voila j'atton votre repance et merçi
1
KX Messages postés 19031 Statut Modérateur 3 020
 
Sur le principe, il faut utiliser une fonction récursive prenant une matrice de taille n en paramètre.
Si n=2 alors on fait un bête a*d-b*c, sinon on fait un développement suivant la première ligne (ou colonne) avec des appels récursifs (et des matrices de tailles n-1 en paramètres)
Exemple n=3 :
	     | 5 7 4 |
Determinant( | 3 6 2 | ) = 5*Determinant( | 6 2 | ) 
             | 4 9 7 |                    | 9 7 |

                          -3*Determinant( | 7 4 | ) 
                                          | 9 7 |

                          +4*Determinant( | 7 4 | )
                                          | 6 2 |

                        = 5*(6*7-2*9) - 3*(7*7-4*9) + 4*(7*2-4*6)

                        = 41
Par contre pour le type des matrices je te propose :
const nmax=10;

type matrice=record
	n:integer;
	m:array[1..nmax,1..nmax] of real;
end;
C'est un type qui devrait permettre de résoudre relativement facilement le problème...
0
KX Messages postés 19031 Statut Modérateur 3 020
 
program CalculDeterminant;

const nmax=10;

type matrice=record
     n:integer;
     m:array[1..nmax,1..nmax] of real;
     end;

function CreerMatrice:matrice;
var i,j:integer;
begin
write('n = ');
readln(result.n);
writeln;
for i:=1 to result.n do
for j:=1 to result.n do
    begin
    write('a[',i,',',j,'] = ');
    readln(result.m[i,j]);
    end;
writeln;
end;

function SousMatrice(a:matrice;i,j:integer):matrice;
var u,v:integer;
begin
result.n:=a.n-1;
for u:=1 to i-1 do
    begin
    for v:=1 to j-1 do
        result.m[u,v]:=a.m[u,v];
    for v:=j+1 to a.n do
        result.m[u,v-1]:=a.m[u,v];
    end;
for u:=i+1 to a.n do
    begin
    for v:=1 to j-1 do
        result.m[u-1,v]:=a.m[u,v];
    for v:=j+1 to a.n do
        result.m[u-1,v-1]:=a.m[u,v];
    end;
end;

function Gamma(r:real;k:integer):real;
begin
if odd(k) then result:=-r // odd(k) <=> (-1)^(i+j) = -1
          else result:=r
end;

function Determinant(a:matrice):real;
var i:integer;
begin
if a.n=1 then result:=a.m[1,1]
         else begin
              result:=0;
              for i:=1 to a.n do
                  result:=result+Gamma(a.m[i,1],i+1)*Determinant(SousMatrice(a,i,1));
              end;
end;

begin
writeln(Determinant(CreerMatrice):0:5);
readln;
end.
0
****
 
le email de adel_3n1@yahoo.fr est pirater
1
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Je doute que tu es beaucoup de reponse, personne n'a trop envie de faire des exams la :-D

En plus c'est long...enfin chacun fait ce qu'il veut hein, mais si j'etais toi je ne poserai que les parties sur lesquelles j'ai des doutes et avec des questions precises, la tu auras sans doute des reponses...

.  .
\_/
0
adel_3n1 Messages postés 17 Statut Membre
 
Bonsoir;

S.v.p concernant L’exercice N°1 :
Réorganisation des deux tableaux A et B pour qu’il soient clair et plus lisable,commença chere lecteur vous pouvez bien comprendre s.v.p votre sujet Merci :

Tableux A

2 4 6
8 10 12
14 16 18

Tableaux B

1 3 5
7 9 11
13 15 17
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kelen
 
nan je te jure personne ne veut faire d'exam en ce moment !!
0
anouar
 
salut j'ai besoins de corrigé de l'examen de fin de formation de la filière TCVVPR de l'ISTA de Sallet les epreuves théorique et pratiques.merci.
0