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

Post Reply
Parki
Posts: 8
Joined: Thu Nov 13, 2014 9:54 pm

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

Post by Parki »

Мне нужна помощь с изучением синтаксиса.
Я был бы признателен если бы мне кто-нибудь помог мне с этим.
В свою очередь я постараюсь как можно меньше тратить ваше время.
Я могу связываться с вами любым способом, но удобнее было бы в скайпе(id: parkidesu).
Звонить не буду. Просто мне там удобно отправлять сообщения.
-
За знаки препинания не отвечаю. Спасибо.

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: viewforum.php?f=32

Parki
Posts: 8
Joined: Thu Nov 13, 2014 9:54 pm

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

Post by Parki »

-
button "1" title "a$" at 10,10 size 50,50
if button_pressed("1") then notes midi 0,9,60,127
-
Почему-то не работает.
-
Учебные материалы нуждаются в доработке, поскольку затрагивают основы, но не весь синтаксис,
а со встроенной справкой работать сложно.
Если бы вы поможете мне в изучении синтаксиса, я возьму доработку на себя.
Что именно я хочу сделать:
1. Изучить синтаксис.
2. Писать референс посредством дачи моих контактов с тем, что они могут обращаться ко мне по любым вопросам внутри синтаксиса.
И улучшать его до тех пор пока не будет надобности задавать мне вопросы лично.

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 »

Parki wrote:Почему-то не работает.
Давайте разберем подробно.
1) В какой именно команде что именно не работает?
2) Вы можете привести весь код своей программы, в которой используются эти строки?

Parki
Posts: 8
Joined: Thu Nov 13, 2014 9:54 pm

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

Post by Parki »

Работает.
NOTES MIDI 3,9,60,127
Не работает.
BUTTON "1" TITLE "A$" AT 100,10 SIZE 50,50
IF button_pressed("1") THEN
NOTES MIDI 3,9,60,127
ENDIF
-
Почему?

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 »

Parki wrote:Не работает.
BUTTON "1" TITLE "A$" AT 100,10 SIZE 50,50
IF button_pressed("1") THEN
NOTES MIDI 3,9,60,127
ENDIF
-
Почему?
Программа выполняется построчно.
При достижении последней строки выполнение программы завершается.
Если работа программы завершена, то никакие действия уже выполняться не будут.

В данном случае ту часть программы, которая ждет нажатие на кнопку, нужно будет зациклить. Программа будет циклиться, то есть все время выполняться.
Также можно добавить, что если по условию нужно выполнить всего одно действие, то необязательно это записывать это в несколько строк как:

IF x THEN
...
ENDIF

а можно записывать в одну строку как:

IF x THEN ...

Таким образом программа может выглядеть так:

Code: Select all

BUTTON "1" TITLE "A$" AT 100,10 SIZE 50,50
loop: IF button_pressed("1") THEN NOTES MIDI 3,9,60,127
goto loop

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

Parki wrote:Работает.
NOTES MIDI 3,9,60,127
Не работает.
BUTTON "1" TITLE "A$" AT 100,10 SIZE 50,50
IF button_pressed("1") THEN
NOTES MIDI 3,9,60,127
ENDIF
-
Почему?
Думаю что у Вас просто кнопка не работает...кнопку заключите в цикл

Parki
Posts: 8
Joined: Thu Nov 13, 2014 9:54 pm

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

Post by Parki »

rem Я же не вызывал метод. Почему массив создан?
def linedim (a$, a)
dim b(a)
for c = 0 to a - 1
b(c) = c + 1
next c
end def

debug pause

'
def linedim (a$, a)
dim a$(a) rem "переменная уже определена другого типа"
for c = 0 to a - 1
b(c) = c + 1
next c
end def

debug pause
'Надо чтобы можно было вводить имя массива и его размер

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 »

Parki wrote:rem Я же не вызывал метод. Почему массив создан?
def linedim (a$, a)
dim b(a)
for c = 0 to a - 1
b(c) = c + 1
next c
end def

debug pause

'
def linedim (a$, a)
dim a$(a) rem "переменная уже определена другого типа"
for c = 0 to a - 1
b(c) = c + 1
next c
end def

debug pause
'Надо чтобы можно было вводить имя массива и его размер
В smart BASIC переменные любой функции доступны в любой момент, в том числе еще до вызова этой функции. Это очень важная особенность smart BASIC. Она позволяет сначала заполнить переменные функции извне этой функции, а потом ее вызвать. Или сначала вызвать функцию, а потом извне получить значения любых переменных внутри этой функции. Такая "свободная" работа с любыми переменными любой функции из любой другой функции является уникальной особенностью smart BASIC. Подробнее смотрите в документации, раздел "Основы", подраздел "Зональные переменные".

Code: Select all

def linedim (a$, a)
dim a$(a)
В первой строке в функцию передается строковая переменная A$, а во второй строке определяется тоже переменная A$, но уже в виде массива. Это ошибка.

Parki
Posts: 8
Joined: Thu Nov 13, 2014 9:54 pm

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

Post by Parki »

rem как написать функцию возвращающую одномерный массив по определённому имени и размеру
def linedim (a$, a)
dim a$(a)
return a$
retust a
end def

rem так и не понял как это надо сделать

Post Reply