LISÄHARJOITUKSIA osa 1 Lisäh1 Ohjelma, joka kysyy 7 päivän lämpötilat, ohjelma laskee viikon keskilämpötilan. float lampotila; float summa=0; printf("anna 1. lämpötila\n"); printf("anna. lämpötila\n"); printf("anna 3. lämpötila\n"); printf("anna 4. lämpötila\n"); printf("anna 5. lämpötila\n"); printf("anna 6. lämpötila\n"); printf("anna 7. lämpötila\n"); printf("keskiarvo on %.f\n",summa/7); Lisäh
Ohjelma, joka laskee pallon tilavuuden, kun ohjelmalle annetaan syötteeksi pallon säde. http://virtuoosi.pkky.fi/materiaalit/yhteiset/matikka1/tilavuus/pallontilavuus.html float sade,tilavuus; printf("anna pallon säde \n"); scanf("%f",&sade); tilavuus=4.0/3.0*3.14159*sade*sade*sade; printf("tilavuus on %.f\n",tilavuus); Lisäh3 Ohjelma, joka laskee kartion tilavuuden, kun syötteeksi annetaan pohjan säde ja kappaleen korkeus. http://virtuoosi.pkky.fi/materiaalit/yhteiset/matikka1/tilavuus/1pohj.htm float sade,korkeus,tilavuus; printf("anna kartion pohjan säde \n"); scanf("%f",&sade); printf("anna kartion korkeus \n"); scanf("%f",&korkeus); tilavuus=3.14159*sade*sade*korkeus/3; printf("tilavuus on %.f\n",tilavuus);
Lisäh4 Ohjelma, joka laskee appelsiinin syötävän osan tilavuuden, kun syötteeksi annetaan appelsiinin halkaisija. Appelsiinin kuoren paksuus on 6 mm. float sade,halkaisija,tilavuus; printf("anna appelsiinin halkaisija millimetreinä\n"); scanf("%f",&halkaisija); //Syötävän osan halkaisija. //Kuorta on 6mm molemmilla puolilla appelsiinia halkaisija=halkaisija-1; sade=halkaisija/; tilavuus=4.0/3.0*3.14159*sade*sade*sade; printf("tilavuus on %.f\n",tilavuus); Lisäh5 Ohjelma, joka muuttaa käyttäjän syöttämän nopeuden km/h muotoon m/s. float nopeus; printf("syötä nopeus km/h\n"); scanf("%f",&nopeus); //1 km/h = 1000m/3600s = 1/3.6 m/s printf("nopeus on %.f m/s\n",nopeus/3.6);
Lisäh6 Mielivaltaisen kolmion pinta-ala voidaan laskea ns. Heronin kaavalla: A = s( s a)( s b)( s c), a χ β c missä a, b ja c ovat kolmion sivujen pituudet ja s = ( a + b + c) Tee ohjelma, joka kysyy käyttäjältä kolmion sivujen pituudet ja laskee kolmion pintaalan. / b α #include <math.h> float s,a,b,c,a; printf("syötä sivu a\n"); scanf("%f",&a); printf("syötä sivu b\n"); scanf("%f",&b); printf("syötä sivu c\n"); scanf("%f",&c); s=(a+b+c)/; A=sqrt(s*(s-a)*(s-b)*(s-c)); printf("pinta-ala %.f\n",a);
Lisäh7 Lisää edelliseen ohjelmaan myös kolmion kulmien laskenta, kun tiedetään, että #include <math.h> 1 1 A = bc sinα = ca sin β = 1 absin χ float s,a,b,c,a,alfa,beta,gamma; printf("syötä sivu a\n"); scanf("%f",&a); printf("syötä sivu b\n"); scanf("%f",&b); printf("syötä sivu c\n"); scanf("%f",&c); s=(a+b+c)/; A=sqrt(s*(s-a)*(s-b)*(s-c)); printf("pinta-ala %.f\n",a); //Kulmat radiaaneina alfa=asin(*a/(b*c)); beta=asin(*a/(c*a)); gamma=asin(*a/(a*b)); //Muunnetaan asteiksi alfa=alfa*180/3.14159; beta=beta*180/3.14159; gamma=gamma*180/3.14159; printf("kulmat ovat %.f, %.f ja %.f astetta",alfa,beta,gamma); Lisäh8 Tee ohjelma, joka ratkaisee. asteen yhtälön y = ax + bx + c reaaliset nollakohdat käyttäen ratkaisukaavaa
b ± x = b 4ac a. asteen yhtälöllä on joko 0, 1 tai nollakohtaa, riippuen siitä mikä on lausekkeen b 4ac arvo. Jos b 4ac < 0 ei reaalisia nollakohtia b 4ac = 0yksi reaalinen nollakohta x:n arvolla b 4ac > 0 kaksi nollakohtaa arvoilla x = b a x 1 b + b 4ac = ja a x = b b 4ac a Tarvitset tehtävän ratkaisuun if-lausetta, jonka avulla tutkit eri edellä mainitut vaihtoehdot. Ohjelmalle syötetään polynomin kertoimet a, b ja c ja ohjelma tulostaa nollakohdat tai ilmoituksen siitä että niitä ei ole. Ohessa vähän mallia: D=b*b-4*a*c; if (D<0) printf( Ei reaalisia nollakohtia.\n ); RATKAISU: #include <math.h> float a,b,c,d,x1,x;
printf("lasketaan. asteen yhtälön\n"); printf("x=ax^+bx+c nollakohdat.\n"); printf("syötä kerroin a\n"); scanf("%f",&a); printf("syötä kerroin b\n"); scanf("%f",&b); printf("syötä kerroin c\n"); scanf("%f",&c); D=b*b-4*a*c; if (D<0) printf("ei reaalisia nollakohtia\n"); if (D==0) printf("x = %.f\n",-b/(*a)); if (D>0) x1=(-b+sqrt(d))/(*a); x=(-b-sqrt(d))/(*a); printf("nollakohdat ovat %.f ja %.f\n",x1,x);