Ir ao conteúdo
  • Cadastre-se

Augusto Henrique Ferreira

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

3
  1. Fala galera, beleza? Então, eu tenho que criar um programa que some números binários, e no geral creio que está dando certo mas agora eu tento compilar e diz que os dados informados no writeln da varivavel vetorial resp não são primitivos!(?) Segue o código de até agora: Program Pzim ; var bin1,bin2:string[4]; i,j,vai,expoente1,expoente2,tam1,tam2:integer; deci,deci1,deci2:real; resp:array[1..5] of string; Begin Writeln ('Soma de binários!'); Writeln ('Digite o primeiro número binário de quatro dígitos'); readln (bin1); Writeln ('Digite o segundo número binário de quatro dígitos'); readln (bin2); tam1:=length(bin1); for i:=tam1 downto 1 do Begin If bin1='1' then deci1:=deci1+(exp(expoente1*ln(2))); expoente1:=expoente1+1; End; Writeln ('O número binário ',bin1,' é igual a ',deci1:0:0,' decimal'); tam2:=length(bin2); for i:=tam2 downto 1 do Begin If bin2='1' then deci2:=deci2+(exp(expoente2*ln(2))); expoente2:=expoente2+1; End; Writeln ('O número binário ',bin2,' é igual a ',deci2:0:0,' decimal'); deci:=deci1+deci2; Writeln ('A soma dos números em decimal é igual a ',deci:0:0); Writeln; //soma vai:=0; for i:=tam1 downto 1 do Begin if (bin1='0') and (bin2='0') and (vai=0) then begin Writeln ('Desce 0'); resp[j]:='0'; vai:=0; end; if (bin1='0') and (bin2='1') and (vai=0) then begin Writeln ('Desce 1'); resp[j]:='1'; vai:=0; end; if (bin1='1') and (bin2='0') and (vai=0) then begin Writeln ('Desce 1'); resp[j]:='1'; vai:=0; end; if (bin1='1') and (bin2='1') and (vai=0) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='1') and (bin2='0') and (vai=1) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='0') and (bin2='1') and (vai=1) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='1') and (bin2='1') and (vai=1) then begin Writeln ('Sobe 1 e vai 1'); resp[j]:='1'; vai:=1; end; End; if vai=1 then Begin Writeln ('Desce 1'); resp[j]:='1'; end; Writeln (resp); Writeln ('Aperte qualquer tecla para sair'); Readln; End.
  2. Agora deu certo! Muito obrigado Simon e entendi o que você disse sobre o "algo não está funcionando no código", tentarei ser mais assertivo.
  3. Olá!!! estou tentando fazer um código que transforme um número hexadecimal em decimal, mas este aqui não está funcionando (dá para compilar tranquilo,mas a conversão fica errada). Alguém consegue resolver? Program HexToDec ; var numero:string; tam,digito,i,expoente:integer; deci:real; begin Writeln ('Digite um número hexadecimal'); readln (numero); expoente:=0; deci:=0; tam:=length(numero); for i:=tam downto 1 do begin case numero of '1': digito:=1; '2': digito:=2; '3': digito:=3; '4': digito:=4; '5': digito:=5; '6': digito:=6; '7': digito:=7; '8': digito:=8; '9': digito:=9; 'A': digito:=10; 'B': digito:=11; 'C': digito:=12; 'D': digito:=13; 'E': digito:=14; 'F': digito:=15; end; expoente:=expoente+1; deci:=deci+digito*(exp(expoente*ln(16))); end; Writeln ('O número decimal é ',deci:0:0); End.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!