C++ fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.7 KiB

4 years ago
  1. ## 1 Osoittimen käyttö aliohjelmaparametrina
  2. **Tehtävä:**
  3. Tehtävänäsi on laatia funktion "muuta_lukua" prototyyppi ja funktion toteutus. Seuraavassa näet pääohjelman, joka käyttää funktiota hyväkseen:
  4. ```
  5. #include<iostream>
  6. using namespace std;
  7. // tähän funktion "muuta_lukua" prototyyppi
  8. // ja prototyypin perään funktion toteutus
  9. int main()
  10. {
  11. int luku = 2;
  12. cout << "Luku ohjelman alussa: " << luku << endl;
  13. muuta_lukua(&luku);
  14. cout << "Luku ohjelman lopussa: " << luku << endl;
  15. return 0;
  16. }
  17. ```
  18. 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.
  19. 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.
  20. Example output:
  21. ```
  22. Luku ohjelman alussa: 2
  23. Anna korvaava luku: 4
  24. Luku ohjelman lopussa: 4
  25. ```
  26. **Vastaus:**
  27. ```
  28. #include<iostream>
  29. using namespace std;
  30. // Prototype
  31. int muuta_lukua(int* luku);
  32. // Function definition
  33. int muuta_lukua(int* luku)
  34. {
  35. // int *p_luku = luku;
  36. cout << "Anna korvaava luku: ";
  37. // cin >> *p_luku;
  38. cin >> *luku;
  39. if (cin.fail()) exit(1);
  40. return *luku;
  41. }
  42. //** Pre-defined code in the assignment **//
  43. int main()
  44. {
  45. int luku = 2;
  46. cout << "Luku ohjelman alussa: " << luku << endl;
  47. muuta_lukua(&luku);
  48. cout << "Luku ohjelman lopussa: " << luku << endl;
  49. return 0;
  50. }
  51. //** ---------- ---------- ---------- **//
  52. ```