Hesap makineleri ile ilgili birçok soru olmuştur; ancak, herhangi bir grafik hesap makinesinin uygulanmasını içermediği görülmemektedir.
Meydan okuma
Birden çok formülü STDIN'den girdi olarak alan ve bunları STDOUT'a grafikleyen eksiksiz bir program yazmalısınız. Girdi formu alacaktır f1(x)=x^2-x-1
. Bir olacaktır f
, ardından bir sayı 0-9 (dahili), ardından (x)=
, grafik formül takip eder. Programınız girdi, grafik, daha fazla girdi, grafik vb. Alabilmelidir.
Bu kod golf.
Grafiğinizin X ekseni aralığı -5 ile 5 arasında olmalı ve her 1/2 birimde en az bir nokta çözünürlüğe sahip olmalıdır. Y ekseni gereksinimleri aynıdır. Bu, modern hesap makinelerine kıyasla küçük bir aralık gibi görünebilir, ancak büyük olasılıkla bunu arttırmak önemsiz olacaktır. Grafik, +
üzerinde tamsayılar şeklinde onay işaretleri bulunan eksen üzerinde çizilmelidir .
Formül normal çalışma sırası ile değerlendirilmelidir. Bu formüllerde dikey asimptot / tanımlanmamış bölge olmayacaktır. Değişken her zaman x olacaktır. Aynı denklem numarasıyla iki formül girilirse, en eski formül silinmeli ve yeni formülle değiştirilmelidir. Boş formüller sıfır olarak değerlendirilmelidir. Formülün her zaman 1/2 'nin güzel bir katını vermemesi muhtemel olduğundan, en yakın 1/2' ye yuvarlamanız gerekir.
Bir formül çizildiğinde, çizgisi formülün sayısından oluşturulmalıdır. Bir çizgi bir ekseni geçtiğinde, eksen üstüne çizilmelidir. İki çizgi birbirini geçtiğinde, hangisinin gösterildiği önemli değildir.
Örnek Giriş
f1(x)=x+1
Çıktı
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
|1
+
1|
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Giriş
f2(x)=(x^2)^0.25
Çıktı
+ 1
| 1
+ 1
| 1
+ 1
| 1
2222 + 1 2222
222 |1 222
22 + 22
2|2
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Giriş
f1(x)=-x
(not edin, programınızın bu girişi reddetmesi kabul edilebilir ve yalnızca 0-x veya x * -1 hariç, ancak bu belgelenmelidir)
Çıktı
1 +
1 |
1 +
1 |
1 +
1 |
2222 1 + 2222
2221 | 222
22 + 22
2|2
+-+-+-+-+-+-+-+-+-+-+
|1
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
y*0.5
içiny/2
ve iki karakter kurtulmak? Ruby'yi bilmiyorum, bu yüzden doğru olmayabilirim.