|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4608 (0x1200) Types: TextFile Names: »kkrente«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦508e019d6⟧ »kkfiler« └─⟦this⟧ └─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦8748ba386⟧ »kkfiler« └─⟦this⟧
kkan=algol list.no begin integer i,j,k,antkr,år,førsteår,sidsteår,nr,fm; real rentesum,afdragssum,rentetotal,afdragtotal,restgtotal; real r,t,s; integer array ffm(1:30,0:13),buf,val(1:30),terminer(1:20); real array hovedstol,ydelse,rente,nyrestg,restg(1:20),kreditor(1:20,1:4); real array fmdr,får(1:20), buf1(1:4); zone z(128,1,stderror); open(z,4,<:rentefil:>,0); setposition(z,0,0); i:=1; N: for j:=1 step 1 until 4 do buf1(j):=real <:<32><32><32><32><32>:>; write(out,<:<10>kreditor = :>); setposition(out,0,0); readstring(in,buf1,1); for j:=1 step 1 until 4 do kreditor(i,j):=buf1(j); write(out,<:<10>hovedstol = :>); setposition(out,0,0); read(in,hovedstol(i)); write(out,<:<10> stiftelsesår = :>); setposition(out,0,0); read(in,får(i)); write(out,<:<10> stiftelsesmåned = :>); setposition(out,0,0); read(in,fmdr(i)); write(out,<:<10>rente i procent = :>); setposition(out,0,0); read(in,rente(i)); write(out,<:<10>vælg mellem 1, 2 og 3<10>:>); write(out,<:1 antal terminer<10>:>, <:2 ydelse pr termin i kr.<10>:>, <:3 ydelse pr termin i procent<10>:>); setposition(out,0,0); read(in,nr); case nr of begin begin write(out,<:<10>antal terminer = :>); setposition(out,0,0); read(in,terminer(i)); end; begin write(out,<:<10>ydelse = :>); setposition(out,0,0); read(in,ydelse(i)); end; begin write(out,<:<10>ydelse i procent af hovedstol = :>); setposition(out,0,0); read(in,ydelse(i)); ydelse(i):=ydelse(i)*hovedstol(i)/100; end; end; for j:=1 step 1 until 30 do buf(j):=val(j):=ffm(i,j):=0; write(out,<:<10>forfaldsmåneder = :>); setposition(out,0,0); readall(in,buf,val,1); k:=1; for j:=1 step 1 until 30 do if val(j)=2 then begin k:=k+1; ffm(i,k):=buf(j); end; ffm(i,1):=k; rente(i):=rente(i)/100; if nr=1 then ydelse(i):=hovedstol(i)*rente(i)/(1-(1+rente(i))**(-terminer(i))); write(out,<:<10>er der flere kreditorer ? :>); setposition(out,0,0); L:readchar(in,k); if k=74 or k=106 then begin i:=i+1; goto N; end else if k<>78 and k<>110 then goto L; antkr:=i; write(out,<:<10>angiv første år :>); setposition(out,0,0); read(in,førsteår); LL: write(out,<:<10>angiv sidste år :>); setposition(out,0,0); read(in,sidsteår); if sidsteår<førsteår then goto LL; for i:=1 step 1 until antkr do begin nyrestg(i):=0; fm:=1; repeat fm:=fm+1; until fmdr(i) < ffm(i,fm) or fm>ffm(i,1); if førsteår=får(i) then ffm(i,0):=fm else ffm(i,0):=2; restg(i):=hovedstol(i); for år:=får(i) step 1 until førsteår-1 do begin for j:=fm step 1 until ffm(i,1) do begin s:=restg(i)*rente(i); restg(i):=restg(i)-ydelse(i)+s; end; fm:=2; end; end; for år:=førsteår step 1 until sidsteår do begin rentetotal:=afdragtotal:=restgtotal:=0; if år>1 and antkr=1 then outchar(z,10) else outchar(z,12); write(z,<< dddddd>,år,<:<10>:>, <: gammel ny ialt<10>:>, <:mdr restgæld rente afdrag restgæld rente afdrag restgæld<10>:>); for i:=1 step 1 until antkr do begin rentesum:=afdragssum:=0; for j:=1 step 1 until 4 do buf1(j):=kreditor(i,j); outtext(z,20,buf1,1); write(z,<:<10>:>,<< ddddd.dd>,rente(i)*100,<:<37>:>); k:=fmdr(i); if k<1 or k>12 then k:=1; write(z,<< ddddddd>,hovedstol(i),<:kr. :>,case k of(<:jan:>,<:feb:>,<:mar:>,<:apr:>,<:maj:>,<:jun:>,<:jul:>,<:aug:>,<:sep:>,<:okt:>,<:nov:>,<:dec:>),<< dddd>,får(i)); for j:=ffm(i,0) step 1 until ffm(i,1) do begin if får(i)<=år and restg(i)>1.0 then begin s:=restg(i)*rente(i); nyrestg(i):=restg(i)-ydelse(i)+s; write(z,<:<10>:>,<< dd>,ffm(i,j),<< dddddd.dd>,restg(i),s,ydelse(i)-s,nyrestg(i)); restg(i):=nyrestg(i); rentesum:=rentesum+s; afdragssum:=afdragssum+ydelse(i)-s; end; if ffm(i,j+1)= 0 then begin write(z,<:<10>:>,false add 45,43,<:<10>:>,false add 32,43); write(z,<< dddddd.dd>,rentesum,afdragssum,nyrestg(i),<:<10>:>); end; end; ffm(i,0):=2; rentetotal:=rentetotal+rentesum; afdragtotal:=afdragtotal+afdragssum; restgtotal:=restgtotal+nyrestg(i); end; write(z,false add 45,73,<:<10>:>); write(z,false add 32,43,<< dddddd.dd>,rentetotal,afdragtotal,restgtotal,<:<10>:>); end; write(z,<:<25><25><25>:>); close(z,true); end ▶EOF◀