Tee laskinohjelma, joka laskee kahden kokonaisluvun summan, erotuksen tai tulon. Ohjelma kysyy ensin, mikä laskutoimitus suoritetaan (1 = summa, 2 = erotus, 3 = tulo). Laskutoimituksen jälkeen vastaus tulostetaan monitorille ja ohjelmaa palaa kysymään seuraavaa laskutoimitusta.
Laadi jokaista laskutoimitusta varten oma funktio, joka kysyy luvut, suorittaa halutun laskutoimituksen ja tulostaa vastauksen monitorille. Ohjelma lopetetaan syöttämällä negatiivinen luku, kuten edellisessä harjoituksessa.
Vihje:
Voit käyttää ohjelmasi runkona edellistä tehtävää. Laskutoimituksista ja tulostuksista vastaavat funktiot eivät ota vastaan parametrejä, eivätkä palauta mitään arvoa.
Esimerkkituloste:
1: kahden luvun summa
2: kahden luvun erotus
3: kahden luvun tulo
Apua tarvitaan
6
2183
Vastaukset
- Selvitystä
Siinäpä koulutehtävä. Pyysitkö opettajalta lupaa kopiointiin tänne vai toimitko luvatta?
- Javaw
Mitä järkeä sinun on ohjelmointia opetella, jos et osaa aivan yksinkertaisimpia tehtäviä tehdä? Et opi mitään, jos täällä vain kyselet neuvoa. Sen sijaan voisit vaikkapa paperilla miettiä, mitä ohjelma tarvitsee toimiakseen, ja miten se toimii.
Noh, tässä summafunktio pseudokoodina. Loput funktiot osaat varmaan tehdä tämän esimerkin perusteella.
void summa() {
int luku1, luku2, summa;
tulosta("Syötä 1. luku");
kysyLuku(luku1);
tulosta("Syötä 2. luku");
kysyLuku(luku2);
summa = luku1 luku2;
tulosta(summa);
}
Fiksu koodari olisi toteuttanut kaikki laskutoimitukset yhdellä funktiolla;
float laske(int toimitus, float luku1, float luku2) {
if (toimitus == 1) {
return luku1 luku2;
} else if (toimitus == 2) {
return luku1 - luku2;
} else if (toimitus == 3) {
return luku1 * luku2;
} else {
tulosta("Tuntematon laskutoimitus");
return 0;
}
}
Neuvoa saa toki kysyä, mutta pitää ensin itse yrittää. Toivottavasti nämä kaksi eivät ole olleet ainoat tehtäväsi. - Melkein valmis
Alla on se, mitä olen saanut koodattua ja lopuksi oikea ratkaisu.
Missä menee vikaan, kun ohjelma pyytää syöttämään ensimmäistä lukua, vaikka ohjelma pitäisi lopettaa negatiivisella luvulla?
1:kahden luvun summa
2:kahden luvun erotus
3:kahden luvun tulo- Javaw
Helpottaisi huomattavasti, jos olisit antanut nykyisen koodisi. Veikkaan että sinulta puuttuu (tai on puutteellinen) if-rakenne, joka tarkistaa onko luku negatiivinen;
if (luku < 0) {
break;
}
- Melkein valmis
Tässä tämä nykyinen koodi.
#include
void summa(void);
void erotus(void);
void tulo(void);
int main(void)
{
int valinta, luku1, luku2;
do{
printf("1:kahden luvun summa\n2:kahden luvun erotus\n3:kahden luvun tulo\n- Javaw
Kyseessä juuri se, mitä arvelinkin.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 447626
Tulipalossa henkilövahinkoja, itsenäisyyspäivä alkoi huonosti, poliisi tiedottaa lisää
Savonlinna https://www.como.fi/uutiset/savonlinna-henkilovahinkoja-tulipalossa-poliisi-tiedottaa-lisaa/653933Oletko keskustellut kaivatustasi muiden
Kanssa lähiaikoina? Jos, onko keskustelu ollut positiivista tai negatiivista? Vaikuttaako keskustelut mielipiteeseesi ka583790Ennen ei ollut persuja ja työttömyyttä, lääkäriinkin pääsi
Ennen oli kaikilla töitä Kauppiaille kelpasi kun saivat voittoa Yritystukia ei ollut Lääkäriin pääsi kaikki haluklaat Nu583657- 963496
- 543107
Kyllä on Vasemmistoliitosta Koskelan johdolla tullut todellinen ääripuolue
se on niin tulipunainen kuin olla voi, ja selvästi haluaa jatkuvasti eripuraa, ja repiä kansaa kahtia. Siinä on jo vuod442898Antifasismi - mitä se on?
Se on äärivasemmistolaista anarkistista toimintaa joka käyttää fasisminvastaisuutta keppihevosena oikeuttaakseen toimint302514IL- KELA:n pääjohtaja, lääke- ja oikeustieteen tohtori Lasse Lehtonen sekavassa tilassa Brysselissä!
"Iltalehden tietojen mukaan Lehtosen käytös Brysselin lentokentällä on herättänyt huomiota, ja hänen olemuksensa on tulk2042041- 501620