Ir ao conteúdo

Pascal/Delphi Como juntar 3 em 1, portas Logicas.


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Eu não sei como juntar essas 3 variáveis (be,bc,aa), para que eu possa converter para decimal.
 

Spoiler

program somadorbinario;
uses crt;


VAR a,b,c,saida,er,era, d,e, f,h, g,i,j, x,t, z, w,y,u,r:Integer;
aa,ab,ba,bb,bc,bd,mo,be:integer;
resu,ve:array [1..3] of integer;

procedure BinToDec(nux:string);
var
		tam, digito, i, expoente: integer;
		dec: real;
		
begin
	expoente:= 0;
	dec:= 0;
	tam:= length(nux);
	For i:= tam downto 1 do
		begin
		case nux[i] of 
			'1' : digito:=1 ;
			'0' : digito:=0 ;
			
		end;
	dec:= dec+digito*(exp(expoente*ln(2)));
	expoente:= expoente +1;
	end;
	end;

function portand (a, b:Integer):Integer ;
Begin
  
  begin
    IF (a=1) and (b=1) then
    x:=1
    Else
    x:=0;
  End;
  
  portand:=(x);
  
End;

Function portor (a, b:Integer):Integer;

Begin
  //Readln (A, b);
  
  IF (a=1) or (b=1) then
  X:=1
  Else
  X:=0;
  
  portor:=(x);
End;

Function notebook (z:Integer):Integer ;
Begin
  IF z=1 then
  Z:=0
  Else
  Z:=1;
  notebook:=(z);
End;

Function portxor (a, b:Integer):Integer ;

Begin
  
  W:=notebook (a);
  Y:=notebook (b);
  U:=Portand (w,b);
  R:=Portand (a,y);
  t:=Portor (u, r);
  portxor:=(t);
  
  
  
End;

Function meiosomador (er, era:Integer):integer;

Begin
  
  D:=Portxor (er, era);
  C:=Portand (er, era);
  saida:=c;
  writeln ('resultado do meio somador: saida> ',c,' soma> ',d);
  Meiosomador:= (c);
  
End;

Function Somadorfull (a, b,i,j:Integer):Integer;

Begin
  
  //meio somador
  aa:= Portxor (a,b); //luz
  ab:= Portand (a,b);
  
  // somador pleno
  ba:= Portxor (i,j);
  bb:= Portand (i,j);
  bc:= Portxor (ba,ab);  //luz
  bd:= Portand (ab,ba);
  be:= portor  (bd,bb); //luz
  
  
  writeln (be,bc,aa);
  
  {resu[1]:= (be);
  resu[2]:= (bc);
  resu[3]:= (aa);
  for mo:= 1 to 3 do 
  //ve:= resu[mo]*3;
  writeln (resu[mo]);}
  
  
  Somadorfull:= (aa);
  
End;

begin
  
  a:=1;
  b:=1;
  //
  i:=1;
  j:=1;
  
  
  Somadorfull (a,b,i,j);
  
  
end.

 

 

  • Curtir 1
  • Solução
Postado

@Lucas Pelepek    essas três variáveis são do tipo integer , então para juntar elas você pode colocar uma variável para pegar esse total e para isso você pega a primeira + segunda multiplicada por 10  +  a terceira  multiplicada por 100  e se tivesse uma quarta então multiplicaria por 1000 ,  então seria assim  :

total := ((aa)+(bc*10))+be*100;

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!