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.

126 lines
3.1 KiB

4 years ago
  1. ## 2 Funktiot suurin ja pienin
  2. **Tehtävä:**
  3. Alla oleva ohjelma kysyy käyttäjältä kolme kokonaislukua ja tulostaa syötetyistä luvuista suurimman ja pienimmän näytölle. Tehtävänäsi on kirjoittaa ohjelmasta puuttuvat funktiot (suurin() ja pienin()), jotka saavat parametreina käyttäjän syöttämät kokonaisluvut ja palauttavat nimensä mukaiset kokonaisluvut.
  4. Täydennettävä ohjelma:
  5. ```
  6. #include <iostream>
  7. using namespace std;
  8. int suurin(int eka, int toka, int kolmas);
  9. int pienin(int eka, int toka, int kolmas);
  10. int main()
  11. {
  12. int luku1, luku2, luku3, suurinLuku, pieninLuku;
  13. cout << "Syötä ensimmäinen kokonaisluku:";
  14. cin >> luku1;
  15. cout << "Syötä toinen kokonaisluku:";
  16. cin >> luku2;
  17. cout << "Syötä kolmas kokonaisluku:";
  18. cin >> luku3;
  19. suurinLuku = suurin(luku1, luku2, luku3);
  20. pieninLuku = pienin(luku1, luku2, luku3);
  21. cout << "Syöttämistäsi luvuista suurin oli " << suurinLuku;
  22. cout << " ja pienin " << pieninLuku << "." << endl;
  23. }
  24. ```
  25. Huom! Sinun tulee siis kirjoittaa ainoastaan koodista puuttuvat funktiot.
  26. Example output:
  27. ```
  28. Syötä ensimmäinen kokonaisluku:99
  29. Syötä toinen kokonaisluku:88
  30. Syötä kolmas kokonaisluku:66
  31. Syöttämistäsi luvuista suurin oli 99 ja pienin 66.
  32. ```
  33. **Vastaus:**
  34. ```
  35. /*
  36. Alla oleva ohjelma kysyy käyttäjältä kolme kokonaislukua ja tulostaa syötetyistä luvuista
  37. suurimman ja pienimmän näytölle. Tehtävänäsi on kirjoittaa ohjelmasta puuttuvat funktiot
  38. (suurin() ja pienin()), jotka saavat parametreina käyttäjän syöttämät kokonaisluvut
  39. ja palauttavat nimensä mukaiset kokonaisluvut.
  40. Huom! Sinun tulee siis kirjoittaa ainoastaan koodista puuttuvat funktiot. Älä kopioi alla olevaa koodia palautuskenttään.
  41. Example output:
  42. Syötä ensimmäinen kokonaisluku:99
  43. Syötä toinen kokonaisluku:88
  44. Syötä kolmas kokonaisluku:66
  45. Syöttämistäsi luvuista suurin oli 99 ja pienin 66.
  46. */
  47. #include <iostream>
  48. //** Pre-defined code in the assignment **//
  49. using namespace std;
  50. int suurin(int eka, int toka, int kolmas);
  51. int pienin(int eka, int toka, int kolmas);
  52. int main()
  53. {
  54. int luku1, luku2, luku3, suurinLuku, pieninLuku;
  55. cout << "Syötä ensimmäinen kokonaisluku:";
  56. cin >> luku1;
  57. cout << "Syötä toinen kokonaisluku:";
  58. cin >> luku2;
  59. cout << "Syötä kolmas kokonaisluku:";
  60. cin >> luku3;
  61. suurinLuku = suurin(luku1, luku2, luku3);
  62. pieninLuku = pienin(luku1, luku2, luku3);
  63. cout << "Syöttämistäsi luvuista suurin oli " << suurinLuku;
  64. cout << " ja pienin " << pieninLuku << "." << endl;
  65. }
  66. //** ---------- ---------- ---------- **//
  67. /*
  68. These functions contain almost duplicate code
  69. Should be get rid of the duplication
  70. */
  71. int suurin(int luku1, int luku2, int luku3) {
  72. int i, luvut[3] = {luku1, luku2, luku3};
  73. int sluku = luvut[0];
  74. for (i=0; i<3; i++)
  75. {
  76. if(luvut[i] > sluku)
  77. {
  78. sluku = luvut[i];
  79. }
  80. }
  81. return sluku;
  82. }
  83. int pienin(int luku1, int luku2, int luku3) {
  84. int i, luvut[3] = {luku1, luku2, luku3};
  85. int pluku = luvut[0];
  86. for (i=0; i<3; i++)
  87. {
  88. if (luvut[i] < pluku)
  89. {
  90. pluku = luvut[i];
  91. }
  92. }
  93. return pluku;
  94. }
  95. ```