Hola Sheik.
Por casualidad tenía una calculadora sencilla por ahí. Pero dices que lo que necesitas es hacer la "apariencia" de la calculadora, o sea solo el dibujito. Esto es relativamente fácil.
Por si no es este el caso, ya que dices que la hiciste pero no era así, te dejo el código de una calculadora simple. Puedes usar números con decimales. Suerte!
Program calcu;
Uses Crt;
Var
Num1 : real;
Num2 : real;
Resultado : real;
Opcion : string;
Procedure Repita;
Begin
ClrScr; TextColor(10);
writeLn(' <<<<<< CALCULADORA. (Everest32.com) >>>>>>');
Writeln ('1: Sumar');
Writeln ('2: Restar');
Writeln ('3: Multiplicar');
Writeln ('4: Dividir');
Writeln ('5: Decimal a binario');
Writeln;
Writeln ('Escriba su opcion: '); writeln;
End;
Procedure Suma;
Begin
Write ('Ingrese primer numero: ');
Readln(Num1);
Write ('Ingrese segundo numero: ');
Readln(Num2) ;
Resultado :=(Num1 + Num2);
TextColor(6); writeln; writeln('Resultado: ', Resultado:0:8);
End;
Procedure Resta;
Begin
Write ('Ingrese primer numero: ');
Readln(Num1);
Write ('Ingrese segundo numero: ');
Readln(Num2);
Resultado := (Num1 - Num2);
TextColor(6); writeln; writeln('Resultado: ', Resultado:0:8);
End ;
Procedure Multiplica;
Begin
Write ('Ingrese primer numero: ');
Readln(Num1);
Write ('Ingrese segundo numero: ');
Readln(Num2);
Resultado := (Num1 * Num2);
TextColor(6); writeln; writeln('Resultado: ', Resultado:0:8);
End ;
Procedure Divide;
Begin
Write ('Ingrese primer numero: ');
Readln(Num1);
Write ('Ingrese segundo numero: ');
Readln(Num2);
Resultado := (Num1 / Num2);
TextColor(6); writeln; writeln('Resultado: ', Resultado:0:8);
End ;
Procedure Dec_a_Bin;
var I, Cociente, Contador: integer;
NumeroBin: array[1..16] of integer;
CadenaBin,CadenaTemp: string;
Begin
Contador := 1; CadenaBin := '';
For I := 1 to 16 do NumeroBin[I] := 0;
Write ('Ingrese numero a convertir: ');
Readln(Cociente);
Repeat
NumeroBin[Contador] := Cociente mod 2;
Contador := Contador + 1;
Cociente := Cociente div 2;
Until Cociente < 1;
TextColor(6); writeln; writeln('Resultado: ');
For I := 16 downto 1 do write(NumeroBin[I]);
End;
Begin
Repeat
Repita;
Readln(opcion); writeln;
If opcion = '1' then Suma;
If opcion = '2' then Resta;
If opcion = '3' then Multiplica;
If opcion = '4' then Divide;
if opcion = '5' then Dec_a_Bin;
TextColor(10); Writeln; Writeln('¨Desea continuar? (s/n)');
Readln(opcion);
until (opcion = 'n') or (opcion = 'N');
End.