Program pascal
Fermé
jumpy07A2668
-
25 juil. 2008 à 12:17
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 - 28 juil. 2008 à 02:16
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 - 28 juil. 2008 à 02:16
Bonjour,
j'ai un pb encore sur la programmation
en effet je voudrais ecrire un programme qui convertie un nombre binaire lue dans un tableau et affiche le resultat en base 10;
et un autre qui le(le binaire lue) complemente à 2
j'ai un pb encore sur la programmation
en effet je voudrais ecrire un programme qui convertie un nombre binaire lue dans un tableau et affiche le resultat en base 10;
et un autre qui le(le binaire lue) complemente à 2
A voir également:
- Program pascal
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev-pascal - Télécharger - Édition & Programmation
- Invalid configuration information please run setup program ✓ - Forum Windows XP
- This program cannot be run in dos mode ✓ - Forum Programmation
4 réponses
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
25 juil. 2008 à 12:42
25 juil. 2008 à 12:42
salut,
fait vous même le départ avec les erreurs je vous aide à réaliser
fait vous même le départ avec les erreurs je vous aide à réaliser
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
26 juil. 2008 à 00:36
26 juil. 2008 à 00:36
En ce qui concerne ton premier problème (conversion inaire->décimale) voici quelques rectificatifs...
Je l'ai testé sur un exemple et il donne le bon résultat
On pourrait directement inclure le calcul de puissance2 dans la boucle de conversionBin
On pourrait envisager un type nombreBinaire=string[N] ce qui simplifierai l'écriture de nbBin pour l'utilisateur et ne nécessiterai que quelques modifications mineures du code...
En ce qui concerne ton deuxième problème je ne comprends pas trop quel résultat tu veux obtenir, et ton code ne m'a pas guère plus aidé à le comprendre, j'espère que Archi-Dessin sera plus inspiré...
Je l'ai testé sur un exemple et il donne le bon résultat
program conversion124; uses crt; const N=10; type nombreBinaire=array[1..N] of integer; function puissance2(n:integer):integer; var i:integer; begin result:=1; for i:=1 to n do result:=2*result; end; function conversionBin(var nbBin:nombrebinaire):integer; var i:integer; begin result:=0; for i:=0 to N-1 do result:=result+nbBin[N-i]*puissance2(i); end; var i:integer; nbBin:nombrebinaire; begin clrscr; writeln('entrez un nombre binaire (suite de ',N,' chiffres 0 ou 1) :'); for i:=1 to 10 do readln(nbbin[i]); writeln('la conversion decimale est : ',conversionBin(nbbin)); repeat until keypressed; end.Quelques remarques au passage :
On pourrait directement inclure le calcul de puissance2 dans la boucle de conversionBin
On pourrait envisager un type nombreBinaire=string[N] ce qui simplifierai l'écriture de nbBin pour l'utilisateur et ne nécessiterai que quelques modifications mineures du code...
En ce qui concerne ton deuxième problème je ne comprends pas trop quel résultat tu veux obtenir, et ton code ne m'a pas guère plus aidé à le comprendre, j'espère que Archi-Dessin sera plus inspiré...
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
26 juil. 2008 à 01:00
26 juil. 2008 à 01:00
Une version un peu plus "optimisée" :
La confiance n'exclut pas le contrôle
function BinToDec(var Bin:string):integer; var i,n,p:integer; begin n:=length(Bin); result:=0; p:=1; for i:=1 to n do begin if Bin[n-i+1]<>'0' then result:=result+p; p:=2*p; end; end;--
La confiance n'exclut pas le contrôle
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
26 juil. 2008 à 05:23
26 juil. 2008 à 05:23
salut,
pour le moument je vais prendre des notes de votre programme pour analyse puis dans un prochain contact je vous propose les anomalies et la résolution
pour le moument je vais prendre des notes de votre programme pour analyse puis dans un prochain contact je vous propose les anomalies et la résolution
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
28 juil. 2008 à 02:16
28 juil. 2008 à 02:16
salut,
le premier programme ne répond pas à votre question donc il est hors sujet
ilm répond à une question qui est très avancé
en plus je necrois pas que vous avez fait les deux programmes c à d copie coller ?????????????
le premier programme ne répond pas à votre question donc il est hors sujet
ilm répond à une question qui est très avancé
en plus je necrois pas que vous avez fait les deux programmes c à d copie coller ?????????????
25 juil. 2008 à 18:49
uses crt;
type
nombreBinaire=array[1..10] of integer;
var
i,j:integer;
nbBin:nombreBinaire;
procedure complement1(var nbBin:nombreBinaire);
var
j:integer;
begin
for j:=1 to 10 do
if nbBin[j]=0 then
begin
nbBin[j]:=nbBin[j]+1;
write(nbBin[j]:2);
end
else
if nbBin[j]=1 then
begin
nbBin[j]:=nbBin[j]-1;
write(nbBin[j]:2);
end;
end;
procedure complement2(var nbBin:nombreBinaire);
var
j:integer;
begin
for j:=10 downto 2 do
if nbBin[j]=0 then
begin
write(nbBin[j]:2);
end
else
if nbBin[j]=1 then
nbBin[j]:=1;
while j<=1 do
complement1(nbBin);
write(nbBin[j]:2);
end;
begin
clrscr;
writeln('entrez une suite de 0 et 1');
for j:=1 to 10 do
read(nbBin[j]);
writeln('le complement à 1 est: ');
complement1(nbBin);
writeln;
writeln('le complement à 2 est: ');
complement2(nbBin);
repeat
until keypressed;
end.
Voilà le deuxieme
program conversion124;
uses crt;
const
N=10;
type
nombreBinaire=array[1..N] of integer;
function puissance2(i:integer):integer;
var
nbre:integer;
begin
nbre:=i;
for i:=1 to 10 do
nbre:=2*nbre;
end;
function conversionBin(var nbBin:nombrebinaire):integer;
var
i,nbre,j:integer;
begin
nbre:=0;
for i:=0 to 9 do
for j:=10 downto 1 do
nbre:=nbre+nbBin[j]*puissance2(i);
i:=i+1;
j:=j-1;
conversionBin:=nbre;
end;
var
nbre,i:integer;
nbBin:nombrebinaire;
begin
clrscr;
write('entrez un nombre binaire ((suite de 0 et 1)):');
for i:=1 to 10 do
readln(nbbin[i]);
conversionBin(nbbin);
writeln('la conversion decimale est:',nbre);
repeat
until keypressed;
end.