home *** CD-ROM | disk | FTP | other *** search
/ The Best of the Best / _.img / 02001 / anleihen.pas < prev    next >
Pascal/Delphi Source File  |  1989-01-03  |  12KB  |  269 lines

  1. program Anleihenrechnungen;
  2.  
  3. const cr=#13#10;
  4.  
  5. var z,k,p,p1,p2,s,s1,z1,s2,z2                    : real;
  6.     t1,ti,i,n,t,Tastencode                       : integer;
  7.     Rate,Rate1,kneu,zneu,an,an1,an2,k1,
  8.     a,ko,ko1,vn,vn1,kurs,Rendite,diff,
  9.     q,qn,q1,q2,qn1,qn2,T2,T2neu,summe,Annuitaet  : real;
  10.     TasteB,Auswahl                               : char;
  11.  
  12. procedure Bildschirm; forward;
  13.  
  14. procedure Fehlermeldung;
  15. begin
  16.   gotoxy(15,11);
  17.   write(' Falscheingabe !! Bitte <RETURN> drücken. ');
  18.   read(kbd,Auswahl);
  19. end;
  20.  
  21. procedure Abfrage_Neuberechnen;
  22. begin
  23.   write(cr,cr);
  24.   gotoxy(15,18);
  25.   write(' Neue Berechnung durchführen ( J / N ) ?  ');
  26.   read(kbd,Auswahl);
  27.   textbackground(black);
  28. end;
  29.  
  30. procedure Eingabe_Pruefen (nr:integer);
  31. begin
  32.   if nr = 1 then
  33.    begin
  34.      writeln(' Nominalverzinsung in %            :  ');
  35.      writeln(' Laufzeit in Jahren                :  ',cr);
  36.      writeln(' 1. Schätzung der Rendite in %     :  ',cr);
  37.      {$I-}
  38.      gotoxy(40,1);read(kurs);
  39.      gotoxy(40,2);read(p);
  40.      gotoxy(40,3);read(t);
  41.      gotoxy(40,5);read(p1);
  42.      {$I+}
  43.    end;
  44.   if nr = 0 then
  45.    begin
  46.      writeln(' Ausgabekurs der Ratenanleihe in % :  ');
  47.      writeln(' Nominalverzinsung in %            :  ');
  48.      writeln(' Laufzeit in Jahren                :  ');
  49.      writeln(' Tilgungsfreiheit in Jahren        :  ',cr);
  50.      writeln(' 1. Schätzung der Rendite in %     :  ',cr);
  51.      {$I-}
  52.      gotoxy(40,1);read(kurs);
  53.      gotoxy(40,2);read(p);
  54.      gotoxy(40,3);read(t);
  55.      gotoxy(40,4);read(ti);
  56.      gotoxy(40,6);read(p1);
  57.      {$I+}
  58.    end;
  59.   if nr = 2 then
  60.    begin
  61.      writeln(' Ausgabekurs der Annuitätenanleihe in % :  ');
  62.      writeln(' Nominalverzinsung in %                 :  ');
  63.      writeln(' Laufzeit in Jahren                     :  ',cr);
  64.      writeln(' 1. Schätzung der Rendite in %          :  ',cr);
  65.      {$I-}
  66.      gotoxy(45,1);read(kurs);
  67.      gotoxy(45,2);read(p);
  68.      gotoxy(45,3);read(t);
  69.      gotoxy(45,5);read(p1);
  70.      {$I+}
  71.    end;
  72.   if nr = 3 then
  73.    begin
  74.      writeln(' Nominalverzinsung in %              :  ');
  75.      writeln(' Laufzeit in Jahren                  :  ',cr);
  76.      writeln(' geforderte Effektivverzinsung in %  :  ',cr);
  77.      {$I-}
  78.      gotoxy(43,2);read(p);
  79.      gotoxy(43,3);read(t);
  80.      gotoxy(43,5);read(p1);
  81.      {$I+}
  82.    end;
  83. end;
  84.  
  85. procedure Schaetzkurse (nr:integer);
  86. begin
  87.    q :=1+(p1/100);
  88.    qn:=exp(ln(q)*t);
  89.    an:=(qn-1)/(qn*(q-1));
  90.    vn:=1/qn;
  91.    ko:=p*an+100*vn;
  92.    if nr = 1 then
  93.     begin
  94.      writeln(cr,' 1. geschätzter Ausgabekurs        :  ');
  95.      gotoxy(40,7);
  96.      write(ko:2:3,' % ',cr   );
  97.      write(' 2. Schätzung der Rendite in %     :  ');
  98.      gotoxy(40,8);
  99.     end;
  100.    if nr = 2 then
  101.     begin
  102.      writeln(cr,' 1. geschätzter Ausgabekurs             :  ');
  103.      gotoxy(45,6);
  104.      write(ko:2:3,' % ',cr);
  105.      write(' 2. Schätzung der Rendite in %          :  ');
  106.      gotoxy(45,7);
  107.     end;
  108.    if nr = 3 then
  109.     begin
  110.      writeln(cr,' 1. geschätzter Ausgabekurs        :  ');
  111.      gotoxy(40,6);
  112.      write(ko:2:3,' % ',cr   );
  113.      write(' 2. Schätzung der Rendite in %     :  ');
  114.      gotoxy(40,7);
  115.     end;
  116.    read(p2);
  117.    q1:=1+(p2/100);
  118.    qn1:=exp(ln(q1)*t);
  119.    an1:=(qn1-1)/(qn1*(q1-1));
  120.    vn1:=1/qn1;
  121.    ko1:=p*an1+100*vn1;
  122. end;
  123.  
  124. {$I tilgung.inc}
  125. {$I kurs.inc   }
  126. {$I rendite.inc}
  127.  
  128. procedure Info;
  129. begin
  130. window(2,5,75,23);
  131. clrscr;
  132. writeln(' Das vorliegende Programm befaßt sich mit verschiedenen Methoden zur Ren-');
  133. writeln(' tabilitätsberechnung von A n l e i h e n. Es knüpft direkt an die Ren-  ');
  134. writeln(' tenrechnung an (siehe Disk FINANZMATHE vom gleichen Autor).             ');
  135. writeln('                                                                         ');
  136. writeln(' Unter einer Anleihe versteht man eine Darlehensschuld, die in einer be- ');
  137. writeln(' stimmten Form verbrieft wird. Es handelt sich um ein festverzinsliches  ');
  138. writeln(' Wertpapier, das auf dem Rentenmarkt, also der Börse, gehandelt wird.    ');
  139. writeln('                                                                         ');
  140. writeln(' Anleihen können ausgegeben werden:                                      ');
  141. writeln(' a) vom Staat (Staatsanleihen),                                          ');
  142. writeln(' b) von Provinzen, Kreisen und Städten (Kommunalanleihen),               ');
  143. writeln(' c) von Industrie-, Bank- und Handelsunternehmen (Schuldverschreibungen, ');
  144. writeln('    Industrieobligationen),                                              ');
  145. writeln(' d) von Hypothekenbanken (Pfandbriefe).                                  ');
  146. writeln('                                                                         ');
  147. writeln('                                                                         ');
  148. writeln('                                Weiter mit beliebiger Taste !            ');
  149. writeln('                                                                         ');
  150. repeat until keypressed;
  151. clrscr;
  152. writeln(' Wenn Sie Ihr Geld in festverzinslichen Wertpapieren anlegen wollen, wer-');
  153. writeln(' den in den Verkaufsangeboten, die Bedingungen, zu denen die Anleihen    ');
  154. writeln(' ausgegeben (emittiert) werden, genau aufgeführt:                        ');
  155. writeln(' - Verzinsung (Nominalverzinsung auf den Nennwert der Anleihe),          ');
  156. writeln(' - Laufzeit,                                                             ');
  157. writeln(' - Tilgungstermine der Rückzahlungen,                                    ');
  158. writeln(' - Ausgabekurs (Emissionskurs),                                          ');
  159. writeln(' - Stückelung (eine Anleihe lautet immer über den Betrag von 100 DM oder ');
  160. writeln('   dem Vielfachen von 100 DM, z. B. Stücke von 500 DM, 1000 DM, 5000 DM. ');
  161. writeln('                                                                         ');
  162. writeln(' Mit den verschiedenen Berechnungsmethoden der folgenden Unterprogramme  ');
  163. writeln(' können Sie sich ausrechnen wie lohnend es ist, festverzinsliche Wert-   ');
  164. writeln(' papiere zu kaufen oder zu verkaufen.                                    ');
  165. writeln('                                                                         ');
  166. writeln('                                                                       ');
  167. writeln('                                                                         ');
  168. writeln('                                Weiter mit beliebiger Taste !            ');
  169. writeln('                                                                         ');
  170. repeat until keypressed;
  171. clrscr;
  172. writeln(' Zu jeder Rechenart können Sie sich ausführliche Informationen aus den   ');
  173. writeln(' Dateien mit der Endung .TXT holen.                                      ');
  174. writeln('                                                                         ');
  175. writeln(' Sie müssen sich dazu auf DOS-Ebene befinden und geben einfach folgen-   ');
  176. writeln(' den Befehl ein:                                                         ');
  177. writeln('                                                                         ');
  178. writeln('            A>LISTEN Dateiname.TXT                                       ');
  179. writeln('                                                                         ');
  180. writeln(' Die entsprechende Datei wird dann seitenweise ausgegeben, so daß Sie    ');
  181. writeln(' sich die Beschreibung in Ruhe durchlesen können.                        ');
  182. writeln('                                                                         ');
  183. writeln('                                                                         ');
  184. writeln('                                                                         ');
  185. writeln('                                                                         ');
  186. writeln('                                                                       ');
  187. writeln('                                                                         ');
  188. writeln('                        Zum Hauptmenue mit beliebiger Taste !            ');
  189. writeln('                                                                         ');
  190. repeat until keypressed;
  191. Bildschirm;
  192. end;
  193.  
  194. procedure Bildschirm;
  195. begin
  196.  window(3,5,75,23);textbackground(black);
  197.  clrscr;
  198.  write(cr,cr,'                Allgemeine Informationen               =  I            ');
  199.  write(cr,cr,cr,'                Tilgungsrechnung                       =  T            ');
  200.  write(cr,cr,cr,'                Kursrechnung                           =  K            ');
  201.  write(cr,cr,cr,'                Renditenberechnung                     =  R            ');
  202.  write(cr,cr,cr,'                Programmende                           =  E            ');
  203.  write(cr,cr,cr,'                Wählen und mit <RETURN> bestätigen     :               ');
  204.  gotoxy(59,18);
  205. end;
  206.  
  207.  
  208. (* HAUPTPROGRAMM *)
  209.  
  210. begin
  211. clrscr;
  212. kurs  :=100;
  213.   p   :=  1;                                     (* Wertvorgabe um   *)
  214.   t   :=  1;                                     (* Programmabbrüche *)
  215.   p1  :=  1;                                     (* zu vermeiden     *)
  216.   p2  :=  1;
  217.   ti  :=  1;
  218. writeln('╔══════════════════════════════════════════════════════════════════════════╗');
  219. writeln('║                   Tilgungs-, Kurs- und Renditenrechnung                  ║');
  220. writeln('║                        von U. Rehkopf Version 2.3                        ║');
  221. writeln('╠══════════════════════════════════════════════════════════════════════════╣');
  222. writeln('║                                                                          ║');
  223. writeln('║                                                                          ║');
  224. writeln('║                                                                          ║');
  225. writeln('║                                                                          ║');
  226. writeln('║                                                                          ║');
  227. writeln('║                                                                          ║');
  228. writeln('║                                                                          ║');
  229. writeln('║                                                                          ║');
  230. writeln('║                                                                          ║');
  231. writeln('║                                                                          ║');
  232. writeln('║                                                                          ║');
  233. writeln('║                                                                          ║');
  234. writeln('║                                                                          ║');
  235. writeln('║                                                                          ║');
  236. writeln('║                                                                          ║');
  237. writeln('║                                                                          ║');
  238. writeln('║                                                                          ║');
  239. writeln('║                                                                          ║');
  240. writeln('║                                                                          ║');
  241. writeln('╚══════════════════════════════════════════════════════════════════════════╝');
  242. Bildschirm;
  243.   repeat
  244.     read(TasteB);
  245.     Tastencode:=ord(TasteB);
  246.        case Tastencode of
  247.          73, 105 : Info;
  248.          84, 116 : Bildschirm_1;
  249.          75, 107 : Bildschirm_2;
  250.          82, 114 : Bildschirm_3;
  251.          69, 101 :  ;
  252.        end                                (* von case *)
  253.     until Tastencode in [ 69, 101 ];
  254.   window(1,1,80,25);
  255.   clrscr;
  256.   gotoxy(27,10);
  257.   write('  +++ PROGRAMM BEENDET +++  ');
  258.   delay(1500);
  259.   clrscr;
  260.   end.
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.