|
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.
|