Ecriture de procédure et fontion en pascal
bild
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je voudrais écrire la procédure decompbin(nbre:integer; var nbrebin:nombrebinaire); qui qui décompose 1 décimal en binaire . on me demande de fais cela tableau mais je parviens à le faire seulement sans tableau et je voudrai que vous m'aider à le faire avec les tableaux
procedure decompbin(nbre:integer; var nbrebin:nombrebinaire);
var
N,Q,R:nombrebinaire;
BEGIN
readln(N);
repeat
Q:=N div 2 ;
R:=N mod 2;
writeln(R);
N:=Q;
until Q=0;
END.
je voudrais écrire la procédure decompbin(nbre:integer; var nbrebin:nombrebinaire); qui qui décompose 1 décimal en binaire . on me demande de fais cela tableau mais je parviens à le faire seulement sans tableau et je voudrai que vous m'aider à le faire avec les tableaux
procedure decompbin(nbre:integer; var nbrebin:nombrebinaire);
var
N,Q,R:nombrebinaire;
BEGIN
readln(N);
repeat
Q:=N div 2 ;
R:=N mod 2;
writeln(R);
N:=Q;
until Q=0;
END.
A voir également:
- Ecriture de procédure et fontion en pascal
- Turbo pascal - Télécharger - Édition & Programmation
- Écriture facebook - Guide
- Ecriture en gras - Guide
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
3 réponses
Le code peut être amélioré, (j'essaierai de le faire à la suite) mais pour te compléter voici :
La confiance n'exclut pas le contrôle
const Nmax=31; // 2^31 limite du type integer ! type Binaire=array[1..Nmax] of byte; procedure DecToBin(Dec:integer;var Bin:Binaire); var i,Q,R:integer; s:string; begin s:=''; for i:=1 to Nmax do Bin[i]:=0; repeat Q:=Dec div 2 ; R:=Dec mod 2; if R=0 then s:=s+'0' else s:=s+'1'; Dec:=Q; until Q=0; for i:=1 to length(s) do if s[i]='1' then Bin[Nmax-i+1]:=1; end; var Bin:Binaire; i:integer; begin DecToBin(13,Bin); for i:=1 to Nmax do write(Bin[i]); writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.--
La confiance n'exclut pas le contrôle
merci la procedure decompbin
pour les fontion decalage j'ai cherche ceux -ci
a gauche
fonction decalageg(var nbbin: nbrebinaire):integer;
const N=10;
var nbbin:nbrebinaire
i:integer;
BEGIN
i:=N;
nbin[pos N]:=nbin[pos N-1];
nbin[pos 1]:=0;i;=i+1];
end;
end;
A DROITE
fonction decalD(var nbbin:nbrebinaire):integer;
N=10;
var
nbbin:nbrebinaire;
i:integer;
BEGIN
i:=1;
nbbin[pos 2]:=nbbin[pos 3];
nbbin[pos N ]:=0;
end;
end;
pour les fontion decalage j'ai cherche ceux -ci
a gauche
fonction decalageg(var nbbin: nbrebinaire):integer;
const N=10;
var nbbin:nbrebinaire
i:integer;
BEGIN
i:=N;
nbin[pos N]:=nbin[pos N-1];
nbin[pos 1]:=0;i;=i+1];
end;
end;
A DROITE
fonction decalD(var nbbin:nbrebinaire):integer;
N=10;
var
nbbin:nbrebinaire;
i:integer;
BEGIN
i:=1;
nbbin[pos 2]:=nbbin[pos 3];
nbbin[pos N ]:=0;
end;
end;
Je ne suis pas sûr d'avoir compris quel était le but des fonctions de décalage...
S'agissait-il des opérations de multiplication et division par 2 ?
S'agissait-il des opérations de multiplication et division par 2 ?
const Nmax=31; // 2^31 limite du type integer ! type Binaire=array[1..Nmax] of byte; function DecaleGauche(var Bin:Binaire):byte; var i:integer; begin result:=Bin[1]; for i:=1 to Nmax-1 do Bin[i]:=Bin[i+1]; Bin[Nmax]:=0; end; function DecaleDroite(var Bin:Binaire):byte; var i:integer; begin result:=Bin[Nmax]; for i:=Nmax downto 2 do Bin[i]:=Bin[i-1]; Bin[1]:=0; end;
La confiance n'exclut pas le contrôle