Ir ao conteúdo
  • Cadastre-se
nerdtetudo

RESOLVIDO Erro em calculadora

Recommended Posts

Ola pessoal, eu sou nova em programação e precisei fazer uma calculadora no delphi para um trabalho de escola, com varios tipos de funções na calculadora, e após fazer uma operação a calculadora deveria "limpar" e voltar a tela inicial, estava dando tudo certinho ate eu colocar a operação de conversão para decimal e binario e fatorial, pois quando coloco a função para limpar a tela ele limpa a tela antes de aparecer o resultado, caso alguem pudesse me ajudar, o codigo completo da calculadora esta em anexo  

program calculadorafinalfatorial2;{$APPTYPE CONSOLE}uses  SysUtils,  Crt in '..\..\..\Downloads\crt.pas';Varop:char;bin,strquoc:string;n1,n2,res,z,N,i,resu,expoente,tam,dec,quoc,rest:integer;v1,v2,resp,decimal:real;beginTextBackground(magenta);clrscr;z:=0;repeatTextColor(White);writeln('                          C A L C U L A D O R A:');writeln('Escolha uma opcao:');writeln('(+)para soma                 (P)para porcentagem:');writeln('(-)para subtracao:           (F)para fatorial:');writeln('(*)para multiplicacao:       (B)para conversao binario -> decimal:');writeln('(#)para divisao:             (D)para conversao decimal -> binario:');writeln('(E)para exponenciacao:       (S)para sair:');writeln('(R)para raiz quadrada:');readln(op);case op of  '+':  begin  TextColor(Black);  writeln('SOMA');  writeln('Escreva o primeiro valor');  readln(n1);  writeln('Escreva o segundo valor');  readln(n2);  res:=n1+n2;  writeln(n1,'+',n2,'=',res);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;  '-':  begin  TextColor(Black);  writeln('SUBTRACAO');  writeln('Escreva o primeiro valor');  readln(n1);  writeln('Escreva o segundo valor');  readln(n2);  res:=n1-n2;  writeln(n1,'-',n2,'=',res);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;  '*':    begin TextColor(Black);  writeln('MULTIPLICACAO');  writeln('Escreva o primeiro valor');  readln(n1);  writeln('Escreva o segundo valor');  readln(n2);  res:=n1*n2;  writeln(n1,'*',n2,'=',res);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;   '#':  begin  TextColor(Black);  writeln('DIVISAO');  writeln('Escreva o primeiro valor');  readln(v1);  writeln('Escreva o segundo valor');  readln(v2);  resp:=v1/v2;  writeln(v1:0:0,'/',v2:0:0,'=',resp:0:0);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;    'E','e':  begin  TextColor(Black);  writeln('EXPONENCIACAO');  writeln('Escreva o primeiro valor');  readln(n1);  writeln('Escreva o segundo valor');  readln(n2);  resp:= n1;  for i:=1 to n2-1 do  begin  resp:=n1*resp;  end;  writeln(n1,' elevado a ',n2,'=',resp:0:0);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;   'R','r':   begin   TextColor(Black);  writeln('RAIZ QUADRADA');  writeln('Escreva um valor');  readln(n1);   resp:= exp(ln(n1)*0.5);  writeln('A raiz de ',n1,' e ',resp:0:0);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;     'P','p':   begin   TextColor(Black);  writeln('PORCENTAGEM');  writeln('Escreva o primeiro valor');  readln(n1);  writeln('Escreva o segundo valor');  readln(n2);  resp:=(n1/100)*n2;  writeln(n2,' porcento de ',n1,'=',resp:0:0);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;  'B','b':  begin  TextColor (Black);  writeln('BINARIO PRA DECIMAL');  writeln ('Informe um número binário ');    read (bin);    tam:=length(bin);    for i:=tam downto 1 do      begin        if bin[i]='1' then          decimal:=decimal+(exp (expoente*ln(2)));        expoente:=expoente+1;    end;    write ('A conversao de ',bin,' para decimal e:  ',decimal:0:0);    writeln('Pressione enter para continuar...');    readln;    clrscr;    end;    'd','D':    begin    writeln ('Digite o valor decimal ');    read (dec);    quoc:=dec;    while (quoc>=2) do      begin        rest:=quoc mod 2;        str(rest,strquoc);        bin:=strquoc+bin;        quoc:=quoc div 2;      end;    str(quoc,strquoc);    bin:=strquoc+bin;    writeln ('A conversao de ',dec,' para binario e: ',bin);    writeln('Pressione enter para continuar...');  readln;  clrscr;    end;  'F','f':  begin  TextColor(Black);  writeln('FATORIAL');resu:=1;while (resu=1) dobeginwriteln('Digite o numero fatorial:');readln(N)   ;I:=N;while(I>1) dobeginn:=n*(I-1);I:=I-1;end;Writeln ('O fatorial e ',N);readln (resu);  writeln('Pressione enter para continuar...');  readln;  clrscr;  end;  end;    'S','s':  begin  writeln('Pressione enter para sair');  readln;  z:=1  end;  else  writeln('Opcao errada! Escolha outra opcao');  end;  until(z=1);end.

calculadoradelphi.txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×