diff --git a/16521369_Ahmad Rizki/uro.cpp b/16521369_Ahmad Rizki/uro.cpp new file mode 100644 index 0000000..af32997 --- /dev/null +++ b/16521369_Ahmad Rizki/uro.cpp @@ -0,0 +1,58 @@ +#include +#include +# include + +float fPlus(float a, float b) { + return a + b; +} + +void pPlus(float *a, float b) { + *a += b; +} + +float fMin(float a, float b) { + return a - b; +} + +void pMin(float *a, float b) { + *a -= b; +} + +float fTimes(float a, float b) { + return a * b; +} + +void pTimes(float *a, float b) { + *a *= b; +} + +float fDivide(float a, float b) { + return a / b; +} + +void pDivide(float *a, float b) { + *a /= b; +} + +float fPower(float a, float b) { + return pow(a, b); +} + +void pPower(float *a, float b) { + *a = pow(*a, b); +} + +int main() { + float a = 0, b = 0, step = 0; + int n = 0, i = 0; + float sum = 0; + printf("Integral calculator with riemann sum with input from user\n"); + printf("Input a, b, n, and step: "); + scanf("%f %f %d %f", &a, &b, &n, &step); + for (i = 0; i < n; i++) { + sum += fPlus(a, step * i) * fPlus(a, step * (i + 1)); + } + printf("Sum = %f\n", sum * step / 2); + return 0; + +} \ No newline at end of file diff --git a/16521369_Ahmad Rizki/uro.exe b/16521369_Ahmad Rizki/uro.exe new file mode 100644 index 0000000..ba881c2 Binary files /dev/null and b/16521369_Ahmad Rizki/uro.exe differ diff --git a/Misi 2 Programming - SEKURO 2022.c b/Misi 2 Programming - SEKURO 2022.c index 952c4e9..5cdfc2e 100644 --- a/Misi 2 Programming - SEKURO 2022.c +++ b/Misi 2 Programming - SEKURO 2022.c @@ -2,67 +2,69 @@ #include float fPlus(float a, float b) { - /* Function tambah */ - /* Mengembalikan value a + b */ + return a + b; } void pPlus(float *a, float b) { - /* Procedure tambah */ - /* I.S. a dan b terdefinisi dan tidak sembarang */ - /* F.S. a menjadi a + b */ + *a += b; } float fMin(float a, float b) { - /* Function kurang */ - /* Mengembalikan value a + b */ + return a - b; } void pMin(float *a, float b) { - /* Procedure kurang */ - /* I.S. a dan b terdefinisi dan tidak sembarang */ - /* F.S. a menjadi a - b */ + *a -= b; } float fTimes(float a, float b) { - /* Function kali */ - /* Mengembalikan value a * b */ + return a * b; } void pTimes(float *a, float b) { - /* Procedure kali */ - /* I.S. a dan b terdefinisi dan tidak sembarang */ - /* F.S. a menjadi a * b */ + *a *= b; } float fDivide(float a, float b) { - /* Function bagi */ - /* Mengembalikan value a / b */ + return a / b; } void pDivide(float *a, float b) { - /* Procedure bagi */ - /* I.S. a dan b terdefinisi dan tidak sembarang */ - /* F.S. a menjadi a * b */ + *a /= b; } float fPower(float a, float b) { - /* Function pangkat */ - /* Asumsi b adalah int */ - /* Mengembalikan value a ^ b */ + // power function + float result = 1; + for (int i = 0; i < b; i++) { + result *= a; + } + return result; } void pPower(float *a, float b) { - /* Procedure pangkat */ - /* Asumsi b adalah int */ - /* I.S. a dan b terdefinisi dan tidak sembarang */ - /* F.S. a menjadi a ^ b */ + // power prosedure + float result = 1; + for (int i = 0; i < b; i++) { + result *= *a; + } + *a = result; } int main() { - /* Buatlah kalkulator integral menggunakan konsep Integral Riemann */ - /* Notes: Penggunaan operator aritmatika harus menggunakan fungsi dan - prosedur yang telah didefinisikan dan diimplementasi sebelumnya */ - /* Input dan output dibebaskan kepada Cakru URO 14 */ - /* Batasan: Derajat dari koefisien adalah whole number {0, 1, 2, ...} */ + // integral calculator with riemann sum + float a, b, n, h, sum; + printf("Enter a: "); + scanf("%f", &a); + printf("Enter b: "); + scanf("%f", &b); + printf("Enter n: "); + scanf("%f", &n); + h = (b - a) / n; + sum = 0; + for (int i = 1; i <= n; i++) { + sum += fPlus(a, i * h); + } + printf("The result is: %f\n", sum * h); return 0; }