Мне нужна помощь с изучением синтаксиса.

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

Строковый массив видет как ноль , подскажите где ошибка .
Как мне задать в список конкректные вырождения :
graphics
SET LISTS CUSTOM
option base 1
maxx=screen_width()
maxy=screen_height()
kof=maxy/768
dim as(5)
data "qwer","wert","erty","rtyu","tyui"
for k=1 to 5
read as(k)
next k
list 1 TEXT as AT 0,0 SIZE maxx/3,maxy
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Переменная as должна быть строкой а не числом. К переменной добавляется знак $
В твоем случае:
Dim as$(5)
....
Read as$(k)...

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

Фант wrote:Переменная as должна быть строкой а не числом. К переменной добавляется знак $
В твоем случае:
Dim as$(5)
....
Read as$(k)...
Владимер, спасибо..)
Какой раз вы мне всё разжёвываете , реально спасибо)
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Без проблем! Обращайся :) .

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

не могу понять в чём ошибка . Нужно при нажатии вызвать подпрограмму ,у меня 81 кнопка , команда option base 1 присутствуют :
loop:
for i=1 to 81
if BUTTON_PRESSED (i)=1 then
gosub tabl
endif
next i
goto loop
tabl:
return
Image

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Мне нужна помощь с изучением синтаксиса.

Post by Mr. Kibernetik »

А как заданы кнопки?

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

Mr. Kibernetik wrote:А как заданы кнопки?
Вот код

Code: Select all

graphics
OPTION BASE 1
dim ii$(81)
data "H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pb","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Ti","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Rf","Db","Sg","Bh","Hs","Mt"
for i=1 to 81
read ii$(i)
next i
mp=1.00728
mn=1.00867
c2=931.5
if DEVICE_TYPE$ ()="iPad" then
SET ORIENTATION P
i$=0
if p=2 or p=4 then
if p=2 then
SET ORIENTATION LEFT
end if
if p=4 then
SET ORIENTATION RIGHT
end if
else 
SET ORIENTATION right
end if
a1=screen_width() 'ширина экрана
a2=screen_height() 'высота экрана
if a2<a1 then 
a3=a2
end if
if a1<a2 then 
a3=a1
end if
a4=a1-a3
core=a3/10
cof=core
corx=a4
cory=0
i=0
for k1=1 to 10
str+=1
for k2=1 to 10
i+=1
if i=81 then ! k2=10 ! endif
if str=1 then
BUTTON i text ii$(i) AT corx+core*6,cory SIZE cof,cof
corx+=core
if i=2 then
k2=10
endif
end if

if str=4 or str=6 or str=8 or str=10  then

BUTTON i text ii$(i) AT corx,cory SIZE cof,cof
corx+=core
end if

if str=2 or str=3 or str=5 or str=7 or str=9 then
BUTTON i text ii$(i) AT corx,cory SIZE cof,cof
corx+=core
if i=10 or i=18 or i=54 or i=36 or i=72 then
k2=10
end if
end if



next k2
corx=a4
cory+=core
next k1
else 
text
print "-------"
end if


loop:
for i=1 to 81
if BUTTON_PRESSED (i)=1 then
gosub tabl
endif
next i
goto loop
tabl:

return
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Переведи i в строковую переменную:
For i=1 to 81
I$=i
If button_pressed (i$) then...

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

Фант wrote:Переведи i в строковую переменную:
For i=1 to 81
I$=i
If button_pressed (i$) then...
Спасибо Фант, это программа на скорую руку ,нужна прост уже завтра , при нажатии на элемент нужно , чтобы выдавала количество изотопов и электронов , а также энергию ядра и энергию связи ядра.
Для девятых классов ...
Вдальнейшем я заменю кнопки на изображения...
Image

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Мне нужна помощь с изучением синтаксиса.

Post by Mr. Kibernetik »

Да, нужно всегда четко понимать, что имя кнопки - это СТРОКОВАЯ величина, а НЕ ЧИСЛОВАЯ.

В данной программе вы широко пользуетесь возможностью smart BASIC автоматически конвертировать числа в строки, задавая имя конпки числом, но Бейсик беря число, например 3, автоматом конвертирует его в строку "3", и создает кнопку с именем "3".
А при работе функции BUTTON_PRESSED() ей в качестве параметра нужна ТОЛЬКО СТРОКА - функции не занимаются автоматическим конвертированием чисел в строки и наоборот. Поэтому, как предлагает Фант, число (раз имена у вас - это числа) нужно сначала конвертировать в строку, например приравниванием

k$=i

и уже эту строку давать функции в качестве параметра

BUTTON_PRESSED(k$)


Имена кнопок (и других объектов) ведь могут быть произвольными строками, например:

BUTTON "моя кнопка" ...

а не только числами "0", "1" и т.д.

Post Reply