Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
3 participants
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
program nombre_mersenne;
uses wincrt;
var
a,b,nb:longint;
mersenne:text;
uses wincrt;
var
a,b,nb:longint;
mersenne:text;
- Code:
procedure creation(var mersenne:text);
begin
assign(mersenne,'mersenne.txt');
rewrite(mersenne);
end;
- Code:
procedure saisir(var a,b:longint);
begin
repeat
write('A=');
readln(a);
until (a>2) and( a<49999);
repeat
write('B=');
readln(b);
until (b>a) and (b<50000);
end;
- Code:
function puissance(x,y:longint):longint;
begin
if y=0 then
puissance:=1
else
puissance:=x*puissance(x,y-1);
end;
- Code:
function premier(n:longint):boolean;
var
i:longint;
begin
i:=2;
while (n mod i <>0) and (i<=n div 2) do
i:=i+1;
premier:=i>n div 2;
end;
- Code:
procedure determine_mersenne(var nb:longint;a,b:longint;var mersenne:text);
var
m,n:longint;
begin
append(mersenne);
nb:=0;
for m:=a to b do
begin
n:=2;
while puissance(2,n)-1<m do
n:=n+1;
if (m=puissance(2,n)-1) and (premier(n)) then
begin
writeln(mersenne,m,'=(2^',n,')-1');
nb:=nb+1;
end;
end;
end;
- Code:
procedure afficher(var mersenne:text;nb:longint);
var
ch:string;
begin
reset(mersenne);
if nb=0 then
writeln('Il n''y''à nombre de mersenne')
else
while not (eof(mersenne)) do
begin
readln(mersenne,ch);
writeln(ch);
end;
end;
- Code:
begin
saisir(a,b);
creation(mersenne);
determine_mersenne(nb,a,b,mersenne);
afficher(mersenne,nb);
close(mersenne);
end.
nejah- Entier Naturel
-
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 5155
Date d'inscription : 14/11/2010
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
Merci pour le partage de la solution !!
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
while (n mod i <>0) and (i<=n div 2) do
Pour vérifier si "n" est premier ou non, il suffit d'aller jusqu'à "SQRT(n)" et non pas à "n DIV 2".
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
nabiL a écrit:while (n mod i <>0) and (i<=n div 2) do
Pour vérifier si "n" est premier ou non, il suffit d'aller jusqu'à "SQRT(n)" et non pas à "n DIV 2".
Merci pour cet information qui optimise ma solution et diminue le temps d'exécution de ce programme
nejah- Entier Naturel
-
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 5155
Date d'inscription : 14/11/2010
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
nejah a écrit:nabiL a écrit:while (n mod i <>0) and (i<=n div 2) do
Pour vérifier si "n" est premier ou non, il suffit d'aller jusqu'à "SQRT(n)" et non pas à "n DIV 2".
Merci pour cet information qui optimise ma solution et diminue le temps d'exécution de ce programme
De rien. Bienvenue au forum. Par la même occasion, si tu es passionné de programmation, je t'invite à me contacter sur Skype: nabil.belgasmi.
Je peux t'être utile.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
nabiL a écrit:nejah a écrit:nabiL a écrit:while (n mod i <>0) and (i<=n div 2) do
Pour vérifier si "n" est premier ou non, il suffit d'aller jusqu'à "SQRT(n)" et non pas à "n DIV 2".
Merci pour cet information qui optimise ma solution et diminue le temps d'exécution de ce programme
De rien. Bienvenue au forum. Par la même occasion, si tu es passionné de programmation, je t'invite à me contacter sur Skype: nabil.belgasmi.
Je peux t'être utile.
Je vous ai ajouter sur Skype Admin
nejah- Entier Naturel
-
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 5155
Date d'inscription : 14/11/2010
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Corrigé bac pratique 2011 Sciences Informatique (8h 30 minute)
Solution élégante! Chokran.
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Sujets similaires
» Corrigé bac pratique 2011 Sciences Informatique (10h 30 minute)
» Exercice de révision BAC PRATIQUE 2012 + corrigé
» Exercice corrigé Bac 2009 Pratique: Tri par bloc (info)
» Corrigé de l'épreuve d'informatique: section lettre - Bac 2009
» BAC 2010 : Corrigé : Section informatique : Algorithmique (Principal)
» Exercice de révision BAC PRATIQUE 2012 + corrigé
» Exercice corrigé Bac 2009 Pratique: Tri par bloc (info)
» Corrigé de l'épreuve d'informatique: section lettre - Bac 2009
» BAC 2010 : Corrigé : Section informatique : Algorithmique (Principal)
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum