Bookmark and Share

Liens sponsorisés

Recherche de Diviseurs Print E-mail
Written by Administrator   
Friday, 06 March 2009 14:32
Enoncé de l'exercie
On dispose de deux tableaux T1 et T2 contenant respectivement n et m entiers positifs et non nuls.
On désire chercher dans T2 tous les diviseurs d'un élément de tab T1.
Exemple :
T1 :
23
15
10
277
300
34
T2 :
3
6
5
1

si indice=2 alors 3,5 et 1 seront affichés à l'écran.
Ecrire un programme Pascal qui permet de saisir les deux tableaux T1 et T2 et l'indice d'un élément p de T1 puis d'afficher à l'écran tous les diviseurs de p figurant dans T2.
Solution en Pascal
program diviseurs;
uses wincrt;
type tab=array[1..100]of integer;
var T1,T2:tab;
i,n,indice,m:integer;
{on utilise la procédure saisie_tab(T,n) pour saisir un tableau T et sa dimension n}
procedure saisie_tab(var T:tab;var n:integer);
var i:integer;
begin
write('Donner la dimension de votre tableau :');
read(n);
write('Saisir maintenant les valeurs du tableau qui sont positifs et non nul :');
for i:=1 to n do
repeat
read(T[i]);
until(T[i]>0);
end;

{on utilise la fonction divise(a,b)
pour savoir si b divise a le type de la fonction divise est un boolean}

function divise(a,b:integer):boolean;
begin
divise:=a mod b =0;
end;

{on utilise la procédure afficher(T,p,n) pour afficher les diviseurs d'un entier p dans le tableau T de dimension n}

procedure afficher(T:tab;p,n:integer);
var i:integer;
begin
writeln('*** les diviseurs de ',p,' dans le tableau T2 sont ****');
for i:=1 to n do
if(divise(p,T[i])) then writeln(T[i]);
end;


{programme principal :
1 : saisir le tableau "T1" et sa dimension "n"
2 : saisir le tableau "T2" et sa dimension "m"
3 : saisir l'indice "indice"
4 : afficher les diviseurs de l'élément de "T1" d'indice
"indice" dans le tableau "T2"}

begin
saisie_tab(T1,n);
saisie_tab(T2,m);
write('** Donner l''indice de l''élément de T1 :');
read(indice);
afficher(T2,T1[indice],m);
end.
 

 

Liens sponsorisés