This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
IceCrasher's profile picture

[Lua][Error]

Started by IceCrasher, 23 September 2012 - 07:14 PM
IceCrasher #1
Posted 23 September 2012 - 09:14 PM
Hi guys, I play computercraft since two days, so I'm not a really good programer, but I know you guys out there are awesome and I hope you will help my.

The computer gives my an error message in line 30, it means print should be a variable :P/>/>

please help me:

print("How much HvSolars do you have?")
a = tonumber(read())
x=1
hv=12500
t=0
tt1=0
tt2=0
tt3=1
wert=0
  tt1=1000000/512/20/x*hv
  t=t+tt1
  x=x+1
function calculate2()
  while x<a do
	    tt1=1000000/512/20/x*hv
	    tt2=tt1-30
	    tt3=tt2/tt1
	    x=x+1
	    wert=1000000/512/20*tt3/x*hv
	    t=t+wert+tt1
  end
end
function chegcalculate2fortt3()
  if tt3>0 then
	    calculate2()
  else
	    print("Ab "..x.." ist tt3 kleiner als 0")
	    stop=1
end
end
stop=0
while stop=0 do
  chegcalculate2fortt3()
end
print(t.." sec")
tinm=t/60
print(tinm.." min")
tinh=tinm/60
print(tinh.." h")
tind=tinh/24
print(tind.." d")
Goof #2
Posted 23 September 2012 - 09:22 PM
can u please paste exactly what the error says?
IceCrasher #3
Posted 23 September 2012 - 09:24 PM
sorry:
bios:206: [string "calculate"]:30: '=' expected
Grim Reaper #4
Posted 23 September 2012 - 09:30 PM
On line 32 of your program:

while stop=0 do
You use something called the 'assignment' operator which is: '='. That statement basically says while (set stop = 0) do, which is an invalid condition.

You probably meant to use the equals comparison operator '=='.
Try this:

while stop==0 do

Here is the revised version of your program:

print("How much HvSolars do you have?")
a = tonumber(read())
x=1
hv=12500
t=0
tt1=0
tt2=0
tt3=1
wert=0
  tt1=1000000/512/20/x*hv
  t=t+tt1
  x=x+1
function calculate2()
  while x<a do
		    tt1=1000000/512/20/x*hv
		    tt2=tt1-30
		    tt3=tt2/tt1
		    x=x+1
		    wert=1000000/512/20*tt3/x*hv
		    t=t+wert+tt1
  end
end
function chegcalculate2fortt3()
  if tt3>0 then
		    calculate2()
  else
		    print("Ab "..x.." ist tt3 kleiner als 0")
		    stop=1
end
end
stop=0
-- Replaced assignment with comparison.
while stop==0 do
  chegcalculate2fortt3()
end
print(t.." sec")
tinm=t/60
print(tinm.." min")
tinh=tinm/60
print(tinh.." h")
tind=tinh/24
print(tind.." d")
Goof #5
Posted 23 September 2012 - 09:30 PM
I would try to edit whole your code and writing the same program, just error free. As soon as i can.
IceCrasher #6
Posted 23 September 2012 - 09:37 PM
@Grim Reaper
thanks, you found a fail in my programm which I didn't know about…but the error message is still there :P/>/>


@Mikk809h
do you mean because it is a mess ore the fail message coud go away?