commit 6fd7cd476c071bc4f69daaba1f041cfbe81830e2 Author: 202410715242 MUHAMMAD RAFI` GHAZI AL-QARY <202410715242@mhs.ubharajaya.ac.id> Date: Wed May 14 14:02:20 2025 +0700 Upload files to "/" diff --git a/4.31 tempat terbatas MUHAMMAD RAFI GHAZI AL QARY.cpp b/4.31 tempat terbatas MUHAMMAD RAFI GHAZI AL QARY.cpp new file mode 100644 index 0000000..574f2c0 --- /dev/null +++ b/4.31 tempat terbatas MUHAMMAD RAFI GHAZI AL QARY.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +#include + +using namespace std; + +// Fungsi untuk melakukan operasi sesuai operator +int operasi(int a, char op, int b) { + switch (op) { + case '+': return a + b; + case '-': return a - b; + case '*': return a * b; + default: return 0; // Jika operator tidak dikenal + } +} + +// Fungsi untuk memproses satu baris ekspresi +int prosesEkspresi(const string& ekspresi) { + stringstream ss(ekspresi); + vector tokens; + string token; + + while (ss >> token) { + tokens.push_back(token); + } + + int hasil = stoi(tokens[0]); + for (size_t i = 1; i < tokens.size(); i += 2) { + char op = tokens[i][0]; + int angka = stoi(tokens[i + 1]); + hasil = operasi(hasil, op, angka); + } + + return abs(hasil); +} + +int main() { + vector soal = { + "4 + 2 - 0 * 0", + "1 + 1 + 1 + 1", + "10 - 10 * 100 - 5" + }; + + for (size_t i = 0; i < soal.size(); ++i) { + int hasil = prosesEkspresi(soal[i]); + cout << "h#" << i + 1 << ": " << hasil << endl; + } + + return 0; +} \ No newline at end of file