Algorithmes Récurrents
2 participants
Page 1 sur 1
Algorithmes Récurrents
Salut tt le monde !
Voici un exercice interessant :
On désire remplir une matrice M carre de taille n x n (n est un entier donner ≥ 2) par les éléments de deux triangles de Pascal mis à l’ envers de telle sorte qu’ils remplissent toute la matrice M. Écrire un algorithme Triangle qui va saisir n et va remplir la matrice M avec la procédure Remplir1 qui va construire le triangle qui se trouve a gauche de M par le triangle de Pascal et une procédure Remplir2 qui va remplir le deuxième triangle qui est l’inverse du premier triangle.
Finalement on va afficher tous les éléments de M.
Voici un exercice interessant :
On désire remplir une matrice M carre de taille n x n (n est un entier donner ≥ 2) par les éléments de deux triangles de Pascal mis à l’ envers de telle sorte qu’ils remplissent toute la matrice M. Écrire un algorithme Triangle qui va saisir n et va remplir la matrice M avec la procédure Remplir1 qui va construire le triangle qui se trouve a gauche de M par le triangle de Pascal et une procédure Remplir2 qui va remplir le deuxième triangle qui est l’inverse du premier triangle.
Finalement on va afficher tous les éléments de M.
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
matrice
salut
voici la solution :
uses wincrt;
type
mat=array[1..10,1..10]of integer;
var
m:mat;
n:integer;
procedure saisie(var n:integer);
begin
repeat
write('Donner n = ');readln(n);
until n in [2..10];
end;
procedure remplir(var m:mat;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to i do
if(j=1)or(i=j)then
m[i,j]:=1
else
m[i,j]:=m[i-1,J]+m[i-1,j-1];
for i:=n downto 1 do
for j:=n downto i do
if(j=n)or(i=j)then
m[i,j]:=1
else
m[i,j]:=m[i+1,J]+m[i+1,j+1];
end;
procedure affiche(m:mat;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j],' ');
writeln;
end;
end;
begin
saisie(n);
remplir(m,n);
clrscr;
affiche(m,n);
end.
voici la solution :
uses wincrt;
type
mat=array[1..10,1..10]of integer;
var
m:mat;
n:integer;
procedure saisie(var n:integer);
begin
repeat
write('Donner n = ');readln(n);
until n in [2..10];
end;
procedure remplir(var m:mat;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to i do
if(j=1)or(i=j)then
m[i,j]:=1
else
m[i,j]:=m[i-1,J]+m[i-1,j-1];
for i:=n downto 1 do
for j:=n downto i do
if(j=n)or(i=j)then
m[i,j]:=1
else
m[i,j]:=m[i+1,J]+m[i+1,j+1];
end;
procedure affiche(m:mat;n:integer);
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j],' ');
writeln;
end;
end;
begin
saisie(n);
remplir(m,n);
clrscr;
affiche(m,n);
end.
Ilyes KHAILI- Messages : 24
Date d'inscription : 13/11/2008
Age : 34
Re: Algorithmes Récurrents
Merci pour le partage Bon travail
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|