Pesquise no PCFórum - Digite sua dúvida aqui
Bem-vindo, Visitante. Por favor efetue Login ou Registre-se
PCFORUM.com.br

    
Notícias:
  Home Fórum Notícias Anuncie AjudaLoginCadastre-se  
 

Páginas: 1 2 
Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS BIN (Lido 8712 vezes)   
dai


Offline

YaBB Rulez!

Postagens: 10

Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS BIN
17.03.2005 às 19:51:22
 
POR FAVOR !!!!!!!!!!!!!! ME AJUUUUUDEEEEEMMMMMM !!!!!!!!!!! ??? PRECISO MUITO DE UM PROGRAMA EM PASCAL QUE LEIA O VALOR DE DOIS NUMEROS BINARIOS E SOME-OS. Indeciso

         OBS* A RESPOSTA DA SOMA TEM QUE SER DADA EM NUMEROS BINARIOS!!!!!!!!!!!!!
     AE GALERA SE ALGUEM PUDER ME AJUDAR DOU UM BEIJO NA ... Beijo
     HA HA HA HA  Gargalhando!!!!!!! BJOS!!!!!!!!
                     DAI.
Voltar ao topo
 
 
Visualizar Perfil   IP registrado
PCRobô
Divulgador

Online

PCFórum, o mais completo fórum de informática do Brasil!

Postagens: 99999999
Brasil
Gênero: male
Anúncios

Voltar ao topo
Email Visualizar Perfil IP registrado
Rodrigo Caldeira - Lysi Logik


Offline

Pra relaxar, só
tomando uma
gelada...

Postagens: 1050
São Paulo
Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #1 - 22.03.2005 às 17:25:41
 
Opa!! gostei da ideia do bjo!! heheheheh!! vou cobrar dps!!!

Mas assim, vc sabe como eh feita a soma de dois números binarios??

Se não souber, aí vai:

A coisa funciona do mesmo jeito q a soma de numeros decimais. Assim, segue a regra do "vai um"

exemplo:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 e "vai um"

Suponhamos dois numeros binario 110011 e 100110. A soma fica assim:

 110011
 100110 +
------------
1011001

vamos por partes, da direita para a esquerda
1 + 0 = 1
1 + 1 = 0 e "vai um"
0 + 1 = 1. Pega-se o "vai um" do outro dígito e fica 0 e "vai um" d novo
0 + 0 = 0. Pega-se o "vai um" do outro digito e fica 1
1 + 0 = 1
1 + 1 = 0 e "vai um"

Sobrou o "vai um" da última casa. Como nos decimais, adiciona-se uma casa à esquerda da resposta, somando com o um.
Então, a última casa eh 1

Conseguiu entender +- a lógica do negócio???

Entaum, pra passar isso pra um programa, primeiro vc tem q ter duas strings q receberão os números binarios para a soma e uma terceira string que será o resultado. Também tem q ter uma variavel char chamada... vai_um

Vc deve passar pelas duas string, da direita para a esquerda, realizando a soma de cada casa.  Mas vc tem q ver um jeito pra considerar os "vai_um"'s.

Esclareceu alguma coisa ou só piorou a situação???

bjs!
Voltar ao topo
 
 
Visualizar Perfil WWW 74010618 rodrigocaldeiralima@hotmail.co   IP registrado
dai


Offline

YaBB Rulez!

Postagens: 10

Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #2 - 22.03.2005 às 21:44:23
 
BRIGADÃOOOOOOO!!!!!!!!!!!
VC MERECE MILHÕE DE BJOS!!!!!!!! SE NÃ FOSSE VC EU NÃO IRIA ACERTAR FAZER ESSA  "PARADA" JAMAIS .
!!!!!!!!! TE ADOROOOOOOOO!!!!!!!  BJOS!!!!
DE:  DAI
PARA: RODRIGO(BEBADO)
Voltar ao topo
 
 
Visualizar Perfil   IP registrado
brunofowl


Offline

YaBB Rulez!

