bac2014séance14h .pdf


Nom original: bac2014séance14h.pdfTitre: bac2014séance14hAuteur: hp

Ce document au format PDF 1.4 a été généré par PDFCreator Version 1.5.0 / GPL Ghostscript 9.05, et a été envoyé sur fichier-pdf.fr le 25/03/2018 à 18:12, depuis l'adresse IP 197.15.x.x. La présente page de téléchargement du fichier a été vue 279 fois.
Taille du document: 176 Ko (4 pages).
Confidentialité: fichier public


Aperçu du document


MINISTERE EDUCATION TUNISIENNE
--- --------------------------------------------------------

Epreuve :
Informatique
Section :
Sciences Expérimentales
Durée : 1 heure
Coefficient :
1
Classe : 4 sciences Expérimentales 2

Correction BAC 2014 séance 14h

-- Analyse du programme principal --

Analyse : programme principal
a) Analyse

b) T.D.N.T

Nom : exerciceBac2014_14h
Résultat = PROC affiche(TA , na)
Ecrire_nl(" Le tableau TA : ")
PROC affiche( TD , nd )
Ecrire_nl(" Le tableau TD : ")
(TA,TD,na,nd) = PROC extraction(Nombre,N,TA,TD,na,nd)
PROC affiche (Nombre,N)
Ecrire_nl(" Pour le tableau Nombre : ")
Nombre = remplir(Nombre,N)
PROC saisie(N)
Fin exerciceBac2014_14h

Type
Tab = tableau de 25 entiers
c) T.D.O.G
Objet
Nature/type
N
var / entier
TA
var/ tab
TD
var/tab
Nombre
Var/tab
Na
Var/entier
Nd
Var/entier
saisie
procédure
affiche
procédure
remplir
procédure

-- Algorithmes des modules et le tableau de déclaration des objets locaux --

Algorithme : Procédure saisie
0) Def PROC saisie( var x :entier)
1) répéter
Ecrire(" N = ")
Lire( x )
jusqu'à x dans [5..25]
2) Fin PROC saisie

Algorithme : Procédure affiche
0) Def PROC affiche( t : tab ; m : entier )
1) pour i de 1à m faire
Ecrire(t[i], " | ")
finPour
2) Ecrire_nl("")
2) Fin PROC affiche

T.D.O.L :
Objet
i

Nature/type
var / entier

Algorithme : Procédure extraction
0) Def PROC extraction( t : tab; n : entier ; var ta,td : tab ; var na,
nd : entier)
1) [na ←0 , nd ←0] = pour i de 1 à n faire
Si abondant( t[i] ) = vrai alors
na ← na + 1
ta[na] ← t[i]

T.D.O.L :
Objet
i
abondant
deficient

Nature/type
var / entier
Fonction/booléen
Fonction/booléen

finSi
Si deficient( t[i] ) = vrai alors
nd ← nd +1
td[nd] ← t[i]
finSi
FinPour
2)Fin PROC extraction

Proposé le Samedi 25 Mars 2018

Année scolaire : 2017 - 2018

Algorithme : Fonction abondant
T.D.O.L :
0) Def FN abondant( x : entier ) : booléen
1) [ sdiv ← sommeDiviseurs(x) ] =
Objet
Nature/type
si x > sdiv alors
sdiv
var / entier
abondant ←vrai
sommeDiviseurs Fonction/entier
sinon abondant ← faux
finSi
2) fin abondant

Algorithme : Fonction deficient
0) Def FN abondant( x : entier ) : booléen
1) [ sdiv ← sommeDiviseurs(x) ] =
si x < sdiv alors
deficient ←vrai
sinon deficient ← faux
finSi
2) fin deficient

T.D.O.L :
Objet
Nature/type
sdiv
var / entier
sommeDiviseurs Fonction/entier

Algorithme : Fonction sommeDiviseurs
0) Def FN sommeDiviseurs( x : entier ) : entier
1) [ s ← 0 ] = pour i de 1 à x div 2 faire
Si x mod i = 0 alors
s ←s + i
finSi
fin pour
2) sommeDiviseurs ← s
3) fin sommeDiviseurs

