Pascal

komane -  
 komane -
Bonjour,

aider moi svp
partie01: transcodage

définition1 : on donne le nom de CODAGE à l'opération qui consiste à représenter dans un certain code (c) , les nombre donnée dans un systéme de numération décimal.

définition2 : on donne de nom de décodage à l'op^ération qui consiste à représenter dans le systéme de numération décécimal les nombres donnée dans un certain code (c) .

définition 3 : soient 2 codes c1 et c2 , on appelle TRANSCODAGE de C1 à C2 , l'opération consiste à déterminer la représentation dans le code (c2) de tout nombre dont on conait la représentation dans le code C1

Travail Demandé :Réaliser un programme qui permet d'effectuer

le codage des nombres dans un systéme de base B

le décodage d'un nombre représenté dans un systéme de base b .

le transcodage des nombre d'un systéme de base B vers un systéme de Base B

Partie 2:Représentation des information

les information traites par l'ordinateur sont de different types ; mais elles sont toujours représentées sous forme binaire .le codage d'une information consiste à établir une correspondance entre la représentation externe de l'information et sa représentation interne qui est une suite de bits

TRAVAIL DEMANDé: realiser un programme qui permet de représenter

un nombre entier en binaire pur,en binaire signé,en complément à 1 et a 2.

un nombre réel en virgule flottante simlpe précision.

