منتديات الجلفة لكل الجزائريين و العرب - عرض مشاركة واحدة - موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
عرض مشاركة واحدة
قديم 2016-03-07, 21:31   رقم المشاركة : 2
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة menassel oussama مشاهدة المشاركة
'aimerais que vous me donnier la resolution de cet exercice
ecrire un programme en pascal en respectant les ètapes suivantes
- declarer une procedure "de 2 à 10 " qui reçoit un nombre binaire et retrouve son èquivalent en dècimal
- declarer les procèdures " de 2 à 8 " , " de 2 à 16 " , " de 8 à 2 " , "de 8à10" , "de8à16" ,"de10à2" , "de 10à2" , "de10à8" ,"de10à16" , "de16à2" , "de16à8" et "de16à10" dans le programme principale
- afficher le menue suivant :
choisissez une transformation
1- du binaire au dècimale
2- du binaire à l'octale
3-du binaire à hexadècimale
4- du octal au binaire
5- du octale au dècimale
6- du octale au hexadècimale
7-du dècimale au binaire
8-du dècimale à l'octale
9-du dècimale à hexadècimale
10- du hexadècimale au binaire
11- du hexadècimale à l'octale
12-du hexadècimale au dècimale
13-quitter
*quelle est votre choix
suivant le choix de l'utilisateur.donner la main pour ecrire un nombre et utiliser les procèdures prècedents pour afficher le rèsultat


كود:
program conv1_b_10;
uses wincrt;



function puissance(x,y:integer):longint;
begin
if y=0 then
puissance:=1
else
puissance:= x * puissance(x,y-1);
end;


function convb_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=length(s) downto 1 do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r + d * puissance(b,length(s)-i);
end;
convb_10:=r;
end;


function convb1_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=1 to length(s) do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r*b + d ;
end;
convb1_10:=r;
end;


function conv10_b1(n:longint;b:integer):string;
var
s,c:string;
d:integer;

begin
s:='';
repeat
d:=n mod b;
n:= n div b;
if d in [0..9] then
str(d,c)
else
    case d of
    10 : c := 'A';
    11 : c := 'B';
    12 : c := 'C';
    13 : c := 'D';
    14 : c := 'E';
    15 : c := 'F';
    end;
s:=c+s;
until n = 0;
conv10_b1:=s;
end;





var
ch:string;
b,b1:integer;


begin

writeln('saisir la valeur à convertir');
readln(ch);
writeln('dans quelle base?');
readln(b);
writeln('vers quelle base?');
readln(b1);
writeln(conv10_b1(convb1_10(ch,b),b1));

end.









رد مع اقتباس