Postagens: 3

Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #3 - 27.03.2005 às 19:50:45
 
alguem poderia  colocar esse programa aqui em pseudo linguagem por favor? estou meio confuso d como fazer...vlw!
Voltar ao topo
 
 
Visualizar Perfil   IP registrado
dai


Offline

YaBB Rulez!

Postagens: 10

Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #4 - 28.03.2005 às 20:19:15
 
gracas a bebado consegui!!!!!!!!!!!!!
segue aqui o programa que soma dois numeros binarios (para ser executado em pascal).!!!!!!!!!!!!
bjos !!!!!        DAI.!!!!!!

Program soma_binarios;

Uses WinCrt;  

Var
  bin1, resposta,bin2, result, result_final: string [20] ;
  n1, n2, i,alg1, alg2, somabin, vai, vem, cont, erro: integer;




Begin
repeat
clrscr;
 Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 Writeln ('                   Programa para somar números Binários!!!!!');
 Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 writeln;
 result_final:='';  {zero esta variável, pois quando o loop é feito a resposta anterior fica armazenada e é repetida}
 result:= '';
 Write ('   Digite o 1º número:  ');
 readln (n1);
 str (n1, bin1);
 for i:=1 to length(bin1) do   {este for foi criador para tratar o erro quando o usuário digitar um número não binário}
   if ( bin1[i] <> '0' ) and ( bin1[i] <>'1') then
     begin
       clrscr;
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       Writeln ('                   Programa para somar números Binários!!!!!');
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       writeln;
       writeln ('   Lembrete: Números binários são compostos por zeros e uns!!!!');
       write   ('   Redigite o número:   ');
       readln(n1);
       str (n1, bin1);  {transforma a variável numérica em uma string}
     end;

 write ('   Digite o 2º Número:+ ');
 readln (n2);
 str (n2, bin2);
 for i:=1 to length(bin2) do   {este for também foi criador para tratar o erro quando o usuário digitar um número não binário}
   if ( bin2[i] <> '0' ) and ( bin2[i] <>'1') then
     begin
       clrscr;
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       Writeln ('                   Programa para somar números Binários!!!!!');
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       writeln;
       writeln ('   Digite o 1º número:  ',n1);
       writeln ('   Lembrete: Números binários são compostos por zeros e uns!!!!');
       write   ('   Redigite o numero:   ');
       readln(n2);
       str (n2, bin2);  {transforma a variável numérica em uma string}
     end;

 if length(bin1) > length (bin2) then   {outro problema que poderia ocorrer é um número digitado ser maior que o outro}
   repeat                               {portanto foi criado esse tratamento para colocar zeros quando não hover número}
      bin2:= '0' + bin2;                {digitado pelo usuário do programa fazendo com que eles tenham o mesmo tamanho.}
   until length(bin1) = length (bin2)
 else
   if length(bin1) < length(bin2) then
     repeat
       bin1:= '0' + bin1;
    until length(bin1) = length(bin2);

 vem:=0;                              
 cont:= length(bin1);

 while cont >= 1 do
 begin
   val(bin1[cont], alg1, erro);     {essa funcção (val) transforma uma string em um número inteiro, somente em inteiro}
   val(bin2[cont], alg2, erro);  

    if (vem = 0) and (alg1 = 0) and (alg2 = 0) then     {agora vem as condições que efetuam os testes das somas dos números}
    begin                                               {se vai1,vem1, se é zero ou um, etc.}
       vai := 0;            
       somabin := 0;
    end
    else
       if ((vem = 0) and (alg1 = 1) and (alg2 = 0)) or
          ((vem = 0) and (alg1 = 0) and (alg2 = 1)) then
       begin
          vai := 0;
          somabin := 1;
       end
       else
          if ((vem = 0) and (alg1 = 1) and (alg2 = 1)) then
          begin
             vai := 1;
             somabin := 0;
          end
          else
             if (vem = 1) and (alg1 = 0) and (alg2 = 0) then
             begin
                vai := 0;
                somabin := 1;
             end
             else
                if ((vem = 1) and (alg1 = 1) and (alg2 = 0)) or
                   ((vem = 1) and (alg1 = 0) and (alg2 = 1)) then
                begin
                   vai := 1;
                   somabin := 0;
                end
                else
                   if (vem = 1) and (alg1 = 1) and (alg2 = 1) then
                   begin
                      vai := 1;
                      somabin := 1;
                   end;

    str(somabin, result);     {transforma o resulta em uma string para que possa ser invertido}
    result_final := result + result_final; {o número invertido é acumulado em result_final}
    vem := vai;
    cont:= cont - 1; {contador que para o estrutura de repetição}
 end;

 if vem = 1 then
    result_final := '1' + result_final; {trratamento de erro}
 writeln ('   ---------------------------');
 writeln ('   O total da soma é:  ', result_final);
 writeln;
 writeln ('                  +++++++++++++++++++++++++++++++++++++++++');
 writeln ('                   Quando desejar sair aperte a tecla ESC.');
 writeln ('                  +++++++++++++++++++++++++++++++++++++++++');
 resposta:=readkey;
