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.

88 lines
2.2 KiB

4 years ago
  1. ## 2 Piste-luokalle palvelut
  2. **Tehtävä:**
  3. Edellisessä tehtävässä sinun piti toteuttaa luokan "Piste" määrittely. Nyt tehtävänäsi on toteuttaa luokan määritellyssä esitellyt jäsenfunktiot: AsetaX, AsetaY, KerroPaikka ja Siirra.
  4. Luokassa määriteltyjen koordinaattien asettamisesta vastaavat jäsenfunktiot ottavat vastaan kokonaisluvun, jonka funktio sijoittaa sen vastulla olevaan jäsenmuuttujaan. Nämä funktiot eivät palauta arvoa.
  5. Pisteen paikan kertomisesta vastaava jäsenfunktio ei ota vastaan parametreja, eikä palauta arvoa. Jäsenfunktion tehtävänä on tulostaa piste-olion koordinaatit esimerkkitulosteen mukaisesti. Funktio tulostaa ensin x-koordinaatin ja tämän alle y-koordinaatin.
  6. Jäsenfunktio "Siirra" ottaa vastaan x:n ja y:n siirtymän kokonaislukuarvoina annetussa järjestyksessä. Siirtäminen muuttaa jäsenmuuttujien arvoa annettujen siirtymien mukaisesti. "Siirra" ei palauta arvoa sitä kutsuvalle ohjelman osalle.
  7. Huomaa, että esimerkkitulosteessa rivit "Pisteolio muodostettu ja koordinaatit asetettu.", sekä "Pistettä siirretty." ovat vastaustasi testaavan ohjelman aikaan saamia.
  8. Example output:
  9. ```
  10. Pisteolio muodostettu ja koordinaatit asetettu.
  11. Pisteen x-koordinaatti: 34
  12. Pisteen y-koordinaatti: 100
  13. Pistettä siirretty.
  14. Pisteen x-koordinaatti: 54
  15. Pisteen y-koordinaatti: 67
  16. ```
  17. **Vastaus:**
  18. ```
  19. //** Pre-defined code in the assignment **//
  20. #include<iostream>
  21. using namespace std;
  22. class Piste
  23. {
  24. public:
  25. void KerroPaikka();
  26. void AsetaX(int x);
  27. void AsetaY(int y);
  28. void Siirra(int x, int y);
  29. private:
  30. int x_;
  31. int y_;
  32. };
  33. //** ---------- ---------- ---------- **//
  34. void Piste::AsetaX(int x)
  35. {
  36. x_ = x;
  37. }
  38. void Piste::AsetaY(int y)
  39. {
  40. y_ = y;
  41. }
  42. void Piste::KerroPaikka()
  43. {
  44. cout << "Pisteen x-koordinaatti: " << x_ << endl;
  45. cout << "Pisteen y-koordinaatti: " << y_ << endl;
  46. }
  47. void Piste::Siirra(int x, int y)
  48. {
  49. x_ = x_ + x;
  50. y_ = y_ + y;
  51. }
  52. //** Pre-defined code in the assignment **//
  53. int main()
  54. {
  55. Piste pikseli;
  56. pikseli.AsetaX(34);
  57. pikseli.AsetaY(100);
  58. cout << "Pisteolio muodostettu ja koordinaatit asetettu.\n"
  59. pikseli.KerroPaikka();
  60. pikseli.Siirra(20, -33);
  61. cout << "Pistettä siirretty.\n"
  62. pikseli.KerroPaikka();
  63. return 0;
  64. }
  65. //** ---------- ---------- ---------- **//
  66. ```