|
|
- ## 1 Osoittimen käyttö aliohjelmaparametrina
-
- **Tehtävä:**
-
- Tehtävänäsi on laatia funktion "muuta_lukua" prototyyppi ja funktion toteutus. Seuraavassa näet pääohjelman, joka käyttää funktiota hyväkseen:
-
- ```
- #include<iostream>
- using namespace std;
-
- // tähän funktion "muuta_lukua" prototyyppi
- // ja prototyypin perään funktion toteutus
-
- int main()
- {
- int luku = 2;
- cout << "Luku ohjelman alussa: " << luku << endl;
- muuta_lukua(&luku);
- cout << "Luku ohjelman lopussa: " << luku << endl;
- return 0;
- }
- ```
-
- Pääohjelmassa alustetaan kokonaislukumuuttuja "luku", jonka osoite välitetään funktiolle "muuta_lukua". Funktion tehtävänä on kysyä esimerkkitulosteen mukaisesti korvaavaa lukua, joka sijoitetaan parametrina saadun osoitteen epäsuorasti viittamaan muuttujaan.
-
- Tarkastelemalla edellistä pääohjelmaa, sekä esimerkkitulostetta näet, kuinka tarvittava funktio on laadittava. Huomaa, että tehtävänäsi on kirjoittaa VAIN funktion prototyyppi ja tämän perään funktion toteutus. Älä siis kopioi esitettyä pääohjelmaa vastaukseesi.
-
- Example output:
-
- ```
- Luku ohjelman alussa: 2
- Anna korvaava luku: 4
- Luku ohjelman lopussa: 4
- ```
-
- **Vastaus:**
-
- ```
- #include<iostream>
- using namespace std;
-
- // Prototype
- int muuta_lukua(int* luku);
-
- // Function definition
- int muuta_lukua(int* luku)
- {
-
- // int *p_luku = luku;
-
- cout << "Anna korvaava luku: ";
- // cin >> *p_luku;
- cin >> *luku;
-
- if (cin.fail()) exit(1);
-
- return *luku;
- }
-
- //** Pre-defined code in the assignment **//
- int main()
- {
- int luku = 2;
- cout << "Luku ohjelman alussa: " << luku << endl;
- muuta_lukua(&luku);
- cout << "Luku ohjelman lopussa: " << luku << endl;
- return 0;
- }
- //** ---------- ---------- ---------- **//
- ```
|