until resposta = #27; {condição para sair do programa}


     
 
End.

Voltar ao topo
 
 
Visualizar Perfil   IP registrado
PCRobô
Divulgador

Online

PCFórum, o mais completo fórum de informática do Brasil!

Postagens: 99999999
Brasil
Gênero: male
Anúncios

Voltar ao topo
Email Visualizar Perfil IP registrado
Rodrigo Caldeira - Lysi Logik


Offline

Pra relaxar, só
tomando uma
gelada...

Postagens: 1050
São Paulo
Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #5 - 28.03.2005 às 20:25:43
 
Boa!!!

Eh isso ae! Parabens!!!


bjs!
Voltar ao topo
 
 
Visualizar Perfil WWW 74010618 rodrigocaldeiralima@hotmail.co   IP registrado
M@uro


Offline

Digitalizando e
absorvendo dados...

Postagens: 768
RS
Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #6 - 30.03.2005 às 04:26:53
 
[quote author=dai  link=1111089082/0#4 date=1112041155]gracas a bebado consegui!!!!!!!!!!!!!
segue aqui o programa que soma dois numeros binarios (para ser executado em pascal).!!!!!!!!!!!!
bjos !!!!!        DAI.!!!!!!

Program soma_binarios;

Uses WinCrt;  

Var
  bin1, resposta,bin2, result, result_final: string [20] ;
  n1, n2, i,alg1, alg2, somabin, vai, vem, cont, erro: integer;




Begin
repeat
clrscr;
 Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 Writeln ('                   Programa para somar números Binários!!!!!');
 Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 writeln;
 result_final:='';  {zero esta variável, pois quando o loop é feito a resposta anterior fica armazenada e é repetida}
 result:= '';
 Write ('   Digite o 1º número:  ');
 readln (n1);
 str (n1, bin1);
 for i:=1 to length(bin1) do   {este for foi criador para tratar o erro quando o usuário digitar um número não binário}
   if ( bin1[i] <> '0' ) and ( bin1[i] <>'1') then
     begin
       clrscr;
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       Writeln ('                   Programa para somar números Binários!!!!!');
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       writeln;
       writeln ('   Lembrete: Números binários são compostos por zeros e uns!!!!');
       write   ('   Redigite o número:   ');
       readln(n1);
       str (n1, bin1);  {transforma a variável numérica em uma string}
     end;

 write ('   Digite o 2º Número:+ ');
 readln (n2);
 str (n2, bin2);
 for i:=1 to length(bin2) do   {este for também foi criador para tratar o erro quando o usuário digitar um número não binário}
   if ( bin2[i] <> '0' ) and ( bin2[i] <>'1') then
     begin
       clrscr;
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       Writeln ('                   Programa para somar números Binários!!!!!');
       Writeln ('   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
       writeln;
       writeln ('   Digite o 1º número:  ',n1);
       writeln ('   Lembrete: Números binários são compostos por zeros e uns!!!!');
       write   ('   Redigite o numero:   ');
       readln(n2);
       str (n2, bin2);  {transforma a variável numérica em uma string}
     end;

 if length(bin1) > length (bin2) then   {outro problema que poderia ocorrer é um número digitado ser maior que o outro}
   repeat                               {portanto foi criado esse tratamento para colocar zeros quando não hover número}
      bin2:= '0' + bin2;                {digitado pelo usuário do programa fazendo com que eles tenham o mesmo tamanho.}
   until length(bin1) = length (bin2)
 else
   if length(bin1) < length(bin2) then
     repeat
       bin1:= '0' + bin1;
    until length(bin1) = length(bin2);

 vem:=0;                              
 cont:= length(bin1);

 while cont >= 1 do
 begin
   val(bin1[cont], alg1, erro);     {essa funcção (val) transforma uma string em um número inteiro, somente em inteiro}
   val(bin2[cont], alg2, erro);  

    if (vem = 0) and (alg1 = 0) and (alg2 = 0) then     {agora vem as condições que efetuam os testes das somas dos números}
    begin                                               {se vai1,vem1, se é zero ou um, etc.}
       vai := 0;            
       somabin := 0;
    end
    else
       if ((vem = 0) and (alg1 = 1) and (alg2 = 0)) or
          ((vem = 0) and (alg1 = 0) and (alg2 = 1)) then
       begin
          vai := 0;
          somabin := 1;
       end
       else
          if ((vem = 0) and (alg1 = 1) and (alg2 = 1)) then
          begin
             vai := 1;
             somabin := 0;
          end
          else
             if (vem = 1) and (alg1 = 0) and (alg2 = 0) then
             begin
                vai := 0;
                somabin := 1;
             end
             else
                if ((vem = 1) and (alg1 = 1) and (alg2 = 0)) or
                   ((vem = 1) and (alg1 = 0) and (alg2 = 1)) then
                begin
                   vai := 1;
                   somabin := 0;
                end
                else
                   if (vem = 1) and (alg1 = 1) and (alg2 = 1) then
                   begin
                      vai := 1;
                      somabin := 1;
                   end;

    str(somabin, result);     {transforma o resulta em uma string para que possa ser invertido}
    result_final := result + result_final; {o número invertido é acumulado em result_final}
    vem := vai;
    cont:= cont - 1; {contador que para o estrutura de repetição}
 end;

 if vem = 1 then
    result_final := '1' + result_final; {trratamento de erro}
 writeln ('   ---------------------------');
 writeln ('   O total da soma é:  ', result_final);
 writeln;
 writeln ('                  +++++++++++++++++++++++++++++++++++++++++');
 writeln ('                   Quando desejar sair aperte a tecla ESC.');
 writeln ('                  +++++++++++++++++++++++++++++++++++++++++');
 resposta:=readkey;
until resposta = #27; {condição para sair do programa}


     
 
End.

[/quote]

Ae a soma não tem de numeros com sinal????  Gargalhando
Voltar ao topo
 
 
Visualizar Perfil WWW M@uro M@uro   IP registrado
Rodrigo Caldeira - Lysi Logik


Offline

Pra relaxar, só
tomando uma
gelada...

Postagens: 1050
São Paulo
Re: Re: PROGRAMA EM PASCAL PARA SOMAR DOIS NUMEROS
Resposta #7 - 30.03.2005 às 11:33:49
 
hehehehhehehe!!!

mta calma nessa hora M@uro!

Mas tbm agora fica fácil fazer esquema com sinal....

alguém sabe como eh o algoritmo pra fazer operações de soma com numeros negativos??

[]'s!
Voltar ao topo
 
 
Visualizar Perfil WWW 74010618 rodrigocaldeiralima@hotmail.co   IP registrado
Páginas: 1 2 



Visite nossa página inicial e veja mais dicas e conteúdos! Clique aqui!!