Sektion Angewandte Informationsverarbeitung

Übungen zu Systemnahe Software I, Wintersemester 1996/97

Blatt 1, 10 Punkte

Beispiellösung zu Aufgabe 1

#include 
#include 

double kapital, rate, tilgung, zins, zinssatz;
int jahr;

int main( void ){
  printf( "Annuitaetentilgung\n\n");

  kapital = 0.0;
  while( kapital == 0.0 ){
    printf( "Anfangskapital: " );
    scanf( "%lf", &kapital );
    kapital = floor( 100 * kapital + 0.5 ) * 0.01;
  }

  zinssatz = 0.0;
  while( zinssatz == 0.0 ){
    printf( "Zinssatz: " );
    scanf( "%lf", &zinssatz );
  }

  rate = 0.0;
  while( rate == 0.0 ){
    printf( "Jaehrliche Rate (mind. %.2f): ", 
            (kapital * zinssatz * 0.01)+0.01 );
    scanf( "%lf", &rate );
    rate = floor( 100 * rate + 0.5 ) * 0.01;
    if( rate <= (kapital * zinssatz * 0.01) ){
      fprintf( stderr, "Zu kleine Rate!\n" );
      rate = 0.0;
    }
  }

  printf( "\nTilgungsplan fuer %.2f DM Kapital bei einer jaehrlichen \
Verzinsung von %.2f Prozent und einer Rate von %.2f DM p.a.\n\n",
          kapital, zinssatz, rate );

  jahr = 1;
  printf( " Jahr | Kapital am Anfang | Zinsen am Ende | Tilgung am Ende \n" );
  printf( "-------------------------------------------------------------\n" );
  while( kapital > 0 ){
    zins = floor( kapital * zinssatz + 0.5 ) * 0.01;
    tilgung  = rate - zins;
    if( tilgung > kapital ) tilgung = kapital;
    printf( " %4d | %17.2f | %14.2f | %15.2f\n", jahr, kapital,
                                                 zins, tilgung );
    kapital -= tilgung; jahr++;
  }

  return 0;
}

/*
thales$ gcc -Wall annu.c 
thales$ a.out
Annuitaetentilgung

Anfangskapital: 10000
Zinssatz: 7
Jaehrliche Rate (mind. 700.01): 3500

Tilgungsplan fuer 10000.00 DM Kapital bei einer jaehrlichen Verzinsung von 7.00 Prozent und einer Rate von 3500.00 DM p.a.

 Jahr | Kapital am Anfang | Zinsen am Ende | Tilgung am Ende 
-------------------------------------------------------------
    1 |          10000.00 |         700.00 |         2800.00
    2 |           7200.00 |         504.00 |         2996.00
    3 |           4204.00 |         294.28 |         3205.72
    4 |            998.28 |          69.88 |          998.28
thales$ 
*/