#!/usr/bin/env ruby
# -*- coding:utf-8 -*-
puts "計算内容を+-*/を使って入力してください"
naiyou=gets.chomp
def numlen(str,i)
j=0
while str[i+j]!=")"
j+=1
end
j
end
def numload(str,i)
j=""
if str[i]=="("
j=keisan("+","-",keisan("*","/",str[(i+1)..(str.length-1)]))
len=numlen(str,i)+1
else
while str[i]!="+" && str[i]!="-" && str[i]!="*" && str[i]!="/" && str[i]!=nil && str[i]!=")"
j+=str[i]
i+=1
end
len=j.length
end
[j.to_f,len]
end
def keisan(a,b,n)
i=0
l="n"
while i<n.length
if n[i]==")"
n=n[0..(i-1)]
break
elsif l=="n"
num1=numload(n,i)
i+=num1[1]
l="t"
elsif l=="t" && (n[i]==a || n[i]==b)
l=n[i]
i+=1
elsif l=="t"
i+=1
l="n"
else
num2=numload(n,i)
n2=""
i-=1
m=0
num3=num1[0]
num4=num2[0]
while m<n.length
if m<i-num1[1] || m>i+num2[1]
n2+=n[m]
m+=1
else
if l=="+"
num3+=num4
elsif l=="-"
num3-=num4
elsif l=="*"
num3*=num4
else
num3/=num4
end
n2+=num3.to_s
m+=num1[1]+num2[1]+1
end
end
n=n2
i-=num1[1]
num1[0]=num3
num1[1]=num3.to_s.length
i+=num1[1]
l="t"
end
end
n
end
puts keisan("+","-",keisan("*","/",naiyou))
puts"この計算は税を含みますか?"
x = gets.chomp
if x == "はい"
puts"税の額を記入願います。"
zei = gets.to_f
a/zei
printf("%fです。\n")
else
puts"では、さようなら。"
end