program calculadorafinalfatorial2; {$APPTYPE CONSOLE} uses SysUtils, Crt in '..\..\..\Downloads\crt.pas'; Var op:char; bin,strquoc:string; n1,n2,res,z,N,i,resu,expoente,tam,dec,quoc,rest:integer; v1,v2,resp,decimal:real; begin TextBackground(magenta); clrscr; z:=0; repeat TextColor(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) do begin writeln('Digite o numero fatorial:'); readln(N) ; I:=N; while(I>1) do begin n:=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.