|
|
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◀