domingo, 22 de maio de 2011

Como colocar o expoente no pascal zim?

A expressão ""(exp (expoente*ln(2)))"" equivale a potência, pois o pascalzim não reconhece a função ""^"".


codigo

Program binario_decimal com Expoente ;


  var


    binario:string;


    i,expoente,tam:integer;


    decimal:real;


  Begin


    write ('Informe um número binário ');


    read (binario);


    tam:=length(binario);


    for i:=tam downto 1 do


      begin


        if binario[i]='1' then


          decimal:=decimal+(exp (expoente*ln(2)));


        expoente:=expoente+1;


      end;


    write ('O número binário ',binario,' é igual a ',decimal:0:0,' decimal');


  end.


Código:






Program decimal_binario ;


  var


    decimal,quociente,resto:integer;


    binario,strresto,strquociente:string;


  Begin


    write ('Digite o valor decimal ');


    read (decimal);


    quociente:=decimal;


    while (quociente>=2) do


      begin


        resto:=quociente mod 2;


        str(resto,strquociente);


        binario:=strquociente+binario;


        quociente:=quociente div 2;


      end;


    str(quociente,strquociente);


    binario:=strquociente+binario;


    writeln ('O valor decimal ',decimal,' em binário é ',binario);


  End.






Código: Binario









Program binario_decimal_binario ;


  var


    sair:boolean;


    opcao:char;


  procedure binario_decimal;


    var


      binario:string;


      i,expoente,tam:integer;


      decimal:real;


      vld:boolean;


  Begin


      clrscr;


      writeln;


      write ('  Informe o número binário ');


      read (binario);


      tam:=length(binario);


      vld:=true;


      for i:=tam downto 1 do


        begin


  if binario[i]='1' then


            decimal:=decimal+(exp (expoente*ln(2)));


          expoente:=expoente+1;


          if (binario[i]<>'1') and (binario<>'0') then


            vld:=false;


        end;


  writeln;


      if (vld=false) then


        writeln ('  O número informado é inválido! possui dígitos diferentes de 1 e 0')


      else


    begin  


      writeln ('  O número binário ',binario,' é igual a ',decimal:0:0,' decimal');

          writeln;

          write ('  Pressione qualquer tecla para voltar ao menu principal ');

        end;

      readkey;  

  End;

  procedure decimal_binario;

    var

      decimal,quociente,resto:integer;

      binario,strresto,strquociente:string;

    Begin

      clrscr;

      writeln;

  write ('  Informe o valor decimal ');

      read (decimal);

      quociente:=decimal;

      while (quociente>=2) do

        begin

          resto:=quociente mod 2;

          str(resto,strquociente);

          binario:=strquociente+binario;

          quociente:=quociente div 2;

        end;

      str(quociente,strquociente);

      binario:=strquociente+binario;

      writeln;

  writeln ('  O valor decimal ',decimal,' é igual a ',binario,' em binário');

      writeln;

      write ('  Pressione qualquer tecla para voltar ao menu principal ');

      readkey;

    End;

  Begin

    repeat

      clrscr;

  textcolor (lightred);

      writeln;

      writeln;

  writeln (' Informe a opção desejada');

  writeln;

  writeln;

  write (' 1');

  textcolor (lightgreen);

  writeln (' - Transformar numero binário em decimal');

  writeln;

  textcolor (lightred);

  write (' 2');

  textcolor (lightgreen);

  writeln (' - Transformar numero decimal em binário');

  textcolor (lightred);

  writeln;

  write (' 3');

  textcolor (lightgreen);

  write (' - Sair');

  opcao:=readkey;

  case opcao of



    #49:binario_decimal;

    

    #50:decimal_binario;

    

    #51:sair:=true;

   

  end; 

    until (sair=true);

    clrscr;

    writeln;

    write ('                         

    readkey;

  End.







Fonte:http://forum.clubedohardware.com.br/programa-decimal-binario/568705

Duvidas, criticas ou sugestões, poste um comentário.

Nenhum comentário:

Postar um comentário