Спасибо Mr. Kibernetik , всё чётко расставили по полкам.Mr. Kibernetik wrote:Да, нужно всегда четко понимать, что имя кнопки - это СТРОКОВАЯ величина, а НЕ ЧИСЛОВАЯ.
В данной программе вы широко пользуетесь возможностью smart BASIC автоматически конвертировать числа в строки, задавая имя конпки числом, но Бейсик беря число, например 3, автоматом конвертирует его в строку "3", и создает кнопку с именем "3".
А при работе функции BUTTON_PRESSED() ей в качестве параметра нужна ТОЛЬКО СТРОКА - функции не занимаются автоматическим конвертированием чисел в строки и наоборот. Поэтому, как предлагает Фант, число (раз имена у вас - это числа) нужно сначала конвертировать в строку, например приравниванием
k$=i
и уже эту строку давать функции в качестве параметра
BUTTON_PRESSED(k$)
Имена кнопок (и других объектов) ведь могут быть произвольными строками, например:
BUTTON "моя кнопка" ...
а не только числами "0", "1" и т.д.
Мне нужна помощь с изучением синтаксиса.
Re: Мне нужна помощь с изучением синтаксиса.
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
Думаю сто после нажатия кнопки лучше уходи не в подпрограмму а в функцию...Mark990530 wrote:Спасибо Фант, это программа на скорую руку ,нужна прост уже завтра , при нажатии на элемент нужно , чтобы выдавала количество изотопов и электронов , а также энергию ядра и энергию связи ядра.Фант wrote:Переведи i в строковую переменную:
For i=1 to 81
I$=i
If button_pressed (i$) then...
Для девятых классов ...
Вдальнейшем я заменю кнопки на изображения...
Вставляй туда дату со всеми твоими значениями (группы значений) и считывай сразу несколькими переменными нужную группу значений
Re: Мне нужна помощь с изучением синтаксиса.
Я пока не знаю как объявить сразу несколько data и считывать их , был бы очень благодарен вам если вы меня просвятитеФант wrote: Думаю сто после нажатия кнопки лучше уходи не в подпрограмму а в функцию...
Вставляй туда дату со всеми твоими значениями (группы значений) и считывай сразу несколькими переменными нужную группу значений
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
К примеру:
....
I$=i
If button_pressed(i$) then dat_base
....
Def dat_base
Restore
Data a1,a2,a3,a4,b1,b2,b3,b4,c1,c2....
For i=1 to 81
Read aa1,aa2,aa3,aa4
If i=.i then
Print "Изотопы:"&aa1,"Электроны:"&aa2.......
Return
Endif
Next i
End def
....
I$=i
If button_pressed(i$) then dat_base
....
Def dat_base
Restore
Data a1,a2,a3,a4,b1,b2,b3,b4,c1,c2....
For i=1 to 81
Read aa1,aa2,aa3,aa4
If i=.i then
Print "Изотопы:"&aa1,"Электроны:"&aa2.......
Return
Endif
Next i
End def
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
Print я написал для краткости и ясности...не забывай что она для текстового режима, а у тебя графический режим включен, хотя для отображения элементов интерфейса(кнопок) графический режим не обязателен. Кнопка работает и в текстовом
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
Если на скорую руку надо-то тогда делай все в текстовом режиме и выводи на печать обычным PRINT столбиком слева от кнопок. Тогда graphics убери в начале программы
Re: Мне нужна помощь с изучением синтаксиса.
Вотана как вы тут творите чудеса !!!Фант wrote:Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
Понял..)
Спасибо Владимир.
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Мне нужна помощь с изучением синтаксиса.
Да-функция-это великая вещь!Mark990530 wrote:Вотана как вы тут творите чудеса !!!Фант wrote:Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
Понял..)
Спасибо Владимир.
Только не путай написание переменных при использовании в функции и в программе:
В функции как и в программе переменные называть можем одинаково: x,y.
Но если эти переменные использовать за пределами зоны, тогда надо спереди через точку указывать эту зону.
Допустим в самой программе переменную из функции надо писать так:dat_base.aa1,dat_base.aa2...
А переменную из программы для использования в функции надо писать просто через точку: .i,.i$
Re: Мне нужна помощь с изучением синтаксиса.
Если при использование команды field , я вожу число 3 , то переменная будет строковая?
Если да то как обратное его отформатировать в числовое ?
Если да то как обратное его отформатировать в числовое ?