T.D.O.L :
Objet
s
i

Nature/type
var / entier
var/entier

Algorithme : Procédure remplir
0) Def PROC remplir( var t : tab ; n : entier )
1) pour i de 1 à n faire
Répéter
Ecrire("Nombre[" , i, " ] = ")
Lire(t[i])
Jusqu'à t[i] > 0
fin pour
2) fin remplir

T.D.O.L :
Objet
i

Nature/type
var/entier

-- Programme pascal demandé --

Programme pascal : exerciceBac2014_14h
program exerciceBac2014_14h ;
uses wincrt ;
type tab = array[1..25] of integer;
var
n , na , nd : integer ;
Nombre , TA , TD : tab ;
{----- procédure de saisie de n tel que 5<=n<=25 -----}
procedure saisie ( var x : integer );
begin
repeat
begin
write('N = ');readln(n);
end;
until x in [5 .. 25] ;
end;
{----- fonction sommeDiviseurs qui retourne la somme des diviseurs propres d'un entier donné -----}
function sommeDiviseurs( x : integer):integer ;
var
i,s : integer ;
begin

Proposé le Samedi 25 Mars 2018

Année scolaire : 2017 - 2018

s := 0;
for i:=1 to x div 2 do
if x mod i = 0 then
s := s + i ;
sommeDiviseurs := s;
end;
{----- fonction abondant vérifiant si x est un entier abondant -----}
function abondant ( x : integer ) : boolean ;
var sdiv : integer ;
begin
sdiv := sommeDiviseurs(x) ;
if x > sdiv then abondant := true else abondant := false;
end;
{----- fonction deficient vérifiant si x est un entier abondant -----}
function deficient ( x : integer ) : boolean ;
var sdiv : integer ;
begin
sdiv := sommeDiviseurs(x) ;
if x < sdiv then deficient := true else deficient := false;
end;
{----- procédure qui permet d'extraire les éléments abondants d'un tableau donné dans un autre et ceux déficients
dans un troisième tableau -----}
procedure extraction(t : tab ; n : integer ; var ta,td: tab ; var na , nd : integer);
var
i : integer ;
begin
na := 0 ;
nd := 0;
for i := 1 to n do
begin
if abondant(t[i]) then
begin
na := na + 1;
ta[na]:= t[i];
end;
if deficient(t[i]) then
begin
nd := nd + 1;
td[nd] := t[i] ;
end;
end;
end;
{----- procédure qui permet l'affichage d'un tableau étant donné aussi sa taille -----}
procedure affiche(t : tab ; m : integer);
var
i : integer ;
begin
for i := 1 to m do write(t[i] ,' | ');
writeln('');
end;
{----- procédure qui permet le remplissage d'un tableau étant donné aussi sa taille -----}
procedure remplir(var t : tab ; m : integer);
var
i : integer ;
begin
for i := 1 to m do
repeat
writeln('Nombre [',i,'] = ');
readln(t[i]);
until t[i] > 0;
end;

Proposé le Samedi 25 Mars 2018

Année scolaire : 2017 - 2018

begin
saisie(n);
remplir(Nombre,n);
writeln('Pour le tableau Nombre : ');
affiche(Nombre,n);
extraction (Nombre,n,TA,TD,na,nd);
writeln('Le tableau TD : ');
affiche(TD,nd);
writeln('Le tableau TA : ');
affiche(TA,na);
end.

Proposé le Samedi 25 Mars 2018

Année scolaire : 2017 - 2018


bac2014séance14h.pdf - page 1/4


bac2014séance14h.pdf - page 2/4


bac2014séance14h.pdf - page 3/4

bac2014séance14h.pdf - page 4/4


Télécharger le fichier (PDF)


bac2014séance14h.pdf (PDF, 176 Ko)

Télécharger
Formats alternatifs: ZIP



Documents similaires


bac2014seance14h
fiche2 ex sous programme
fiche1 ex sous programme
fiche tri selection bulles insertion
bac2014seance8h
les procedures

Sur le même sujet..