Anda harus menulis program yang mengevaluasi string yang akan dimasukkan ke dalam kalkulator tingkat lanjut.
Program harus menerima input menggunakan stdin dan menampilkan jawaban yang benar. Untuk bahasa yang tidak memiliki fungsi untuk menerima stdin, Anda dapat mengambil fungsi readLine
dan print
untuk menangani tugas ini.
Persyaratan:
- Tidak menggunakan segala jenis fungsi "eval"
- Dapat menangani floating point dan angka negatif
- Mendukung setidaknya operator +, -, *, /, dan ^
- Mendukung tanda kurung dan tanda kurung untuk mengganti urutan normal
- Dapat menangani input yang berisi satu atau beberapa ruang antara operator dan angka
- Mengevaluasi input menggunakan urutan operasi standar
Uji Kasus
Memasukkan
10 - 3 + 2
Keluaran
9
Memasukkan
8 + 6 / 3 - 7 + -5 / 2.5
Keluaran
1
Memasukkan
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Keluaran
41
.0
di ujungnya. Saya tidak terlalu yakin tentang presisi, tetapi lebih banyak lebih baik.
.0
akhir jika mereka bilangan bulat? Juga: seberapa akurat kalkulator harus (mengenai presisi floating point dan semacamnya)?