Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tiedon siirtäminen aliohjelmaan

mandariini [22.11.2020 17:40:07]

#

Hei,

Minulla on koodaus, jossa pääohjelmassa kysytään, kuinka monta kertaa käyttäjä haluaa täyttää tiedot x. Tulostus tapahtuu aliohjelmassa, jossa sitten loopin kanssa ilmenee ongelma:

Pääohjelmassa syötetty lukumäärä "x" ei toimi aliohjelman loopissa, eli se on määrittelemätön. Kuinka tuo pääohjelman "x" saadaan huomioitua aliohjelman loopissa?

En nyt jaksanut laittaa tähän koko koodia kun olisi aika sekavaa luettavaa. Toivottavasti joku ymmärsi mikä ongelmani on. :)

/* Main */
cout << "Kuina monta tietoa y haluat söyttää (max. 20)?: ";
	cin >> luku;

	for (int nro = 0; nro < luku; nro++)
	{
		cout << "Anna tieto y: ";
		cin >> tiedot.y;
	}

	tulostus(tiedot);

	return 0;
}

/* Aliohjelma */

int tulostus(Kysytyt tiedot)

	for (int nro = 0; nro < luku; nro++)
	{
		cout << endl << "Tieto y: " << tiedot.y << endl;
	}

	return 0;

Eli täällä aliohjelmassa tuo "luku" herjaa määrittelemätöntä, mutta kun se määritellään pääohjelmassa, niin kuinka saan tuon yhteyden?

Grez [22.11.2020 17:47:40]

#

No aliohjelmalle saat välitettyä tietoa antamalla sen parametriksi.

Nythän koko ohjelmassa oi ole oikein mitään toimivaa. Luet monta kertaa käyttäjän syötteen samaan muuttujaan. Ilmeisesti jossain näkymättömissä esitellään main-funktion tiedot -muuttuja sekä Kysytyt luokka.

mandariini [22.11.2020 17:49:27]

#

Tämä varmasti näyttää kaikin puolin toimimattomalta, kun koodi on niin pitkä kokonaisuus etten koko roskaa viitsi tänne laittaa. Mutta aloittelija olen, että voi tässä muutakin vikaa olla.

Mutta siis, jos määrittelen parametrin aliohjelmaan, niin kuinka saan sille saman arvon jonka käyttäjä syötti pääohjelmassa?

Grez [22.11.2020 17:53:30]

#

No ihan periaatteessa pääohjelmassa

tulostus(tiedot, luku);

Ja aliohjelman esittely

int tulostus(Kysytyt tiedot, int kpl)

Jolloin aliohjelman kpl -muuttujaan tulee sama luku kuin mikä oli pääohjelman luku -muuttujassa. (Toki nimi voi olla myös luku, mutta laitoin nyt eri havainnollistaakseni että sen ei tarvitse olla saman niminen)

mandariini [22.11.2020 18:06:33]

#

Kiitos, tällä sain toimimaan!

Vastaus

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

Tietoa sivustosta