home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
02001
/
rendite.inc
< prev
next >
Wrap
Text File
|
1989-01-03
|
12KB
|
431 lines
(* Rendite.inc *)
(* Prozeduren zur Renditenberechnung von Anleihen *)
(*--------------------------------------------------------------------------*)
procedure Bildschirm_3; forward;
(*--------------------------------------------------------------------------*)
(* Renditenberechnung von Zinsanleihen *)
procedure Rendite_Zinsanleihe;
begin
clrscr;
textbackground(red);
writeln(' Ausgabekurs der Zinsanleihe in % : ');
Eingabe_Pruefen( 1);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
Schaetzkurse(1);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Rendite der Zinsanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Rendite der Zinsanleihe beträgt ',Rendite:2:3,' % ');
end
else Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Rendite_Zinsanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Mindestrendite einer Ratenanleihe *)
procedure Mindest_Rendite_Ratenanleihe;
begin
clrscr;
textbackground(red);
writeln(' Ausgabekurs der Ratenanleihe in % : ');
Eingabe_Pruefen(1);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
Schaetzkurse(3);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Mindestrendite der Ratenanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Mindestrendite der Ratenanleihe beträgt ',Rendite:2:3,' % ');
end
else Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Mindest_Rendite_Ratenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Höchstrendite einer Ratenanleihe *)
procedure Hoechst_Rendite_Ratenanleihe;
begin
clrscr;
textbackground(red);
writeln(' Ausgabekurs der Ratenanleihe in % : ');
Eingabe_Pruefen(1);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
t:=1;
Schaetzkurse(3);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Höchstrendite der Ratenanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Höchstrendite der Ratenanleihe beträgt ',Rendite:2:3,' % ');
end
else Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Hoechst_Rendite_Ratenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Gesamtrendite einer Ratenanleihe *)
procedure Gesamt_Rendite_Ratenanleihe;
begin
clrscr;
textbackground(red);
writeln(' Ausgabekurs der Ratenanleihe in % : ');
Eingabe_Pruefen(1);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
t:=round(t/2);
Schaetzkurse(3);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Durchschnittsrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Durchschnittsrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Gesamt_Rendite_Ratenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Höchstrendite einer aufgeschobenen Ratenanleihe *)
procedure Hoechst_Rendite_Ratenanleihe_1;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(0);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
t:=t-ti+1;
Schaetzkurse(1);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Höchstrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Höchstrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Hoechst_Rendite_Ratenanleihe_1 else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Mindestrendite einer aufgeschobenen Ratenanleihe *)
procedure Mindest_Rendite_Ratenanleihe_1;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(0);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
Schaetzkurse(1);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Mindestrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Mindestrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Mindest_Rendite_Ratenanleihe_1 else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Gesamtrendite einer aufgeschobenen Ratenanleihe *)
procedure Gesamt_Rendite_Ratenanleihe_1;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(0);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
t :=round(((t-ti)/2)+ ti);
Schaetzkurse(1);
if (ko<kurs) and (ko1>kurs) then
begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Durchschnittsrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
if (ko>kurs) and (ko1<kurs) then
begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Durchschnittsrendite der Ratenanleihe beträgt ',Rendite:2:3,' %');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Gesamt_Rendite_Ratenanleihe_1 else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Höchstrendite einer Annuitätenanleihe *)
procedure Hoechst_Rendite_Annuitaetenanleihe;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(2);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
t:=1;
Schaetzkurse(2);
if (ko<kurs) and (ko1>kurs) then begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Höchstrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Höchstrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Hoechst_Rendite_Annuitaetenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Mindestrendite einer Annuitätenanleihe *)
procedure Mindest_Rendite_Annuitaetenanleihe;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(2);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
Schaetzkurse(2);
if (ko<kurs) and (ko1>kurs) then begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Mindestrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Mindestrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Mindest_Rendite_Annuitaetenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Gesamtrendite einer Annuitätenanleihe *)
procedure Gesamt_Rendite_Annuitaetenanleihe;
begin
clrscr;
textbackground(red);
Eingabe_Pruefen(2);
if ioresult <> 0 then
begin
Fehlermeldung;
Bildschirm_3;
end
else
begin
q :=1+(p/100);
q1 :=1+(p1/100);
qn :=exp(ln(q)*t);
qn1:=exp(ln(q1)*t);
an :=(qn-1)/(qn*(q-1));
an1:=(qn1-1)/(qn1*(q1-1));
ko :=100*(an1/an);
writeln(cr,' 1. geschätzter Ausgabekurs : ',ko:2:3,' % ',cr);
write(' 2. Schätzung der Rendite in % : ');
read(p2);
q2 :=1+(p2/100);
qn2:=exp(ln(q2)*t);
an2:=(qn2-1)/(qn2*(q2-1));
ko1:=100*(an2/an);
if (ko<kurs) and (ko1>kurs) then begin
diff:=(p1-p2)*(ko1-kurs)/(ko1-ko);
Rendite:=p2+diff;
Writeln(cr,cr,' Die Durschnittsrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
if (ko>kurs) and (ko1<kurs) then begin
diff:=(p2-p1)*(ko-kurs)/(ko-ko1);
Rendite:=p1+diff;
writeln(cr,cr,' Die Durchschnittsrendite der Annuitätenanleihe beträgt ',Rendite:2:3,' % ');
end
else
Fehlermeldung;
Abfrage_Neuberechnen;
if Auswahl in [ 'J', 'j' ] then Gesamt_Rendite_Annuitaetenanleihe else Bildschirm_3;
end;
end;
(*--------------------------------------------------------------------------*)
(* Bildschirmmaske zur Renditenberechnung *)
procedure Bildschirm_3;
begin
window(2,5,75,23);
clrscr;
write(' RENDITENRECHNUNG');
write(cr,cr,' Rendite einer Zinsanleihe = 1');
write(cr,cr,' Mindestrendite einer Ratenanleihe = 2');
write(cr,' Höchstrendite einer Ratenanleihe = 3');
write(cr,' Durchschnittsrendite einer Ratenanleihe = 4');
write(cr,' Mindestrendite/tilgungsfreie Ratenanleihe = 5');
write(cr,' Höchstrendite/tilgungsfreie Ratenanleihe = 6');
write(cr,' Durchschnittsrendite/tilgungsfr.Ratenanleihe = 7');
write(cr,cr,' Mindestrendite einer Annuitätenanleihe = 8');
write(cr,' Höchstrendite einer Annuitätenanleihe = 9');
write(cr,' Durchschnittsrendite einer Annuitätenanleihe = 0');
write(cr,cr,' Zurück zur Hauptauswahl = H');
write(cr,cr,cr,' Wählen und mit <Return> bestätigen : ');
repeat
read(TasteB);
Tastencode:=Ord(TasteB);
case tastencode of
49 : Rendite_Zinsanleihe;
50 : Mindest_Rendite_Ratenanleihe;
51 : Hoechst_Rendite_Ratenanleihe;
52 : Gesamt_Rendite_Ratenanleihe;
53 : Mindest_Rendite_Ratenanleihe_1;
54 : Hoechst_Rendite_Ratenanleihe_1;
55 : Gesamt_Rendite_Ratenanleihe_1;
56 : Mindest_Rendite_Annuitaetenanleihe;
57 : Hoechst_Rendite_Annuitaetenanleihe;
48 : Gesamt_Rendite_Annuitaetenanleihe;
72,104 : Bildschirm;
end (*von case*)
until Tastencode in [ 72, 104 ];
end;