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

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

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

k$=i

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

BUTTON_PRESSED(k$)


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

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

а не только числами "0", "1" и т.д.
Спасибо Mr. Kibernetik , всё чётко расставили по полкам.
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 Фант »

Mark990530 wrote:
Фант wrote:Переведи 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: Думаю сто после нажатия кнопки лучше уходи не в подпрограмму а в функцию...
Вставляй туда дату со всеми твоими значениями (группы значений) и считывай сразу несколькими переменными нужную группу значений
Я пока не знаю как объявить сразу несколько data и считывать их , был бы очень благодарен вам если вы меня просвятите
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$=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

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 Фант »

Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)

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 Фант »

Print я написал для краткости и ясности...не забывай что она для текстового режима, а у тебя графический режим включен, хотя для отображения элементов интерфейса(кнопок) графический режим не обязателен. Кнопка работает и в текстовом

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 Фант »

Если на скорую руку надо-то тогда делай все в текстовом режиме и выводи на печать обычным PRINT столбиком слева от кнопок. Тогда graphics убери в начале программы

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:Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
Вотана как вы тут творите чудеса !!! :o
Понял..)
Спасибо Владимир. :)
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 Фант »

Mark990530 wrote:
Фант wrote:Если ты нырнешь в функцию-то объявленная в ней Data будет только для этой функции.
Перед заходом в функцию-сбрасывай счетчик и считывай по новой ту группу-которая соответствует номеру твоей кнопки (.i)
Вотана как вы тут творите чудеса !!! :o
Понял..)
Спасибо Владимир. :)
Да-функция-это великая вещь!
Только не путай написание переменных при использовании в функции и в программе:
В функции как и в программе переменные называть можем одинаково: x,y.
Но если эти переменные использовать за пределами зоны, тогда надо спереди через точку указывать эту зону.
Допустим в самой программе переменную из функции надо писать так:dat_base.aa1,dat_base.aa2...
А переменную из программы для использования в функции надо писать просто через точку: .i,.i$

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 »

Если при использование команды field , я вожу число 3 , то переменная будет строковая?
Если да то как обратное его отформатировать в числовое ?
Image

Post Reply