-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathkalkulator.cpp
142 lines (123 loc) · 4.37 KB
/
kalkulator.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// Masukan Library
#include <iostream>
#include <vector>
// membuat namespace std agar tidak perlu mengetik std::cout
using namespace std;
// membuat fungsi utama
int main(){
// membuat variabel untuk menyimpan data
int pilihan, banyak_bilangan, i;
float bilangan, hasil;
vector<float> bilangan_vector;
vector<char> operator_vector;
char operator_aritmatika;
// membuat menu
cout << "Pilih OPERATOR ARITMATIKA:" << endl;
cout << "1. Penjumlahan" << endl;
cout << "2. Pengurangan" << endl;
cout << "3. Perkalian" << endl;
cout << "4. Pembagian" << endl;
cout << "5. Modulus" << endl;
cout << "6. Campuran" << endl;
cout << endl;
// membuat inputan untuk memilih operator aritmatika
cout << "Masukan pilihan: ";
cin >> pilihan;
// jika pilihan 6 maka akan menjalankan fungsi campuran
if (pilihan == 6) {
cout << "Masukan bilangan dan operator (+, -, *, /, %) atau ketik 's' untuk berhenti: " << endl;
cout << "Seperti contoh: 1 + 2 - 3 * 4 / 5 % 6" << endl;
// membuat perulangan untuk memasukan bilangan dan operator jika memasukan 's' maka akan berhenti
while (cin >> bilangan && bilangan != 's') {
bilangan_vector.push_back(bilangan);
// jika memasukan operator maka akan masuk ke dalam vector operator dan jika memasukan 's' maka akan berhenti
if (cin >> operator_aritmatika && operator_aritmatika != 's') {
operator_vector.push_back(operator_aritmatika);
}
}
// membuat perulangan untuk menampilkan hasil dari operator aritmatika
hasil = bilangan_vector[0];
// membuat perulangan untuk menampilkan hasil dari operator aritmatika
for (i = 0; i < operator_vector.size(); i++) {
switch (operator_vector[i]) {
case '+':
hasil += bilangan_vector[i + 1];
break;
case '-':
hasil -= bilangan_vector[i + 1];
break;
case '*':
hasil *= bilangan_vector[i + 1];
break;
case '/':
hasil /= bilangan_vector[i + 1];
break;
case '%':
hasil = (int)hasil % (int)bilangan_vector[i + 1];
break;
}
}
cout << "Hasil Campuran: " << hasil << endl;
}
else {
// membuat inputan untuk memasukan banyak bilangan
cout << "Masukan banyak bilangan: ";
cin >> banyak_bilangan;
// membuat perulangan untuk memasukan bilangan
cout << "Masukan bilangan: " << endl;
for (i = 0; i < banyak_bilangan; i++) {
cout << "Bilangan ke-" << i + 1 << ": ";
cin >> bilangan;
bilangan_vector.push_back(bilangan);
}
switch (pilihan) {
case 1:
// hasil dibuat 0 agar hasilnya mulai dari 0
hasil = 0;
// membuat perulangan untuk menjumlahkan bilangan
for (i = 0; i < banyak_bilangan; i++) {
hasil += bilangan_vector[i];
}
cout << "Hasil Penjumlahan: " << hasil << endl;
break;
case 2:
// hasil dibuat bilangan pertama agar hasilnya mulai dari bilangan pertama
hasil = bilangan_vector[0];
// membuat perulangan untuk mengurangkan bilangan
for (i = 1; i < banyak_bilangan; i++) {
hasil -= bilangan_vector[i];
}
cout<< "Hasil Pengurangan: " << hasil << endl;
break;
case 3:
// hasil dibuat 1 agar hasilnya mulai dari 1, karena jika hasilnya 0 maka hasil perkalian akan 0
hasil = 1;
// membuat perulangan untuk mengalikan bilangan
for (i = 0; i < banyak_bilangan; i++) {
hasil *= bilangan_vector[i];
}
cout << "Hasil Perkalian: " << hasil << endl;
break;
case 4:
// hasil dibuat bilangan pertama agar hasilnya mulai dari bilangan pertama
hasil = bilangan_vector[0];
// membuat perulangan untuk membagi bilangan
for (i = 1; i < banyak_bilangan; i++) {
hasil /= bilangan_vector[i];
}
cout << "Hasil Pembagian: " << hasil << endl;
break;
case 5:
// hasil dibuat bilangan pertama agar hasilnya mulai dari bilangan pertama
hasil = (int)bilangan_vector[0];
// membuat perulangan untuk membagi bilangan
for (i = 1; i < banyak_bilangan; i++) {
// hasil dibuat integer agar hasil modulusnya tidak ada koma
hasil = (int)hasil % (int)bilangan_vector[i];
}
cout << "Hasil Modulus: " << hasil << endl;
break;
}
}
return 0;
}