home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
02001
/
tilgung.inc
< prev
next >
Wrap
Text File
|
1988-12-28
|
7KB
|
214 lines
(* Tilgung.inc *)
(* Prozeduren zur Tilgungsrechnung *)
(*------------------------------------------------------------------------*)
procedure Bildschirm_1;
forward;
(*------------------------------------------------------------------------*)
(* Tilgungsplan für Zinsanleihen *)
procedure Zinsanleihe;
begin
clrscr;
write(' Nennwert der Zinsanleihe : ',cr);
write(' Verzinsung per anno in % : ',cr);
write(' Laufzeit in Jahren : ',cr);
{$I-}
gotoxy(32,1);read(k);
gotoxy(32,2);read(p);
gotoxy(32,3);read(t);
{$I+}
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_1;
end
else
write (cr,cr,cr,cr,
' Abruf des Tilgungsplans mit beliebiger Taste !');
repeat until keypressed;
clrscr;
writeln(' ',k:10:2,' DM Zinsanleihe, ',p:2:2,' % Zinsen, ',t,' Jahre Laufzeit');
writeln(' ------------------------------------------------------------------------');
writeln(' Jahr Nennwert Zinsen Tilgung zu zahlender ');
writeln(' Restschuld jährlich Gesamtbetrag ');
writeln(' ------------------------------------------------------------------------');
z:=(k/100)*p;
s1:=k+z;
z1:=z*t;
s2:=z1+k;
n:=t-1;
for i:=1 to n do
begin
if i> 9 then
writeln(' ',i,' ',k:14:2,z:15:2,z:32:2,' ')
else
writeln(' ',i,' ',k:14:2,z:15:2,z:32:2,' ');
end;
if t> 9 then
writeln(' ',t,' ',k:14:2,z:15:2,k:16:2,s1:16:2,' ')
else
writeln(' ',t,' ',k:14:2,z:15:2,k:16:2,s1:16:2,' ');
writeln(' ------------------------------------------------------------------------');
writeln(' ',z1:15:2,k:16:2,s2:16:2,' ');
write (' ========================================================================');
write(cr,cr);
textbackground(red);
write(' Neue Berechnung durchführen ( J / N ) ? ');
read(kbd,Auswahl);
textbackground(black);
if Auswahl in [ 'J', 'j'] then Zinsanleihe else Bildschirm_1;
end;
(*------------------------------------------------------------------------*)
(* Tilgungsplan für Ratenanleihen *)
procedure Ratenanleihe;
begin
clrscr;
write(' Nennwert der Ratenanleihe : ',cr);
write(' Verzinsung per anno in % : ',cr);
write(' Laufzeit in Jahren : ',cr);
{$I-}
gotoxy(32,1);read(k);
gotoxy(32,2);read(p);
gotoxy(32,3);read(t);
{$I+}
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_1;
end
else
write (cr,cr,cr,cr,
' Abruf des Tilgungsplans mit beliebiger Taste !');
repeat until keypressed;
clrscr;
writeln(' ',k:10:2,' DM Ratenanleihe, ',p:2:2,' % Zinsen, ',t,' Jahre Laufzeit');
writeln(' ------------------------------------------------------------------------');
writeln(' Jahr Restschuld Zinsen Tilgung zu zahlende ');
writeln(' jährlich Annuität ');
writeln(' ------------------------------------------------------------------------');
Rate:=k/t;
z:=k/100*p;
k1:=k;
s1:=z;
an:=z+Rate;
writeln(' 1 ',k :14:2,z :15:2,Rate:16:2,an:16:2);
for i:=2 to t do
begin
k1:=k1-Rate;
z1:=k1/100*p;
s1:=s1+z1;
an:=Rate+z1;
if i>=10 then
writeln(' ',i,' ',k1:13:2,z1:15:2,Rate:16:2,an:16:2)
else
writeln(' ',i,' ',k1:14:2,z1:15:2,Rate:16:2,an:16:2);
end;
s2:=k+s1;
writeln(' -----------------------------------------------------------------------');
writeln(' ',s1:15:2,k:16:2,s2:16:2);
write (' =======================================================================');
write(cr,cr);
textbackground(red);
write(' Neue Berechnung durchführen ( J / N ) ? ');
read(kbd,Auswahl);
textbackground(black);
if Auswahl in [ 'J', 'j'] then Ratenanleihe else Bildschirm_1;
end;
(*------------------------------------------------------------------------*)
(* Tilgungsplan für Annuitätenanleihen *)
procedure Annuitaetenanleihe;
begin
clrscr;
write(' Nennwert der Annuitätenanleihe : ',cr);
write(' Verzinsung per anno in % : ',cr);
write(' Laufzeit in Jahren : ',cr);
{$I-}
gotoxy(38,1);read(k);
gotoxy(38,2);read(p);
gotoxy(38,3);read(t);
{$I+}
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_1;
end
else
write (cr,cr,cr,cr,
' Abruf des Tilgungsplans mit beliebiger Taste !');
repeat until keypressed;
clrscr;
writeln(' ',k:10:2,' DM Annuitätenanleihe, ',p:2:2,' % Zinsen, ',t,' Jahre Laufzeit');
writeln(' ------------------------------------------------------------------------');
writeln(' Jahr Restschuld Zinsen Tilgung zu zahlende ');
writeln(' jährlich Annuität ');
writeln(' ------------------------------------------------------------------------');
q :=1+(p/100);
qn:=exp(ln(q)*t);
an:=(qn-1)/(qn*(q-1));
Annuitaet:=k/an;
z:=k/100*p;
Rate:=Annuitaet-z;
k1:=k;
s1:=Annuitaet*t;
Rate1:=Rate;
writeln(' 1 ',k:13:2,z:15:2,Rate:16:2,Annuitaet:16:2);
for i:=2 to t do
begin
k1:=k1-Rate1;
Rate1:=Rate1*q ;
z1:=Annuitaet-Rate1;
if i>=10 then
writeln(' ',i,' ',k1:13:2,z1:15:2,Rate1:16:2,Annuitaet:16:2)
else
writeln(' ',i,' ',k1:14:2,z1:15:2,Rate1:16:2,Annuitaet:16:2);
end;
s2:=s1-k;
writeln(' -----------------------------------------------------------------------');
writeln(' ',s2:15:2,k:16:2,s1:16:2);
write (' =======================================================================');
write(cr,cr);
textbackground(red);
write(' Neue Berechnung durchführen ( J / N ) ? ');
read(kbd,Auswahl);
textbackground(black);
if Auswahl in [ 'J', 'j'] then Annuitaetenanleihe else Bildschirm_1;
end;
(*------------------------------------------------------------------------*)
(* Maske zur Tilgungsrechnung *)
procedure Bildschirm_1;
begin
window(2,5,75,23);
clrscr;
write(cr,cr,' TILGUNGSRECHNUNG');
write(cr,cr,' Tilgungsplan für Zinsanleihen = 1');
write(cr,cr,' Tilgungsplan für Ratenanleihen = 2');
write(cr,cr,' Tilgungsplan für Annuitätenanleihen = 3');
write(cr,cr,' Zurück zur Hauptauswahl = H');
write(cr,cr,cr,cr,' Wählen und mit <Return> bestätigen : ');
repeat
read(TasteB);
Tastencode:=Ord(TasteB);
case tastencode of
49 : Zinsanleihe;
50 : Ratenanleihe;
51 : Annuitaetenanleihe;
72,104 : Bildschirm;
end (*von case*)
until Tastencode in [ 72, 104 ];
end;