Advertisement
Glenpl

odc6 operatory arytmetyczne

Dec 20th, 2014
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.20 KB | None | 0 0
  1. Cześć!
  2.  
  3. W c++ wyróżniamy 5 podstawowych operacji arytmetycznych, oto one:
  4. - dodawanie operator +
  5. - odejmowanie operator -
  6. - mnożenie operator *
  7. - dzielenie operator /
  8. - reszta z dzielenia operator %
  9.  
  10. Cztery pierwsze są oczywiste, ale ostatni wymaga krótkiego wyjaśnienia.
  11. Pamiętasz, jak w pierwszych klasach podstawówki, zanim poznałeś operacje na ułamkach przy dzieleniu zapisywałeś oprócz ilorazu resztę z dzielenia?
  12. Przykład:
  13. 12 / 5 = 2 r. 2, bo 2 * 5 + 2 = 12
  14. 15 / 5 = 3 r. 0, bo 3 * 5 + 0 = 15
  15.  
  16. Ok, znasz już operatory, to teraz krótko o tym jak ich używać. Każdy z tych 5 operatorów arytmetycznych* (+, -, *, /, %) przyjmuje 2 argumenty: lewy i prawy.
  17. Ogólnie:
  18. w1 - lewy, w2 - prawy
  19. w1 * w2 = x1
  20. w1 % w2 = x2
  21.  
  22. Przyjmijmy, że w1 = 3 i w2 = 2, wtedy x1 = 6 i x2 = 1
  23.  
  24. Proste, prawda?
  25.  
  26. Zarówno jako prawy jak i lewy argument może zostać podstawiona zmienna lub wartość, np.:
  27.  
  28. zmienna1 = 5;
  29. zmienna2 = 8;
  30. 5 + 8 = 13
  31. 10 + zmienna1 = 15
  32. zmienna1 + 10 = 15
  33. zmienna1 + zmienna2 = 13
  34.  
  35. Używanie ich jest bardzo proste i intuicyjne :)
  36.  
  37. Operatory arytmetyczne są przeładowane, czyli dla różnych typów argumentów zwrócą różne wartości.
  38.  
  39. Przykłady do skompilowania:
  40.  
  41. int z1 = 3, z2 = 5;
  42. cout << z2 / z1 << endl;
  43. double z3 = 3, z4 = 5;
  44. cout << z4 / z1 << endl;
  45.  
  46. Po wykonaniu programu na ekran wypisane zostanie:
  47. <em>
  48. 1
  49. 1.66666
  50. </em>
  51.  
  52. Dzielenie liczby całkowitej przez liczbę całkowitą zwraca wartość całkowitą - końcówka nie jest zaokrąglana, jest ODCINANA! (o zaokrąglaniu powiem w odcinku o bibliotece math.h)
  53.  
  54. No dobrze, ale co jeśli będziesz chciał podzielić 10 przez 4 i uzyskać wynik z resztą po przecinku?
  55. Przecież 10 / 4 = 2...
  56. Nic prostszego, wystarczy zmienić to na:
  57. 10.0 / 4 = 2.5
  58. 10 / 4.0 = 2.5
  59. 10.0 / 4.0 = 2.5
  60.  
  61. Lub użyć rzutowania na typ zmiennoprzecinkowy, ale to opiszę w innym odcinku :)
  62.  
  63. Priorytety operatorów są na szczęście takie same jak w matematyce:
  64. 1) ()
  65. 2) *, /, %
  66. 3) +, -
  67.  
  68. czyli działanie:
  69.  
  70. double wynik = 5+5/4;
  71. zapisze do zmiennej wynik wartość 6,25, bo 5 + (5/4) = 5+1,25 = 6,25, natomiast
  72. double wynik = (5+5) / 4;
  73. zapisze do zmiennej wynik wartość 2,5, bo (5+5) / 4 = 10/4 = 2.5
  74.  
  75. W przypadku JAKIEJKOLWIEK niejasności w równaniu dopisz dodatkową parę nawiasów - komputerowi to nie zaszkodzi, a Tobie pomoże nie popełnić błędu w kodzie.
  76.  
  77. Jako że programiści bardzo szanują swoje palce i klawiatury, w cpp niektóre działania zapisać można w krótszy sposób.
  78. Dwa z tych sposobów musisz zapamiętać natychmiast, bo bez nich ani rusz.
  79. Są to inkrementacja i dekrementacja, czyli kolejno zwiększenie i zmiejszenie o 1.
  80. Zapisuje się je w następujący sposób:
  81. zmienna++; (zmienna plus plus)
  82. zmienna--; (zmienna minus minus)
  83. oraz
  84. ++zmienna; (plus plus zmienna)
  85. --zmienna; (minus minus zmienna)
  86. ... ale nie będę teraz tłumaczył różnicy między nimi, bo i tak jej narazie nie zrozumiesz.
  87. Możesz więc przyjąć, że zapis --zmienna jest równoważny zapisowi zmienna--.
  88.  
  89. int i = 10;
  90. cout&lt;&lt;i&lt;&lt;endl;
  91. i++;
  92. cout&lt;&lt;i&lt;&lt;endl;
  93.  
  94. output dla tego kodu to
  95.  
  96. <em>
  97. 10
  98. 11
  99. </em>
  100.  
  101. Innym sposobem na skrócenie sobie napisu takiego działania:
  102. z1 = z1 + 5;
  103. jest
  104. z1 += 5;
  105. Analogicznie dla innych operacji:
  106. +=
  107. -=
  108. *=
  109. /=
  110. %=
  111.  
  112. czyli
  113. zmienna [operator złożony] czynniki
  114. zmienna += 10 + 15;
  115. jest równoważne z
  116. zmienna = zmienna + 10 + 15;
  117.  
  118. Na dzisiaj to tyle, wyszedł nawet długi odcinek. Ważny niesamowicie, wiedzę z niego trzeba przyswoić jak najszybciej, ale nie powinien być to problem - przecież to wszystko proste, wszystko wykonuje się według schematu.
  119.  
  120. Zadanie domowe:
  121. - Pobaw się operatorami, sprawdź jak działają zapisy typy
  122. zmienna += 5 * 10;
  123. - Zapamiętaj, że
  124. i = i + 1;
  125. i += 1;
  126. i++;
  127. To zapisy równoważne.
  128. - Napisz program pobierający od użytkownika 1 liczbę całkowitą i wypisujący w następnych linijkach kwadrat i sześcian tej liczby (x^2 i x^3).
  129.  
  130. Powodzenia! :)
  131.  
  132. Pozdrawiam,
  133. Glen
  134.  
  135. *(to ważne, bo w c++ operatory można przeładowywać! Dlatego 10 + 10 to działanie matematyczne, a "Adaś " + "Miauczyński" to operacja na napisach, tzw. koniunkcja, ale o tym innym razem :) )</em>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement