bac pratique 2005 - 2
Page 1 sur 1
bac pratique 2005 - 2
ÉNONCÉ:
L'algorithme suivant est celui d'un programme permettant de lire un entier m (1 ≤m≤100), de
vérifier et d'afficher s'il est parfait ou non.
Rappelons qu'un entier naturel non nul est dit parfait s'il est égal à la somme de ses diviseurs
sauf lui même.
0) Début Parfait
1) Lire (m)
2) S <-- 0
Pour i de 1 à m div 2 Répéter
Si m mod i = 0
Alors S <-- S + i
Fin Si
Fin Pour
3) Mess <-- " n'est pas parfait"
Si m = S Alors
Mess <-- " est parfait"
Fin Si
4) Ecrire (m, Mess)
5) Fin Parfait
Questions :
1. Créer un dossier portant le numéro de votre carte d'identité dans le dossier Bac2005
situé à la racine C:
2. Traduire cet algorithme en Pascal.
3. Transformer la séquence 2 en une fonction intitulée Som_div.
4. Transformer le programme Parfait pour qu'il permette de déterminer et d'afficher
tous les nombres parfaits compris entre 1 et 1000. Sauvegarder le programme sous le
nom Parfait2.
L'algorithme suivant est celui d'un programme permettant de lire un entier m (1 ≤m≤100), de
vérifier et d'afficher s'il est parfait ou non.
Rappelons qu'un entier naturel non nul est dit parfait s'il est égal à la somme de ses diviseurs
sauf lui même.
0) Début Parfait
1) Lire (m)
2) S <-- 0
Pour i de 1 à m div 2 Répéter
Si m mod i = 0
Alors S <-- S + i
Fin Si
Fin Pour
3) Mess <-- " n'est pas parfait"
Si m = S Alors
Mess <-- " est parfait"
Fin Si
4) Ecrire (m, Mess)
5) Fin Parfait
Questions :
1. Créer un dossier portant le numéro de votre carte d'identité dans le dossier Bac2005
situé à la racine C:
2. Traduire cet algorithme en Pascal.
3. Transformer la séquence 2 en une fonction intitulée Som_div.
4. Transformer le programme Parfait pour qu'il permette de déterminer et d'afficher
tous les nombres parfaits compris entre 1 et 1000. Sauvegarder le programme sous le
nom Parfait2.
correction de l'épreuve
SOLUTION:
1- program parfait;
uses wincrt;
var
m,s1:integer;
mess:string;
function som_div (m1:integer):integer;
var
s,i:integer;
begin
s:=0;
for i:=1 to m div 2 do
if m mod i =0 then s:=s+i;
som_div:=s;
end;
begin
readln(m);
s1:=som_div(m);
mess:='n''est pas parfait';
if m=s1 then mess:='est parfait';
writeln(m,mess);
end.
1- program parfait;
uses wincrt;
var
m,s1:integer;
mess:string;
function som_div (m1:integer):integer;
var
s,i:integer;
begin
s:=0;
for i:=1 to m div 2 do
if m mod i =0 then s:=s+i;
som_div:=s;
end;
begin
readln(m);
s1:=som_div(m);
mess:='n''est pas parfait';
if m=s1 then mess:='est parfait';
writeln(m,mess);
end.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum