Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Miten tehdään aliohjelma?

mea [16.11.2015 02:12:49]

#

Miten c++ luodaan aliohjelma?
Kaikki oppaat pursuavat ohjeita aliohjelmien kutsumisesta pääohjelmaan mutta tselle jäänyt täydeksi mysteeriksi miten se itse aliohjelma luodaan?

jlaire [16.11.2015 02:56:50]

#

Yleisempi nimitys aliohjelmalle on funktio.

Putkan C++-oppaassa on hyviä esimerkkejä.

mea [22.11.2015 19:35:15]

#

jlaire kirjoitti:

(16.11.2015 02:56:50): Yleisempi nimitys alioh­jel­malle on funktio. ...

Valitettavasti tämäkään ei itselle avaa miten tässä asiassa pitää lähteä liikkeelle. Olen ymmärtänyt muista lähteistä että aliohjelma tehdään header tiedostoon, ja täältä kutsutaan cpp tiedostoon jossa on pääohjelma, mutten ymmärrä missä muodossa tämä tehdään, ja miten pääohjelmassa kysytyt muuttujat käytetään aliohjelmassa.

Grez [22.11.2015 19:49:10]

#

mea kirjoitti:

Kaikki oppaat pursuavat ohjeita aliohjelmien kutsumisesta pääohjelmaan

Ehkä olisi hyvä jos voisit laittaa linkin sellaiseen oppaaseen ja kertoa mitä kohtaa tarkoitat, niin pääsisimme kartalle siitä mitä oikeastaan kysyt.

Aliohjelmia ei tehdä header-tiedostoihin.

mea [22.11.2015 20:05:43]

#

No tässä on harjoitustehtävä mitä olen yrittänyt tehdä:

"Tee 8 –alkioinen kokonaislukutaulukko pelit[8], johon kysyt käyttäjältä kahdeksan pelin pistemäärät. Käyttäjän syöte talletetaan taulukkoon, kunkin pelin pistemäärä omaan lokeroonsa. Lopuksi käyt taulukon läpi tulostamalla histogrammin (yhtä monta tähteä ruudulle kuin mikä on taulukossa olevan luvun arvo), joka kuvaa pelien pistemäärää. Kysy pistemäärät pääohjelmassa ja toteuta tähtien tulostusosuus aliohjelmalla (jota kutsut sitten joka pelille)."

Osaan luoda taulukon, mutten vain käsitä miten aliohjelma luodaan vaikka ohjelmointiputkankin opasta olen lukenut monta tuntia läpi. Ja kaikki siis tulee samaan .cpp tiedostaan?

Metabolix [22.11.2015 20:45:17]

#

Mielestäni tehtävänannon mukainen rakenne olisi tämä:

void tulostaTahdet(int pistemaara) {
  // Tämä on aliohjelma.
}

int main() {
  // Tämä on pääohjelma.
  const int n = 8;
  int pelit[n] = {1, 4, 7, 12, 8, 2, 6, 9};

  // Tässä kutsutaan aliohjelmaa ohjeen mukaan joka pelille.
  for (int i = 0; i < n; ++i) {
    tulostaTahdet(pelit[i]);
  }
}

Sinun täytyy tietenkin lisätä tähän tulosten kysyminen ja tähtien tulostaminen.

Grezille muistutuksena, C++:n main on standardin mukaan int main (vaikka ei tarvitsekaan return-riviä).

mea kirjoitti:

En vain käsitä miten aliohjelma luodaan.

Funktio ja aliohjelma tarkoittavat samaa asiaa. Onko ongelmana ymmärtää tämä? Vai etkö todella osaa oppaan perusteella tehdä edes yhtä funktiota, vaikka oppaassa on monta valmista koodiesimerkkiä?

Grez [22.11.2015 22:33:29]

#

Joo, Metabolix on oikeassa taas kuten aina... Luin taas tehtävänannon huonosti (ja sitten vaan ajattelin sitä taulukkoa ja aliohjelmaa)

(Ja ihan hyvä muistutus tuo toinenkin.. Itse asiassa pitäisi varmaan lopettaa vastailemasta sellaisten kielten kysymyksiin, joita ei aktiivisesti käytä)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta