Nimi:
TLP533 Lausekielinen ohjelmointi 1
Koe 11.1.2006 HYV5SN
Vastaa tähän paperiin. Kirjoita vastauksesi selkeästi tekstaamalla ja sisentäen ohjelmalohkot.
1. Kirjoita C-ohjelma, joka pyytää käyttäjältä 15 positiivista kokonaislukua ja tulostaa niiden summan. Ohjelma kelpuuttaa syötteiksi vain positiiviset luvut.
Virheellisestä syötteestä tulostetaan ilmoitus ja lukua pyydetään uudelleen (tarvittaessa toistuvasti)
#include <stdio.h>
void main(void) {
int luku,summa=0;
int i=0;
do {
printf("Anna %d:s luku\n",i);
scanf("%d",&luku);
if (luku > 0) {
summa=summa+luku;
i++;
} else
printf("Anna luku uudelleen !\n");
} while (i<15);
printf("Summa on %d\n",summa);
}
2. Kirjoita funktio minimi(), joka palauttaa arvonaan kahdesta annetusta luvusta pienemmän. Luvut välitetään funktiolle parametreina.
#include <stdio.h>
float minimi(float,float);
void main(void) {
float a=1,b=2;
printf("Pienempi on %f",minimi(a,b));
}
float minimi(float x, float y) {
if (x<y)
return x;
else
return y;
}
3. Tee sanakirjaohjelma, johon sana syötetään englanniksi ja ohjelma tulostaa sanan suomeksi. Jos sanaa ei löydy ohjelma tulostaa virheilmoituksen.
Ohjelma tuntee sanat "horse", "cow", "mouse" ja "bear" sekä vastaavat suomenkieliset sanat "hevonen", "lehmä", "hiiri" ja "karhu".
#include <stdio.h>
#include <string.h>
void main(void) {
char mjono[20];
printf("Anna merkkijono\n");
gets(mjono);
if (strcmp(mjono,"horse")) printf("hevonen\n");
else if (strcmp(mjono,"cow")) printf("lehmä\n");
else if (strcmp(mjono,"mouse")) printf("hiiri\n");
else if (strcmp(mjono,"bear")) printf("karhu\n");
else
printf("Ei sanastossa\n");
}
4. Kirjoita C-kielinen ohjelma, joka laskee sylinterin tilavuuden, kun käyttäjä antaa pohjan säteen r ja sylinterin korkeuden h. Sylinterin tilavuus lasketaan kaavalla
h r V = π
2Toteuta ohjelma siten, että se toimii silmukassa eli tilavuuksia lasketaan niin kauan kuin säde ja korkeus molemmat ovat positiivisia ja laskenta loppuu kun jompikumpi tai molemmat ovat negatiivisia. Kirjoita tietojen syöttö, tilavuuden laskenta ja tulostus omiksi funktioikseen. (6 p)
#include <stdio.h>
#define pii 3.141592
float syotto(char []);
float tilavuus(float,float);
void tulostus(float);
void main(void) {
float r,h,V;
do {
r=syotto("Anna sade ");
h=syotto("Anna korkeus ");
V=tilavuus(r,h);
tulostus(V);
} while (r > 0 && h > 0);
}
float syotto(char mjono[]) {
float luku;
printf("%s ",mjono);
scanf("%f",&luku);
return(luku);
}
float tilavuus(float r,float h) {
return(pii*r*r*h);
}
void tulostus(float V) {
printf("Tilavuus on %.2f\n",V);
}