İşlem sırası PEMDAS, hangi sipariş işlemlerinin yapılması gerektiğini bize bildiren matematikte temel bir kuraldır:
"Parantez, Üsler, Çarpma ve Bölme ve Toplama ve Çıkarma"
Sorun şu ki, PEMDAŞ çok yönlü değil! Ya başka bir sırayla yapmak isteseydiniz? Parantezlerle uğraşmayacağız, bu yüzden onları oldukları yerde tutuyoruz (ilk olarak).
İki argüman alan bir program oluşturun:
- İşlemlerin hangi sırayı izlemesi gerektiğini söyleyen bir dize. Bazı örnekler şunlardır
"DAMES"
,"SAD, ME"
,"ME SAD"
,"MEADS"
. Evet, boşlukların ve virgüllerin kullanılması, siparişin hatırlanmasını kolaylaştırdığı için uygundur.- Sohbetteki önerileri takip edin: Destek alanları ve virgüller artık isteğe bağlıdır.
- Harflerden biri eksikse veya orada olmaması gereken ek harfler varsa, girişi geçersiz sayıp istediğiniz gibi davranabilirsiniz.
- Değerlendirilmesi gereken ifadeyi içeren bir dize veya ifade.
İfadenin sonucunu ondalık sayı veya tamsayı olarak döndürür. Yanıt bir tamsayı değilse, ondalık sayı olarak döndürülmelidir.
Kurallar:
- Eğer dilinizde daha kolaysa, iki giriş argümanını bir araya getirmeniz uygundur.
- Bir dize olmak zorunda değil, ama harfleri olmalı. Eklemeyi 1, Bölüm 2'yi vb. İle değiştiremezsiniz.
- Hangi girişin ilk olacağını seçebilirsiniz.
- İfade
sağdan solasoldansağadeğerlendirilir . (Kural değişikliği. Bunun tersi olan ilk 12 saat içinde gönderilen posterler kabul edilir). - Operasyon semboller kullanılmıştır:
( ) ^ * / + -
. Örneğin, kullanamaz¤
yerine+
eklenmesi için. - Girdi ifadesindeki boşluklar girdi olarak geçerli değil
- Tekli +/- doğrudan + veya - değerini takip ediyorsa giriş olarak geçerli değildir.
3+-2
Geçersiz girdi olarak düşünün . İstediğiniz gibi tedavi edilebilir (hata üretmek zorunda değildir). Eğer+
ya-
artı ya da eksi dışında herhangi operatörü izler, her zamanki şekilde tedavi oluyor:3*-3 = -9
,sin(-2)=-0.909
- Program harfleri harfiyen izlemelidir, yani
"EMDAS", 1-3+4 => -6
, ve"EMDSA", 1-3+4 => 2
.
Örnekler:
Input: "EMDAS", "3+6*2/4-1" // -> 3+12/4-1 -> 3+3-1 -> 6-1 -> 5
Output: 5
Input: "DAMES", "3+6*2/4-1" // -> 3+6*0.5-1 -> 9*0.5-1 -> 4.5-1 -> 3.5
Output: 3.5
Input: "SAD, ME", "3+6*2/4-1" // -> 3+6*2/3 -> 9*2/3 -> 9*0.66667 -> 6
Output: 6
Input: "ME ADS", "3+5^4/2-3*2 // -> 3+5^4/2-6 -> 3+625/2-6 -> 628/2-6 -> 314-6 -> 308
Output: 308
Input: "AM EDS", "4*3-sin(0.5^2)*3+1" // -> 4*3-sin(0.5^2)*4 -> 12-sin(0.5^2)*4 -> 4*3-(4*sin(0.5^2)) -> 12-(4*sin(0.5^2)) -> 12-(4*sin(0.25)) -> 12-(4*0.24740) -> 12-0.98961 -> 11.01038
Output: 11.01038
Input: "DAMES", "4-5-6" // -> (4-5)-6 -> = -7
Output: -7 // NOT: -> 4-(5-6) -> 4-(-1) -> 5
Burada, çarpma 4*sin(0.5^2)
işleminin üslemeden önce değerlendirildiğini göstermek için parantez eklenmiştir .
Bu kod golf, yani bayt en kısa kod kazanmak.
BODMAS
veya BIDMAS
okulda öğretiriz. B
= Parantez O
veya I
= Sıra veya Endeksler.
p
gerekli? Örneklerde değil