From 04c12a8daa6a8e271a84d0ad03a1d1b78d2b87e9 Mon Sep 17 00:00:00 2001 From: rhinemann Date: Thu, 10 Oct 2024 19:13:51 +0300 Subject: [PATCH] Added Pow operation --- calculator.cpp | 9 ++++ calculator.h | 2 +- patches/0001-fix-truncation-error.patch | 30 ++++++++++++ ...ormatting-use-tabs-instead-of-spaces.patch | 48 +++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 patches/0001-fix-truncation-error.patch create mode 100644 patches/0001-formatting-use-tabs-instead-of-spaces.patch diff --git a/calculator.cpp b/calculator.cpp index df0040b..83b8972 100644 --- a/calculator.cpp +++ b/calculator.cpp @@ -14,3 +14,12 @@ int Calculator::Mul (double a, double b) { return a * b + 0.5; } + +double Calculator::Pow(double a, int n) +{ + double result = 1; + for (int i = 0; i < n; i++) { + result *= a; + } + return result; +} diff --git a/calculator.h b/calculator.h index bd40bcd..d8b121a 100644 --- a/calculator.h +++ b/calculator.h @@ -7,7 +7,7 @@ class Calculator int Add (double, double); int Sub (double, double); int Mul (double, double); ->>>>>>> e0ea21b (add a multiplication operation) + double Pow (double, int); }; #endif//CALCULATOR_H diff --git a/patches/0001-fix-truncation-error.patch b/patches/0001-fix-truncation-error.patch new file mode 100644 index 0000000..6e2c95d --- /dev/null +++ b/patches/0001-fix-truncation-error.patch @@ -0,0 +1,30 @@ +From 49150debe027e79690fd713db43e17e4f0b7341f Mon Sep 17 00:00:00 2001 +From: Sergii Piatakov +Date: Thu, 15 Nov 2018 15:28:04 +0200 +Subject: [PATCH] fix truncation error + +To convert float to integer the truncation is performed, but the +rounding is expected. + +Test: Add (4.9, 4.9) should return 10. +Signed-off-by: Sergii Piatakov +--- + calculator.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/calculator.cpp b/calculator.cpp +index f323e14..d10f529 100644 +--- a/calculator.cpp ++++ b/calculator.cpp +@@ -2,7 +2,7 @@ + + int Calculator::Add (double a, double b) + { +- return a + b; ++ return a + b + 0.5; + } + + int Calculator::Sub (double a, double b) +-- +2.43.0 + diff --git a/patches/0001-formatting-use-tabs-instead-of-spaces.patch b/patches/0001-formatting-use-tabs-instead-of-spaces.patch new file mode 100644 index 0000000..3ddcd5a --- /dev/null +++ b/patches/0001-formatting-use-tabs-instead-of-spaces.patch @@ -0,0 +1,48 @@ +From b239ff832843c03fafeef255c21fc586645fa4bd Mon Sep 17 00:00:00 2001 +From: Sergii Piatakov +Date: Thu, 15 Nov 2018 15:26:35 +0200 +Subject: [PATCH] formatting: use tabs instead of spaces + +Signed-off-by: Sergii Piatakov +--- + calculator.cpp | 4 ++-- + calculator.h | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/calculator.cpp b/calculator.cpp +index b91afea..f323e14 100644 +--- a/calculator.cpp ++++ b/calculator.cpp +@@ -2,10 +2,10 @@ + + int Calculator::Add (double a, double b) + { +- return a + b; ++ return a + b; + } + + int Calculator::Sub (double a, double b) + { +- return Add (a, -b); ++ return Add (a, -b); + } +diff --git a/calculator.h b/calculator.h +index 3740907..d59d596 100644 +--- a/calculator.h ++++ b/calculator.h +@@ -3,9 +3,9 @@ + + class Calculator + { +- public: +- int Add (double, double); +- int Sub (double, double); ++ public: ++ int Add (double, double); ++ int Sub (double, double); + }; + + #endif//CALCULATOR_H +-- +2.43.0 +