Miten c++ luodaan aliohjelma?
Kaikki oppaat pursuavat ohjeita aliohjelmien kutsumisesta pääohjelmaan mutta tselle jäänyt täydeksi mysteeriksi miten se itse aliohjelma luodaan?
Yleisempi nimitys aliohjelmalle on funktio.
Putkan C++-oppaassa on hyviä esimerkkejä.
jlaire kirjoitti:
(16.11.2015 02:56:50): Yleisempi nimitys aliohjelmalle 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.
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.
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?
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ä?
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ä)
Aihe on jo aika vanha, joten et voi enää vastata siihen.