home *** CD-ROM | disk | FTP | other *** search
/ The Best of the Best / _.img / 02001 / kurs.inc < prev    next >
Text File  |  1988-12-30  |  3KB  |  130 lines

  1. (* Kurs.inc *)
  2.  
  3. (* Prozeduren zur Kursberechnung von Anleihen *)
  4.  
  5. (*--------------------------------------------------------------------------*)
  6.  
  7. procedure Bildschirm_2;
  8. forward;
  9.  
  10. (*--------------------------------------------------------------------------*)
  11.  
  12.  
  13.               (* Kursberechnung von Zinsanleihen *)
  14.  
  15. procedure Barwert_Zinsanleihe;
  16. begin
  17. clrscr;
  18. textbackground(red);
  19. writeln(' Nennwert der einzelnen Zinsanleihe  :  ');
  20. gotoxy(43,1);
  21. writeln('100.00 ');
  22. Eingabe_Pruefen(3);
  23. if ioresult <> 0 then
  24.   begin
  25.     Fehlermeldung;
  26.     textbackground(black);
  27.     Bildschirm_2;
  28.   end
  29.  else
  30.   begin
  31.    q :=1+(p1/100);
  32.    qn:=exp(ln(q)*t);
  33.    an:=(qn-1)/(qn*(q-1));
  34.    vn:=1/qn;
  35.    ko:=p*an+100*vn;
  36.    writeln(cr,cr,cr,' Der Emissionskurs der Zinsanleihe beträgt ',ko:3:2,' % ');
  37.    Abfrage_Neuberechnen;
  38.    if Auswahl in [ 'J', 'j' ] then Barwert_Zinsanleihe else Bildschirm_2;
  39.   end;
  40. end;
  41.  
  42. (*--------------------------------------------------------------------------*)
  43.  
  44.                (* Kursberechnung von Ratenanleihen *)
  45.  
  46. procedure Barwert_Ratenanleihe;
  47. begin
  48. clrscr;
  49. textbackground(red);
  50. writeln(' Nennwert der einzelnen Ratenanleihe :  ');
  51. gotoxy(43,1);
  52. writeln('100.00 ');
  53. Eingabe_Pruefen(3);
  54. if ioresult <> 0 then
  55.  begin
  56.    Fehlermeldung;
  57.    textbackground(black);
  58.    Bildschirm_2;
  59.  end
  60. else
  61.  begin
  62.    q :=1+(p1/100);
  63.    qn:=exp(ln(q)*t);
  64.    an:=(qn-1)/(qn*(q-1));
  65.    vn:=an/t;
  66.    ko:=(vn*(1-p/p1) +(p/p1)) * 100;
  67.    writeln(cr,cr,cr,' Der Emissionskurs der Ratenanleihe beträgt ',ko:3:2,' % ');
  68.    Abfrage_Neuberechnen;
  69.    if Auswahl in [ 'J', 'j' ] then Barwert_Ratenanleihe else Bildschirm_2;
  70.  end;
  71. end;
  72.  
  73. (*--------------------------------------------------------------------------*)
  74.  
  75.                (* Kursberechnung von Annuitätenanleihen *)
  76.  
  77. procedure Barwert_Annuitaetenanleihe;
  78. begin
  79. clrscr;
  80. textbackground(red);
  81. writeln(' Nennwert der Annuitätenanleihe      :  ');
  82. gotoxy(43,1);
  83. writeln('100.00 ');
  84. Eingabe_Pruefen(3);
  85. if ioresult <> 0 then
  86.   begin
  87.     Fehlermeldung;
  88.     textbackground(black);
  89.     Bildschirm_2;
  90.   end
  91.  else
  92.   begin
  93.     q :=1+(p/100);
  94.     q1:=1+(p1/100);
  95.     qn:=exp(ln(q)*t);
  96.     qn1:=exp(ln(q1)*t);
  97.     an:=(qn-1)/(qn*(q-1));
  98.     vn:=(qn1-1)/(qn1*(q1-1));
  99.     ko:=(vn/an) * 100;
  100.     writeln(cr,cr,cr,' Der Emissionskurs der Annuitätenanleihe beträgt ',ko:3:2,' % ');
  101.     Abfrage_Neuberechnen;
  102.     if Auswahl in [ 'J', 'j' ] then Barwert_Annuitaetenanleihe else Bildschirm_2;
  103.    end;
  104. end;
  105.  
  106. (*--------------------------------------------------------------------------*)
  107.  
  108.                (* Bildschirmmaske zur Kursberechnung *)
  109.  
  110. procedure Bildschirm_2;
  111. begin
  112.   window(2,5,75,23);
  113.   clrscr;
  114.   write(cr,cr,'                            KURSBERECHNUNG  ');
  115.   write(cr,cr,'               Kursberechnung von Zinsanleihen        =  1');
  116.   write(cr,cr,'               Kursberechnung von Ratenanleihen       =  2');
  117.   write(cr,cr,'               Kursberechnung von Annuitätenanleihen  =  3');
  118.   write(cr,cr,'               Zurück zur Hauptauswahl                =  H');
  119.   write(cr,cr,cr,cr,'               Wählen und mit <Return> bestätigen     :  ');
  120.   repeat
  121.    read(TasteB);
  122.    Tastencode:=Ord(TasteB);
  123.    case tastencode of
  124.     49 : Barwert_Zinsanleihe;
  125.     50 : Barwert_Ratenanleihe;
  126.     51 : Barwert_Annuitaetenanleihe;
  127.     72,104: Bildschirm;
  128.    end (*von case*)
  129.   until Tastencode in [ 72, 104 ];
  130. end;