Informatique au Lycée Borj Louzir
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

divisibilité

3 participants

Aller en bas

divisibilité Empty divisibilité

Message  Ilyes KHAILI Mar 17 Fév - 16:42


Merci Mdme pour le programme de PGCD
et voci le programme du divisibilité:

uses wincrt;
var
a:string;
i,choix:integer;
procedure saisie(var a:string);
var
test:boolean;
i,n,e:integer;
begin
repeat
write('donner un nombre = ');readln(a);
test:=true;
i:=0;
repeat
i:=i+1;
val(a[i],n,e);
test:=e=0;
until(not test)or(i>=length(a));
until test;
end;
function div2(a:string):boolean;
var
u,e:integer;
begin
val(a[length(a)],u,e);
while u>=2 do
u:=u-2;
div2:=u=0;
end;
function div3(a:string):boolean;
var
u,e,i,s:integer;
begin
s:=0;
for i:=1 to length(a) do
begin
val(a[i],u,e);
s:=s+u;
end;
while s>=3 do
s:=s-3;
div3:=s=0;
end;
function div4(a:string):boolean;
var
u,e:integer;
begin
if length(a)>1 then
val(a[length(a)-1]+a[length(a)],u,e)
else
val(a,u,e);
while u>=4 do
u:=u-4;
div4:=u=0;
end;
function div5(a:string):boolean;
var
e,u:integer;
begin
val(a[length(a)],u,e);
div5:=(u=0)or(u=5);
end;
function div7(a:string):boolean;
var
e:integer;
n:longint;
begin
val(a,n,e);
if n>9 then
while (n div 10)-2*(n mod 10)>0 do
begin
n:=(n div 10)-2*(n mod 10);
end;
while n>=7 do
n:=n-7;
div7:=n=0;
end;
function div9(a:string):boolean;
var
u,e,i,s:integer;
begin
s:=0;
for i:=1 to length(a) do
begin
val(a[i],u,e);
s:=s+u;
end;
while s>=9 do
s:=s-9;
div9:=s=0;
end;
function div11(a:string):boolean;
var
i,e,s,n,x:integer;
begin
s:=0;
for i:=1 to length(a)do
begin
val(a[i],x,e);
if i mod 2=0 then
s:=s-x
else
s:=s+x;
end;
n:=abs(s);
while n>=11 do
n:=n-11;
div11:=n=0;
end;
function div25(a:string):boolean;
var
u,e:integer;
begin
if length(a)>1 then
val(a[length(a)-1]+a[length(a)],u,e)
else
val(a,u,e);
while u>=25 do
u:=u-25;
div25:=u=0;
end;
procedure verifier(x:integer;a:string);
begin
case x of
2:if div2(a) then writeln(a,' est divisible par 2');
3:if div3(a) then writeln(a,' est divisible par 3');
4:if div4(a) then writeln(a,' est divisible par 4');
5:if div5(a) then writeln(a,' est divisible par 5');
6:if (div2(a))and(div3(a)) then writeln(a,' est divisible par 6');
7:if div7(a) then writeln(a,' est divisible par 7');
8:if (div2(a))and(div4(a)) then writeln(a,' est divisible par 8');
9:if div9(a) then writeln(a,' est divisible par 9');
11:if div11(a) then writeln(a,' est divisible par 11');
25:if div25(a) then writeln(a,' est divisible par 25');
end;
end;
begin
saisie(a);
clrscr;
writeln('Pour verifier la divisibilité de ',a,' par 2 appuyer sur 2');
writeln(' 3 appuyer sur 3');
writeln(' 4 appuyer sur 4');
writeln(' 5 appuyer sur 5');
writeln(' 6 appuyer sur 6');
writeln(' 7 appuyer sur 7');
writeln(' 8 appuyer sur 8');
writeln(' 9 appuyer sur 9');
writeln(' 11 appuyer sur 11');
writeln(' 25 appuyer sur 25');
repeat
readln(choix);
until (choix in[2..9])or(choix=11)or(choix=25);
verifier(choix,a);
end.

Laughing Laughing Laughing Laughing Laughing Laughing Laughing Laughing

Ilyes KHAILI

Messages : 24
Date d'inscription : 13/11/2008
Age : 34

Revenir en haut Aller en bas

divisibilité Empty Re: divisibilité

Message  bouhmid Mer 18 Fév - 0:22

ce programme ne fait pas la divisibilite par deux
il faut verifier !!!!!!!!!!!!!!!!!!!!!!!!!!! Very Happy Very Happy Very Happy
bouhmid
bouhmid

Messages : 15
Date d'inscription : 15/02/2009

Revenir en haut Aller en bas

divisibilité Empty Excellent travail !

Message  Hanafi Lun 23 Fév - 0:28

Bravo, Bravo, Bravissimo !!! Continuez comme ça. A propos de division par 2 ça marche aussi. Très bien Ilyes et merci pour le partage. Wink
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

divisibilité Empty Re: divisibilité

Message  Ilyes KHAILI Mar 24 Fév - 0:00

Merci Mme Embarassed
mais j'ai oublier de mettre le message si le nombre n'est pas divisible,
donc il faut modifier la procedure verifier par :
procedure verifier(x:integer;a:string);
begin
case x of
2:begin if div2(a) then writeln(a,' est divisible par 2')else writeln(a,' n''est pas divisible par 2');end;
3:begin if div3(a) then writeln(a,' est divisible par 3')else writeln(a,' n''est pas divisible par 3');end;
4:begin if div4(a) then writeln(a,' est divisible par 4')else writeln(a,' n''est pas divisible par 4');end;
5:begin if div5(a) then writeln(a,' est divisible par 5')else writeln(a,' n''est pas divisible par 5');end;
6:begin if (div2(a))and(div3(a)) then writeln(a,' est divisible par 6')else writeln(a,' n''est pas divisible par 6');end;
7:begin if div7(a) then writeln(a,' est divisible par 7')else writeln(a,' n''est pas divisible par 7');end;
8:begin if (div2(a))and(div4(a)) then writeln(a,' est divisible par 8')else writeln(a,' n''est pas divisible par 8');end;
9:begin if div9(a) then writeln(a,' est divisible par 9')else writeln(a,' n''est pas divisible par 9');end;
11:begin if div11(a) then writeln(a,' est divisible par 11')else writeln(a,' n''est pas divisible par 11');end;
25:begin if div25(a) then writeln(a,' est divisible par 25')else writeln(a,' n''est pas divisible par 25');end;
end;
end;
sunny

Ilyes KHAILI

Messages : 24
Date d'inscription : 13/11/2008
Age : 34

Revenir en haut Aller en bas

divisibilité Empty Re: divisibilité

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum