É só copiar e compilar 



* -> Função que ativa a calculadora M->X_POS=ROW() M->Y_POS=COL() M->C_COR=SETCOLOR() M->CA_TELA=SAVESCREEN(0,53,14,79) SET CURSOR OFF SET COLOR TO /BG @ 1,54 CLEAR TO 13,78 SET COLOR TO W/BG @ 02,55 SAY REPL(CHR(220),23) @ 03,55 SAY CHR(219)+SPACE(21)+CHR(219) @ 04,55 SAY REPL(CHR(223),23) SET COLOR TO /w @ 00,53 TO 14,79 DOUBLE @ 06,55 SAY " 7 " @ 06,60 SAY " 8 " @ 06,65 SAY " 9 " @ 08,55 SAY " 4 " @ 08,60 SAY " 5 " @ 08,65 SAY " 6 " @ 10,55 SAY " 1 " @ 10,60 SAY " 2 " @ 10,65 SAY " 3 " @ 12,55 SAY " 0 " @ 12,63 SAY " . " SET COLOR TO W/B @ 06,70 SAY " - " @ 12,75 SAY " % " @ 08,70 SAY " + " @ 08,75 SAY " * " @ 10,75 SAY " / " SET COLOR TO W/R @ 10,70 SAY CHR(17)+CHR(196)+CHR(217) @ 11,70 SAY " " @ 12,70 SAY " = " @ 06,75 SAY "C/E" SET COLOR TO W M->C_RESULT=0 M->C_ALGA=SPACE(14) M->C_DEC="" M->C_DIG=CHR(0) M->C_VAR="C_ALGA" M->C_VERDAD=.F. SET COLOR TO W @ 03,56 SAY " "+STR(M->C_RESULT,19,4)+" " M->C_UOPER="" M->C_PERC=" " DO WHILE M->C_DIG<>CHR(27) M->C_DIG=CHR(INKEY(0)) IF M->C_DIG=CHR(28) ENDIF IF M->C_DIG=CHR(27) EXIT ENDIF M->C_VAR=IIF(M->C_DIG=".","M->C_DEC",M->C_VAR) M->C_ALGA=IIF(M->C_DIG="." .AND. M->C_ALGA=SPACE(14),SPACE(13)+"0",M->C_ALGA) IF M->C_DIG="%" IF M->C_VERDAD M->C_PERC=IIF(M->C_PERC="%"," ","%") SET COLOR TO /W @ 03,77 SAY M->C_PERC SET COLOR TO W ELSE @ 03,57 SAY SPACE(13)+"0.0000" ENDIF ELSEIF M->C_DIG $ "0123456789" .AND. LEN(LTRIM(&C_VAR))<>IIF(M->C_VAR="M->C_DEC",4,14) &C_VAR=IIF(M->C_VAR="M->C_DEC",&C_VAR+M->C_DIG,SUBS(&C_VAR+M->C_DIG,2)) @ 03,57 SAY M->C_ALGA+"."+SUBS(M->C_DEC+SUBS("00000",LEN(M->C_DEC)+1),1,4) M->C_VERDAD=IIF(M->C_VERDAD .AND. M->C_UOPER $ "="+CHR(13),.F.,M->C_VERDAD) ELSEIF M->C_DIG $ "+-/*="+CHR(13) IF M->C_VERDAD IF VAL(M->C_ALGA+"."+M->C_DEC)<>0 IF M->C_PERC="%" M->OPE_RA=STR(M->C_RESULT,19,4)+M->C_UOPER+"("+STR(M->C_RESULT,19,4)+"*"+M->C_ALGA+"."+SUBS(M->C_DEC+SUBS("00000",LEN(M->C_DEC)+1),1,4)+")/100.000" ELSE M->OPE_RA=STR(M->C_RESULT,19,4)+M->C_UOPER+M->C_ALGA+"."+SUBS(M->C_DEC+SUBS("00000",LEN(M->C_DEC)+1),1,4) ENDIF M->C_RESULT=&OPE_RA @ 03,57 SAY STR(M->C_RESULT,19,4) ENDIF ELSEIF M->C_DIG $ "+-/*" M->C_VERDAD=.T. M->C_RESULT=VAL(M->C_ALGA+"."+M->C_DEC) ENDIF SET COLOR TO N/W @ 03,55 SAY IIF(M->C_DIG $ "+-/*",M->C_DIG," ") @ 03,77 SAY " " SET COLOR TO W M->C_VAR="M->C_ALGA" M->C_ALGA=SPACE(14) M->C_DEC="" M->C_UOPER=M->C_DIG M->C_PERC=" " ELSEIF M->C_DIG $ "EeCc" M->C_VAR="M->C_ALGA" M->C_ALGA=SPACE(14) M->C_DEC="" M->C_PERC=" " IF M->C_DIG $ "Cc" M->C_VERDAD=.F. SET COLOR TO N/W @ 03,55 SAY " " @ 03,77 SAY " " SET COLOR TO W ENDIF @ 03,57 SAY SPACE(13)+"0.0000" ENDIF ENDDO SETCOLOR(M->C_COR) RESTSCREEN(0,53,14,79,M->CA_TELA) @ M->X_POS,M->Y_POS SAY ""
Site hosted by Angelfire.com: Build your free website today!