*******TASAERA*******
SET TALK OFF
KIERROS= .T.
DO WHILE KIERROS
STORE 0 TO LAS,VALI,VERT,TEST,NUM,LUKU
STORE 0 TO SUMMA,ALE,AIK,KOR,LKM,ONE,TAX,LYH,MAKSU
STORE 0 TO RATE,YHTMK,AMOUNT,KOKO,PROS
STORE 0 TO ABC,DEF,GHI,JKL,CALK,BRIEF,PAY
STORE 'N' TO VAST
STORE ' ' TO KYSY,VENT,ODOT
CLEAR
RIVI=1
TARKKAA = .T.
DO WHILE TARKKAA
@ 4,17 TO 17,57 DOUBLE
@ 7,23 SAY 'T A S A E R Ä L A I N A'
@ 9,23 SAY 'Lainasumma ' GET SUMMA PICT '99999999'
@ 9,54 SAY 'Mk'
@ 11,23 SAY 'Korko ' GET KOR PICT '99.99'
@ 11,51 SAY '%'
@ 13,23 SAY 'Maksuaika ' GET AIK PICT '99'
@ 13,49 SAY 'Vuotta'
@ 15,23 SAY '2,4 TAI 12 Maksua/V ' GET ONE PICT '99'
READ
IF ONE=12 .OR. ONE=4 .OR. ONE=2
TARKAA= .F.
EXIT
ELSE
@ 18,0 SAY 'Maksua/V täytyy olla 2,4 tai 12'
WAIT
@ 18,0 CLEAR TO 20,79
LOOP
ENDIF
ENDDO
IF SUMMA=0 .OR. KOR=0 .OR. AIK=0
@ 18,0 SAY 'Vastauksessa summa,korko tai aika oli 0'
WAIT
CLEAR
EXIT
ENDIF
IF ONE=12
LUKU=12
JKL=1200
LKM=AIK*12
VERT=LKM
ENDIF
IF ONE=4
LUKU=8
JKL=400
LKM=AIK*4
VERT=LKM
ENDIF
IF ONE=2
LUKU=6
JKL=200
LKM=AIK*2
VERT=LKM
ENDIF
TAX=KOR
ALE=SUMMA
ABC=(1+(KOR/(100*ONE)))^LKM
DEF=KOR/(100*ONE)
GHI=ABC*DEF/(ABC-1)*SUMMA
KOKO=GHI*LKM
PROS=KOKO-SUMMA
@ 18,18 SAY 'Näytölle tai kirjoittimelle N../..K ' GET VAST
READ
IF UPPER(VAST)='K'
@ 19,18 SAY 'Tulostus kirjoittimelle'
RIVI=1
SET DEVICE TO PRINT
ELSE
CLEAR
RIVI=1
ENDIF
@ RIVI,1 SAY 'T a s a e r ä l a i n a'
RIVI=RIVI+1
@ RIVI,1 SAY 'Lainasumma'
@ RIVI,14 SAY SUMMA PICT '99999999.99'
@ RIVI,26 SAY 'Mk'
@ RIVI,31 SAY 'Laina-aika'
@ RIVI,42 SAY AIK PICT '99'
@ RIVI,46 SAY 'Vuotta'
@ RIVI,54 SAY 'Korko'
@ RIVI,60 SAY KOR PICT '99.99'
@ RIVI,66 SAY '%'
RIVI=RIVI+1
@ RIVI,1 SAY 'Korko yht'
@ RIVI,13 SAY ROUND(PROS,0) PICT '999999999.99'
@ RIVI,26 SAY '"'
@ RIVI,31 SAY 'Maksutapa'
@ RIVI,42 SAY ONE PICT '99'
@ RIVI,46 SAY 'Kertaa/vuosi'
RIVI=RIVI+1
@ RIVI,1 SAY 'Yhteensä'
@ RIVI,13 SAY ROUND(KOKO,0) PICT '999999999.99'
@ RIVI,26 SAY '"'
@ RIVI,31 SAY 'Annuiteetti'
@ RIVI,43 SAY GHI PICT '999999999.99'
RIVI=RIVI+1
@ RIVI,1 SAY REPLICATE("-",69)
IF UPPER(VAST)='N'
RIVI=RIVI+2
@ RIVI,1 SAY 'Tulostus on < RET > ,Lopetus on L ' GET VENT
READ
IF UPPER(VENT)='L'
KIERROS= .F.
CLEAR
EXIT
ENDIF
CLEAR
RIVI=1
ELSE
RIVI=RIVI+2
ENDIF
@ RIVI,1 SAY 'Erä'
@ RIVI,11 SAY 'Korko'
@ RIVI,20 SAY 'Lyhennys'
@ RIVI,36 SAY 'Maksu'
@ RIVI,45 SAY 'Lainasumma'
RIVI=RIVI+1
ASKEL= .T.
DO WHILE ASKEL
RATE=ALE*TAX/JKL
AMOUNT=RATE+AMOUNT
CALK=CALK+RATE
LYH=GHI-RATE
BRIEF=LYH+BRIEF
MAKSU=RATE+LYH
PAY=MAKSU+PAY
YHTMK=LYH+YHTMK
LAS=LAS+1
VALI=VALI+1
TEST=TEST+1
@ RIVI,1 SAY LAS PICT '999'
@ RIVI,5 SAY ROUND(RATE,1) PICT '99999999.99'
@ RIVI,17 SAY ROUND(LYH,1) PICT '99999999.99'
@ RIVI,30 SAY ROUND(MAKSU,1) PICT '99999999.99'
@ RIVI,44 SAY ROUND(ALE,1) PICT '99999999.99'
IF VALI=ONE
NUM=NUM+1
RIVI=RIVI+2
@ RIVI,5 SAY INT(ROUND(CALK,0)) PICT '99999999'
@ RIVI,17 SAY INT(ROUND(BRIEF,0)) PICT '99999999'
@ RIVI,29 SAY INT(ROUND(PAY,0)) PICT '999999999'
@ RIVI,44 SAY NUM PICT '999'
IF NUM=1
@ RIVI,49 SAY 'Vuosi'
ELSE
@ RIVI,49 SAY 'Vuotta'
ENDIF
STORE 0 TO CALK,BRIEF,PAY,VALI
RIVI=RIVI+1
ENDIF
LKM=LKM-1
ALE=ALE-LYH
IF LAS<VERT
RIVI=RIVI+1
IF UPPER(VAST)='N' .AND. TEST=LUKU
@ RIVI,1 SAY 'Seuraava sivu on < RET > ,lopetus on L ' GET KYSY
READ
IF UPPER(KYSY)='L'
ASKEL= .F.
EXIT
ENDIF
@ 2,0 CLEAR TO 24,79
RIVI=2
TEST=0
ENDIF
ENDIF
IF LKM=0
ASKEL= .F.
EXIT
ELSE
LOOP
ENDIF
ENDDO
IF UPPER(KYSY)='L'
@ RIVI,1 CLEAR TO 24,79
ENDIF
@ RIVI,5 SAY REPLICATE("-",36)
RIVI=RIVI+1
@ RIVI,1 SAY 'Yht'
@ RIVI,4 SAY INT(ROUND(AMOUNT,0)) PICT '999999999'
@ RIVI,16 SAY INT(ROUND(YHTMK,0)) PICT '999999999'
@ RIVI,29 SAY INT(ROUND(AMOUNT+YHTMK,0)) PICT '999999999'
IF UPPER(KYSY)='L'
@ RIVI,40 SAY 'huom. Yht.summat lopetuskohtaan saakka'
ENDIF
IF UPPER(VAST)='K'
STORE 0 TO RIVI
@ RIVI,1 SAY ' '
SET DEVICE TO SCREEN
ENDIF
RIVI=RIVI+2
IF UPPER(VAST)='K'
@ 19,7 SAY 'Jatko on Y ' GET ODOT
READ
ENDIF
IF UPPER(VAST)='N'
@ RIVI,7 SAY 'Jatko on Y ' GET ODOT
READ
ENDIF
IF UPPER(ODOT)='Y'
CLEAR
LOOP
ELSE
KIERROS = .F.
CLEAR
ENDIF
ENDDO
RETURN
*************