un nombre réel en virgule flottante simple et précision format IEEE
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. titfofol Messages postés 179 Statut Membre 9
     
    Bonjour Komane,

    Je suis désolé de te répondre comme ça, mais pour ainsi dire personne ne te répondra car ici sur ccm les bénévoles ne sont pas la pour faire ton travail, mais plutôt pour pouvoir t'aider dans le cas où tu serais vraiment bloqué... Essaye de travailler un peu en fesant marcher ta cervelle, et si tu n'y arrives pas la tu pourras poser ta question...

    Excuse-moi si tu as mal pris ce que je viens de te dire mais une autre personne aurait pu te le dire ou te laisser dans l'ignorance.

    bonne journée

    Cordialement

    Titfofol
    0
  2. barça
     
    program ex;
    uses wincrt;

    var
    n,b1,b2:integer;
    ch:string;

    function puis(x,n:integer):integer;
    var
    p,i:integer;
    begin
    p:=1;
    for i:=1 to n do
    p:=p*x;

    puis:=p;
    end;

    function conv_b_10(ch:string; b1:integer):integer;
    var
    x,e,s,i:integer;

    begin
    s:=0;

    for i:=1 to length(ch) do
    begin
    if ch[i] in['0'..'9'] then val(ch[i],x,e)
    else x:= ord(ch[i])-55;

    s:=s+(x*(puis(b1,length(ch)-i)));
    end;

    conv_b_10:=s;
    end;

    function conv_10_b(n,b2:integer):string;
    var
    ch,c:string;
    x:integer;
    begin

    ch:='';
    repeat
    x:=n mod b2;

    if x>=10 then c:=chr(x+55)
    else str(x,c);
    ch:=c+ch;
    n:=n div b2;
    until n=0;

    conv_10_b:=ch;
    end;

    begin
    writeln('donner base b1 et b2 et un nombre');
    readln(b1);
    readln(b2);
    readln(ch);
    n:=conv_b_10(ch,b1);
    ch:=conv_10_b(n,b2);
    writeln(ch);
    end.

    Conversion min base 16 au base 2

    program ex;
    uses wincrt;

    var
    ch:string;

    function bin(c:string):string;
    var
    ch,ch1:string;
    n,x,e,i:integer;

    begin

    ch:='0000';

    if c[1] in['0'..'9'] then val(c[1],n,e)
    else n:= ord(c[1])-55;

    i:=4;
    repeat
    x:= n mod 2;
    str(x,ch1);
    ch[i]:=ch1[1];
    i:=i-1;
    n:= n div 2;
    until n=0;

    bin:=ch;
    end;

    {*************************************}

    function conv_bin(ch:string):string;
    var
    ch1:string;
    i:integer;
    begin

    ch1:='';
    for i:=1 to length(ch) do
    ch1:=ch1+bin(ch[i]);

    conv_bin:=ch1;
    end;

    {************************}

    begin
    writeln('donner un nombre en base 16');
    readln(ch);
    writeln(conv_bin(ch));
    end.

    conversion de base 2 a base 8 et 16
    program test;
    uses wincrt;
    const
    ch1='01';
    type
    ch=string[46];
    chv=string[4];
    ch2=string[1];
    bits=3..4;
    var
    n,ph:string;
    b:byte;
    bit:bits;
    k:integer;
    v:chv;
    procedure saisie_base(var B : byte);
    begin
    repeat
    write('donner une base dans [8,16] : ');
    readln(B);
    until B in [8,16];
    end;

    function recherche(n:string):boolean;
    var
    i:integer;
    begin
    i:=0;
    repeat
    i:=i+1;
    until (pos(upcase(n[i]),ch1)=0) or (i > length(n));
    if i > length(n) then recherche:=true
    else recherche:=false;
    end;
    procedure saisie_ch(var n : string);
    begin
    repeat
    write('donner un nombre dans la base :');
    readln(n);
    until Recherche(n);
    end;

    function puissance (b,r:integer):integer;

    begin
    if r=0
    then puissance:=1
    else
    puissance:=puissance(b,r-1)*b;
    end;

    function convert (v:chv):ch2;
    var
    s,e,x,i:integer;
    u:string;
    begin
    s:=0;
    for i:=1 to length (v) do
    begin
    val(v[i],x,e);
    s:=s+x*puissance(2,length(v)-i);
    end;
    if s in[0..9] then str(s,u)
    else u:=chr(ord('a')+s-10);
    convert:=u;
    end;

    function converssion (n:string;b:byte):string;
    begin
    if b=8 then bit:=3
    else bit:=4;
    while length(n) mod bit <>0 do
    n:=concat('0',n);
    k:=length(n);
    ph:='';
    repeat
    v:=copy(n,k-bit+1,bit);
    ph:=concat(convert(v),ph);
    k:=k-bit;
    until k=0;
    converssion:=ph;
    end;

    function converssion (n:string;b:byte):string;
    begin
    if b=8 then bit:=3
    else bit:=4;
    while length(n) mod bit <>0 do
    n:=concat('0',n);
    k:=0;
    ph:='';
    repeat
    v:=copy(n,k+1,bit);
    ph:=concat(ph,convert(v));
    k:=k+bit;
    until k=length(n);
    converssion:=ph;
    end;

    begin
    Saisie_ch(n);
    saisie_base(b);
    write(converssion(n,b));
    end.

    ***********************************************************

    conversion de base 8 et 16 a base 2

    program test;
    uses wincrt;
    type
    ch=string[46];
    ch0=string[4];
    var
    n,v:string;
    b:byte;
    ph:string;

    u:string;
    r:integer;
    procedure saisie_base(var B : byte);
    begin
    repeat
    write('donner une base dans [2..36] : ');
    readln(B);
    until B in [2..36];
    end;
    procedure base(var ch1:ch;B:byte);
    var
    k:integer;
    x:string[1];
    begin
    if b <= 10 then
    begin
    ch1:='';
    for k:=0 to b-1 do begin str(k,x);ch1:=concat(ch1,x); end;
    end
    else
    begin
    ch1:='0123456789';
    for k:= 10 to b-1 do ch1:=concat(ch1,chr(ord('A')+k-10));
    end;
    end;
    function recherche(n:string;ch1:ch):boolean;
    var
    i:integer;
    begin
    i:=0;
    repeat
    i:=i+1;
    until (pos(upcase(n[i]),ch1)=0) or (i > length(n));
    if i > length(n) then recherche:=true
    else recherche:=false;
    end;
    procedure saisie_ch(var n : string);
    var
    ch1:ch;
    begin
    Base(ch1,B);
    repeat
    write('donner un nombre dans la base :');
    readln(n);
    until Recherche(n,ch1);
    end;

    function convert(c:char;b:byte):ch0;
    var j,x,e,r:integer;
    v:string[1];
    begin
    if c in ['0'..'9'] then val(c,x,e)
    else x:=ord(upcase(c))-ord('A')+10;

    if b=8 then begin
    u:='000';
    j:=3;
    end
    else
    begin
    u:='0000';
    j:=4;
    end;
    repeat
    r:=x mod 2;
    str(r,v);
    u[j]:=v[1];
    j:=j-1;
    x:=x div 2;
    until x=0;
    convert:=u;
    end;

    function conversion (n:string):string;

    var i:integer;
    begin
    ph:='';
    for i:=1 to length(n) do
    ph:=concat(ph,convert(n[i],b));
    conversion:=ph;
    end;

    begin
    saisie_base(b);
    Saisie_ch(n);
    write(conversion(n));
    end.

    ****************************************************************

    conversion de base 10 a l'autres bases

    program base10_base;
    uses wincrt;
    var
    n:integer;
    b:byte;

    procedure saisie_base(var b : byte);
    begin
    repeat
    write('donner une base dans [2..36] : '); readln(b);
    until b in [2..36];
    end;

    procedure saisie_n(var n : integer;x:integer);
    begin
    repeat
    write('donner un entier dans > ',x,' : '); readln(n);
    until n > x;
    end;

    Procedure affichage(x:byte);
    begin

    if x in [0..9] then write(x)
    else write(chr(ord('A')+ x - 10));
    end;

    procedure remplir (n:integer;b:byte);
    begin
    if n<>0 then
    begin
    remplir(n div b,b);
    affichage(n mod b);
    end;
    end;

    begin
    saisie_n(n,0);
    saisie_base(b);
    remplir(n,b);
    end.

    *******************************************************

    conversio autres bases a la base 10

    program base_base10;
    uses wincrt;
    type
    ch=string[46];
    var n:string;
    b:byte;
    p,s:integer;
    procedure saisie_base(var b : byte);
    begin
    repeat
    write('donner une base dans [2..36] : '); readln(b);
    until b in [2..36];
    end;

    procedure base (var ch1:ch;b:byte);
    var k:integer;
    x:string[1];
    begin
    if b<=10 then
    begin
    ch1:='';
    for k:=0 to b-1 do
    begin str(k,x); ch1:=concat(ch1,x);end;
    end
    else
    begin
    ch1:='0123456789';
    for k:=10 to b-1 do
    ch1:=concat(ch1,chr(ord('A')+k-10));
    end;
    writeln(ch1);
    end;

    function recherche (n:string;ch1:ch):boolean;
    var
    i:integer;
    begin
    i:=0;
    repeat
    i:=i+1;
    until (pos(upcase(n[i]),ch1)=0) or(i>length(n));
    if i>length(n) then recherche:=true
    else recherche:=false;
    end;

    procedure saisie_ch(var n:string);
    var ch1:ch;
    begin
    base (ch1,b);
    repeat
    write('donner un nombre dans la base: ');
    readln(n);
    until recherche (n,ch1);
    end;

    function puis (b,r:integer):integer;
    var i:integer;
    begin
    p:=1;
    for i:= 1 to r do
    p:=p*b;
    puis:=p;
    end;

    function conver(b:byte; n:string):integer;
    var
    i,e:integer;
    y:integer;
    x:string[1];
    begin
    s:=0;
    for i:=1 to length(n) do
    begin
    if n[i] in ['0'..'9'] then val(n[i],y,e)
    else y:= (ord(upcase(n[i]))-ord('A') + 10);

    s:=s+y*puis(b,length(n)-i);
    end;
    conver:=s;
    end;
    begin
    saisie_base(b);
    saisie_ch(n);
    writeln(conver(b,n));
    end.
    0
    1. komane
       
      for i:=1 to n do

      MErci beaucoup
      0