home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
02001
/
anleihen.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1989-01-03
|
12KB
|
269 lines
program Anleihenrechnungen;
const cr=#13#10;
var z,k,p,p1,p2,s,s1,z1,s2,z2 : real;
t1,ti,i,n,t,Tastencode : integer;
Rate,Rate1,kneu,zneu,an,an1,an2,k1,
a,ko,ko1,vn,vn1,kurs,Rendite,diff,
q,qn,q1,q2,qn1,qn2,T2,T2neu,summe,Annuitaet : real;
TasteB,Auswahl : char;
procedure Bildschirm; forward;
procedure Fehlermeldung;
begin
gotoxy(15,11);
write(' Falscheingabe !! Bitte <RETURN> drücken. ');
read(kbd,Auswahl);
end;
procedure Abfrage_Neuberechnen;
begin
write(cr,cr);
gotoxy(15,18);
write(' Neue Berechnung durchführen ( J / N ) ? ');
read(kbd,Auswahl);
textbackground(black);
end;
procedure Eingabe_Pruefen (nr:integer);
begin
if nr = 1 then
begin
writeln(' Nominalverzinsung in % : ');
writeln(' Laufzeit in Jahren : ',cr);
writeln(' 1. Schätzung der Rendite in % : ',cr);
{$I-}
gotoxy(40,1);read(kurs);
gotoxy(40,2);read(p);
gotoxy(40,3);read(t);
gotoxy(40,5);read(p1);
{$I+}
end;
if nr = 0 then
begin
writeln(' Ausgabekurs der Ratenanleihe in % : ');
writeln(' Nominalverzinsung in % : ');
writeln(' Laufzeit in Jahren : ');
writeln(' Tilgungsfreiheit in Jahren : ',cr);
writeln(' 1. Schätzung der Rendite in % : ',cr);
{$I-}
gotoxy(40,1);read(kurs);
gotoxy(40,2);read(p);
gotoxy(40,3);read(t);
gotoxy(40,4);read(ti);
gotoxy(40,6);read(p1);
{$I+}
end;
if nr = 2 then
begin
writeln(' Ausgabekurs der Annuitätenanleihe in % : ');
writeln(' Nominalverzinsung in % : ');
writeln(' Laufzeit in Jahren : ',cr);
writeln(' 1. Schätzung der Rendite in % : ',cr);
{$I-}
gotoxy(45,1);read(kurs);
gotoxy(45,2);read(p);
gotoxy(45,3);read(t);
gotoxy(45,5);read(p1);
{$I+}
end;
if nr = 3 then
begin
writeln(' Nominalverzinsung in % : ');
writeln(' Laufzeit in Jahren : ',cr);
writeln(' geforderte Effektivverzinsung in % : ',cr);
{$I-}
gotoxy(43,2);read(p);
gotoxy(43,3);read(t);
gotoxy(43,5);read(p1);
{$I+}
end;
end;
procedure Schaetzkurse (nr:integer);
begin
q :=1+(p1/100);
qn:=exp(ln(q)*t);
an:=(qn-1)/(qn*(q-1));
vn:=1/qn;
ko:=p*an+100*vn;
if nr = 1 then
begin
writeln(cr,' 1. geschätzter Ausgabekurs : ');
gotoxy(40,7);
write(ko:2:3,' % ',cr );
write(' 2. Schätzung der Rendite in % : ');
gotoxy(40,8);
end;
if nr = 2 then
begin
writeln(cr,' 1. geschätzter Ausgabekurs : ');
gotoxy(45,6);
write(ko:2:3,' % ',cr);
write(' 2. Schätzung der Rendite in % : ');
gotoxy(45,7);
end;
if nr = 3 then
begin
writeln(cr,' 1. geschätzter Ausgabekurs : ');
gotoxy(40,6);
write(ko:2:3,' % ',cr );
write(' 2. Schätzung der Rendite in % : ');
gotoxy(40,7);
end;
read(p2);
q1:=1+(p2/100);
qn1:=exp(ln(q1)*t);
an1:=(qn1-1)/(qn1*(q1-1));
vn1:=1/qn1;
ko1:=p*an1+100*vn1;
end;
{$I tilgung.inc}
{$I kurs.inc }
{$I rendite.inc}
procedure Info;
begin
window(2,5,75,23);
clrscr;
writeln(' Das vorliegende Programm befaßt sich mit verschiedenen Methoden zur Ren-');
writeln(' tabilitätsberechnung von A n l e i h e n. Es knüpft direkt an die Ren- ');
writeln(' tenrechnung an (siehe Disk FINANZMATHE vom gleichen Autor). ');
writeln(' ');
writeln(' Unter einer Anleihe versteht man eine Darlehensschuld, die in einer be- ');
writeln(' stimmten Form verbrieft wird. Es handelt sich um ein festverzinsliches ');
writeln(' Wertpapier, das auf dem Rentenmarkt, also der Börse, gehandelt wird. ');
writeln(' ');
writeln(' Anleihen können ausgegeben werden: ');
writeln(' a) vom Staat (Staatsanleihen), ');
writeln(' b) von Provinzen, Kreisen und Städten (Kommunalanleihen), ');
writeln(' c) von Industrie-, Bank- und Handelsunternehmen (Schuldverschreibungen, ');
writeln(' Industrieobligationen), ');
writeln(' d) von Hypothekenbanken (Pfandbriefe). ');
writeln(' ');
writeln(' ');
writeln(' Weiter mit beliebiger Taste ! ');
writeln(' ');
repeat until keypressed;
clrscr;
writeln(' Wenn Sie Ihr Geld in festverzinslichen Wertpapieren anlegen wollen, wer-');
writeln(' den in den Verkaufsangeboten, die Bedingungen, zu denen die Anleihen ');
writeln(' ausgegeben (emittiert) werden, genau aufgeführt: ');
writeln(' - Verzinsung (Nominalverzinsung auf den Nennwert der Anleihe), ');
writeln(' - Laufzeit, ');
writeln(' - Tilgungstermine der Rückzahlungen, ');
writeln(' - Ausgabekurs (Emissionskurs), ');
writeln(' - Stückelung (eine Anleihe lautet immer über den Betrag von 100 DM oder ');
writeln(' dem Vielfachen von 100 DM, z. B. Stücke von 500 DM, 1000 DM, 5000 DM. ');
writeln(' ');
writeln(' Mit den verschiedenen Berechnungsmethoden der folgenden Unterprogramme ');
writeln(' können Sie sich ausrechnen wie lohnend es ist, festverzinsliche Wert- ');
writeln(' papiere zu kaufen oder zu verkaufen. ');
writeln(' ');
writeln(' ');
writeln(' ');
writeln(' Weiter mit beliebiger Taste ! ');
writeln(' ');
repeat until keypressed;
clrscr;
writeln(' Zu jeder Rechenart können Sie sich ausführliche Informationen aus den ');
writeln(' Dateien mit der Endung .TXT holen. ');
writeln(' ');
writeln(' Sie müssen sich dazu auf DOS-Ebene befinden und geben einfach folgen- ');
writeln(' den Befehl ein: ');
writeln(' ');
writeln(' A>LISTEN Dateiname.TXT ');
writeln(' ');
writeln(' Die entsprechende Datei wird dann seitenweise ausgegeben, so daß Sie ');
writeln(' sich die Beschreibung in Ruhe durchlesen können. ');
writeln(' ');
writeln(' ');
writeln(' ');
writeln(' ');
writeln(' ');
writeln(' ');
writeln(' Zum Hauptmenue mit beliebiger Taste ! ');
writeln(' ');
repeat until keypressed;
Bildschirm;
end;
procedure Bildschirm;
begin
window(3,5,75,23);textbackground(black);
clrscr;
write(cr,cr,' Allgemeine Informationen = I ');
write(cr,cr,cr,' Tilgungsrechnung = T ');
write(cr,cr,cr,' Kursrechnung = K ');
write(cr,cr,cr,' Renditenberechnung = R ');
write(cr,cr,cr,' Programmende = E ');
write(cr,cr,cr,' Wählen und mit <RETURN> bestätigen : ');
gotoxy(59,18);
end;
(* HAUPTPROGRAMM *)
begin
clrscr;
kurs :=100;
p := 1; (* Wertvorgabe um *)
t := 1; (* Programmabbrüche *)
p1 := 1; (* zu vermeiden *)
p2 := 1;
ti := 1;
writeln('╔══════════════════════════════════════════════════════════════════════════╗');
writeln('║ Tilgungs-, Kurs- und Renditenrechnung ║');
writeln('║ von U. Rehkopf Version 2.3 ║');
writeln('╠══════════════════════════════════════════════════════════════════════════╣');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('║ ║');
writeln('╚══════════════════════════════════════════════════════════════════════════╝');
Bildschirm;
repeat
read(TasteB);
Tastencode:=ord(TasteB);
case Tastencode of
73, 105 : Info;
84, 116 : Bildschirm_1;
75, 107 : Bildschirm_2;
82, 114 : Bildschirm_3;
69, 101 : ;
end (* von case *)
until Tastencode in [ 69, 101 ];
window(1,1,80,25);
clrscr;
gotoxy(27,10);
write(' +++ PROGRAMM BEENDET +++ ');
delay(1500);
clrscr;
end.