C-ohjelmointi syksy 2008
Harjoitus 2
Tehtävät käsitellään harjoitustilaisuuksissa 11-15.9.
int i; switch(scanf("%d", &i)) { case EOF: printf("see %d\n", i); break; case 1: printf("\tyou"); case 0: printf("\tlater"); break; default: printf("printed %d\ntimes\n", i); }
Kirjoita ohjelma, joka laskee 20
vuodeksi otetun 210 000 euron asuntolainan kuukausittaiset
lainahoitokustannukset, kun laina on otettu annuiteettilainana. Tämä
tarkoittaa sitä, että joka kuukausi maksettavan koron ja
lyhennyksen yhteissumma on sama. Voit olettaa, että korko pysyy
samana koko laina-ajan. Laske kuukausierä eri vuosikoroille
välillä 3% - 11% yhden prosenttiyksikön välein.
Annuiteettilainan kuukausierä
voidaan laskea kaavalla:
kuukausierä = r ^ n * p/ (1200 * (r^n -1)) *A, missä r = 1 + p/1200 p = vuosikorko prosenteina, n = lainan takaisinmaksukuukausien määrä, A = alkuperäisen lainan määrä ^ tarkoittaa potenssiin korotusta.Potenssin laskemiseen voit käyttää kirjastofunktiota double pow(double x, double y), joka on esitelty otsikkotiedostossa math.h. Linkitä kirjastoon m komentoriviparametrilla -lm.
Tee ohjelma, joka laskee
opintopistemäärällä painotetun keskiarvon
opiskelijan saamista arvosanoista. Kunkin opiskelijan kaikki
suoritustiedot ovat omassa
tiedostossa siten, että yhdellä rivillä
on aina yksi opintosuoritus muodossa:
kurssin nimi kurssin opintopistemäärä arvosana suorituspvm
C-ohjelmointi 4 3 31052004
Ohjelma kysyy ensin tiedoston nimeä
ja tulostaa tähän tiedostoon talletettujen suoritusten
arvosanojen painotetun keskiarvon.
%f %.2f %2.f %10.4f %10.5f %-10.5f %010.5f %-+10.5f %+-10.4f %10.0f
.