Mobile BASIC

Непопадающие в другие разделы и прочие философские темы

Mobile BASIC

Сообщение K!LLER_revenge » 09 июн 2010, 10:12

Может кому понадобится
Мобильный BASIC, это мобильный мидлет, который позволяет легко разрабатывать программы непосредственно на Java включая мобильных телефонов. Мобильный BASIC MIDlet может быть использован для написания бизнес-приложений, личной производительности программы, программы для хобби и специальным интересам или просто использовать его в качестве мощного программируемого калькулятора.
Язык поддерживает множество удобных функций, в том числе цветная графика (от цвета телефоны), Sprite графики с обнаружение столкновений, в том числе математические функции логарифма и тригонометрии, Случайные доступ к файлам, а также ряд форм. The language also supports several datatypes including Integer, Float and String. Он также поддерживает некоторые типы данных, в том числе Integer, Float и String.
Мобильный BASIC MIDlet также может быть запрограммирован для передачи и получили данные от Internet Services. Imagine the possibilities for Sales Force Automation - You can obtain customer details, order parts and raise invoices directly from your Mobile Phone. Say goodbye to your expensive cumbersome laptops! Представьте себе возможности для автоматизации продаж - Вы можете получить реквизиты клиента, для частей и повышения счета прямо с вашего мобильного телефона. Попрощайтесь с вашей дорогой громоздкий ноутбук!
Учебное пособие для "чайников"
-=MobileBasic=-

В этом учебнике я попробую обьяснить как работать с программой "MobileBasic 1.8" ( для мобильных телефонов). Здесь я изложу всю теорию и практические примеры.Начнем!!!

§1.
Переменные
Существуют переменные трёх типов
чесловые - % - primer%
символьные - $ - primer$
просто одним словом - primer
чтобы присовить переменной значение
нужно ввести
primer%=5
primer$="hi world"
primer="123 hi world"
Также если игроку нужно вести текст , чтобы он потом отобразился на жкране
input "сюда вставляем свой комментарий",peremennaya_s_lybim_nazvaniem$
чтобы вывксти на экран
print peremennaya_s_lybim_nazvaniem$
Основные команды
DIR - выводит на экран все программы
EDIT L% - редактирование строки L%
LIST [L1%[,L2%]] - вывод на экран текста программы; если введен параметр L1%, то выводится только эта строка; если введены оба параметра, то выводится часть программы в интервале L1%-L2%
NEW - удаляет программу из буфера
RUN - запуск
INPUT "...",( /%/$) - ввод переменой, где "..."-комментарий, ( /%/$)-любая переменная
PRINT ( /%/$) - вывод любой переменой ( /%/$), постоянной
GOTO L% - переход к строке L%
IF <1> THEN <2> - условие, где <1> - условие, <2> - исполнимая часть, если условие верно.
Например: IF A<5 THEN GOTO 50
FOR P%=1% TO 2% [STEP 3%] | NEXT P% - цикл. P% - переменная цикла, 1% - начало, 2% - конец, 3% - шаг (по умолчанию равен 1).FOR/TO/STEP - начинает цикл, NEXT - заканчивает
DEG - перевод в градусы (некоторые функции с угловым аргументом)
RAD - перевод в радианы
SLEEP MS% - пауза в миллисекундах
STOP - остановка программы
END - конец программы
BYE - выход из среды программировния
REM - комментарий
TRAP L% - при ошибке передает управление строке L%

Работа с программами
DELETE "..." - удаляет программу / подпрограмму
LIST "..." - сохраняет подпрограмму как текст
ENTER "..." - загружает подпрограмму (текст), не стирая остальные строки
SAVE "..." - сохраняет программу в закодированом виде (занимает меньше места)
LOAD "..." - загружает программу, как код, удаляя все остальные строки

Данные, подпрограммы
DATA ... - любые данные (текст, числа). Строка не должна иметь какие либо другие операторы.
Например: 90 DATA 65,3.0,LOAD,2.2E+2
READ ... - чтение данных, записанных в DATA.
Например: READ A%,F,K$,E
RESTORE L% - использование данных из строки L%
DIM ( /%/$)(N%) - создает любой массив с колличеством элементов N%.
Например DIM A%(50)
GOSUB L% - выполнить подпрограмму со строки L%
RETURN - заканчивает подпрограмму и передает управление команде за GOSUB
POP - игнорирует первый RETURN

Графика
CLS - очищает экран
SETCOLOR R%,G%,B% - выбор цвета RGB (переменные в пределе 0 - 255)
PLOT X%,Y% - рисует точку (x;y)
BLIT X1%,Y1%,W%,H%,X2%,Y2% - копирует прямоугольник с верхним левым углом (x1;y1), шириной (w), высотой (h) в точку (x2;y2) (верхний левый угол)
DRAWLINE X1%,Y1%,X2%,Y2% - рисует отрезок (x1;y1) - (x2;y2)
DRAWRECT X%,Y%,W%,H% - рисует прямоугольник (рамку) с верхним левым углом (x;y) шириной (w) и высотой (h)
DRAWARC X%,Y%,W%,H%,SA%,A% - рисует дугу (или окружность) с расстоянием до верхней границы экрана (y), левой границы (x), высотой (h), шириной (w),
начальным углом дуги (sa), углом (a), в градусах или радианах, в зависимости от того, что выбрано
DRAWROUNDRECT X%,Y%,W%,H%,A_W%,A_H% - аналогично DRAWRECT, только со скругленными углами, высотой(a_h) и шириной(a_w)
DRAWSTRING STRING$,X%,Y% - рисует строку (string) с координатами начала (x;y)
FILLRECT X%,Y%,W%,H% - аналогично DRAWRECT, только залит
FILLARC X%,Y%,W%,H%,SA%,A% - аналогично DRAWARC, но залита (т.е. сектор или круг)
FILLROUNDRECT X%,Y%,W%,H%,A_W%,A_H% - аналогично DRAWROUNDRECT, но залит

Спрайты
GELLOAD Gel$,Resourse$ - Загружает гель (графический элемент) из ресурса - графического файла в яре бейсика. Например:
gelload "ball","ball.gif"
GELGRAB Gel$,X%,Y%,W%,H% - "Вырезает" гель из прямоугольника (x,y,w,h)
DRAWGEL Gel$,X%,Y% - Рисует гель на экране с координатой верхнего левого угла (x,y); если он уже был нарисован в другом месте, то старый стирается
SPRITEGEL Sprite$,Gel$ - Сопоставляет спрайт с гелем
SPRITEMOVE Sprite$,X%,Y% - Рисует спрайт аналогично drawgel

Файлы
OPEN #ch%,file$,mode$ - открывает рмс - файл(file) и сопоставляет ему канал(ch). Каналов может быть до 10: от 0 до 9. Они используются для удобного доступа к файлу. Тип(mode) может быть разным - запись("output") и чтение("input"). Если имя файла, проги начинается с точки, то файл скрыт и не просматривается через меню, dir, readdir
CLOSE #ch% - закрывает канал
GET #ch%,b% - считывает байт
PUT #ch%,b% - пишет байт
INPUT #ch%,( /%/$) - считывает переменную (, записанную с разделителями)
PRINT #ch%,( /%/$) - записывает переменную
NOTE #ch%,c% - считывает позицию чтения/записи
POINT #ch%,c% - устанавливает позицию. Если число отрицательное, то позиция переходит в самый конец файла


ФУНКЦИИ
Математ. функции
ABS(X) - |x|
SQR(X) - x^0.5
RND(0) - случайное число (32b)
LOG(X) - ln x
EXP(X) - e^x
MOD(A,B) - остаток a/b
SIN(A) - sin a
COS(A) - cos a
TAN(A) - tg a
ASIN(X) - arcsin x
ACOS(X) - arccos x
ATAN(X) - arctg x

Строковые функции
LEN(S$) - длина s
MID$(S$,S%,L%) - отрезок из s, с началом s и длиной l
LEFT$(S$,L%) - отрезок "слева", длиной l
RIGHT$(S$,L%) - отрезок "справа", длиной l
STR$(N) - превращает число n в строку
VAL(S$) - превращает строку s в число
CHR$(N%) - возвращает символ с номером n в кодировке Utf
ASC(S$) - возвращает код первого символа из s

Работа со встроенными часами и календарем
DAYS(0) - возвращает определенное число, соответствующее времени снятия показаний, обозначим его D%
MILLISECONDS(0) - то же, обозначим M%
MILLISECOND(D%,M%) - возвращает миллисекунды в момент снятия показаний функциями Days(0) и Milliseconds(0)
SECOND(D%,M%) - секунды
MINUTE(D%,M%) - минуты
HOUR(D%,M%) - часы
DAY(D%,M%) - дни
MONTH(D%,M%) - месяца
YEAR(D%,M%) - годы

Привязка к клавишам
Функции возвращают не ноль, если нажата соответствующая клавиша
LEFT(0) - [4], влево
RIGHT(0) - [6], справо
UP(0) - [2], вверх
DOWN(0) - [8], вниз
FIRE(0) - [5], джойстик, лев. софт.
GAMEA(0) - [1]
GAMEB(0) - [3]
GAMEC(0) - [7]
GAMED(0) - [9]

Дополн. функции
FRE(M%) - возвращает размер памяти:
m%:0-своб. буфера
1-зан. буфера
2-весь буфер
3-своб. оп
4-вся. оп
ERR(0) - в случае возникновения ошибки возвращает её код
READDIR$(M$) - возвращает результат поиска файла по маске:
если найдено, то имя файла, если нет, то "". Пример маски: "c*","*.txt","w*.dat"
PROPERTY$(M$) - возвращает параметры телефона по таким аргументам(для семенов):
microedition.model
microedition.profile
microedition.configuration
microedition.locale
microedition.encoding

Графические функции
SCREENWIDTH(0) - ширина экрана
SCREENHEIGHT(0) - высота экрана
STRINGWIDTH(S$) - ширина строки
STRINGHEIGHT(S$) - высота строки
GELWIDTH(G$) - ширина граф. эл.
GELHEIGHT(G$) - высота граф. эл.
(все в пикселях)
NUMCOLORS(0) - количество цветов, которые может воспроизводить дисплей
ISCOLOR(0) - если цвет, выбраный коммандой SETCOLOR R%,G%,B% дисплей может воспроизвести, то функцию возвращает 1, иначе - 0
SPRITEHIT(S1$,S2$) - если спрайты столкнулись - 1, иначе - 0

Функции пользовательского интерфейса
Входящие параметры
T$ - заголовок
O$ - надпись на клавише "ок"
C$ - надпись на клавише "отмена"
L$ - подзаголовок
MESSAGEFORM(T$,O$,C$,L$,M$):
Выводит на экран текст.
Возвращает 1 - если "ок", -1 если "отмена".
M$ - сообщение.
EDITFORM(T$,O$,C$,L$,V$,L%,M%)
Редактирование текста.
Возвращет: len(V$) - "ок", -1 - "отмена"
V$ - переменная редактирования
L% - максимальная длина
M% - тип:
0 - текст
1 - пароль
2 - число
3 - e-mail
4 - номер телефона
5 - url
CHOICEFORM(T$,O$,C$,L$,A$,M%)
Выбор.
Возвращает: N - "ок", -1 - "отмена"
A$ - массив выбора
M% - тип:
0 - переключатели
1 - флажки
GAUGEFORM(T$,O$,C$,L$,M%,S%,M%)
Настройка уровня.
Возвращает: N - "ок", -1 - "отмена"
M% - размер
S% - стартов. значение
M% - тип:
0 - нерегулируемый
1 - регулируемый
DATEFORM(T$,O$,C$,L$,A%,M%)
Настройка даты
Возвращает: 1 - "ок", -1 - "отмена"
A% - массив
M% - тип:
0 - время и дата
1 - дата
2 - время
A%(0)=MS%
A%(1)=D%


Ну вот, это все команды.

Пример простой программы
10 print " hi world"
20 print "ведите свой ник "
30 input "ник",nik$
40 print "hi" + nik$
50 "print для выхода нажмите 5"
60 if fire(0) then bye
70 goto 60
80 end

Знаю сложновато , но если хорошо почитать можно разобраться
Пока без крупных примеров программ
Вложения
mb.rar
(109.68 Кб) Скачиваний: 458
I will revenge
Изображение
Аватара пользователя
K!LLER_revenge
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 08 июн 2010, 08:26
Домен: http://on-zone.wen.ru

Re: Mobile BASIC

Сообщение Кадет » 09 июн 2010, 10:17

Обычный неструктурированный язык...
Кадет
Активный участник
 
Сообщения: 1497
Зарегистрирован: 23 апр 2008, 21:08

Re: Mobile BASIC

Сообщение K!LLER_revenge » 09 июн 2010, 11:59

и очень простой для понятия
I will revenge
Изображение
Аватара пользователя
K!LLER_revenge
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 08 июн 2010, 08:26
Домен: http://on-zone.wen.ru

Re: Mobile BASIC

Сообщение K!LLER_revenge » 09 июн 2010, 12:08

написать примеры , типа передвижения спрайтов и т.д. ?
I will revenge
Изображение
Аватара пользователя
K!LLER_revenge
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 08 июн 2010, 08:26
Домен: http://on-zone.wen.ru

Re: Mobile BASIC

Сообщение Кадет » 09 июн 2010, 14:20

/*del*/
Последний раз редактировалось Кадет 09 июн 2010, 16:49, всего редактировалось 1 раз.
Кадет
Активный участник
 
Сообщения: 1497
Зарегистрирован: 23 апр 2008, 21:08

Re: Mobile BASIC

Сообщение Кадет » 09 июн 2010, 16:42

Кадет
Активный участник
 
Сообщения: 1497
Зарегистрирован: 23 апр 2008, 21:08

Re: Mobile BASIC

Сообщение K!LLER_revenge » 09 июн 2010, 16:46

может поможешь компьютерную версию найти ,пожайлуста?
Кадет писал(а):Компилятор, интерпритатор, линовщик или что нибудь ещё надо кроме Java?

ты меня в тупик поставил
я не знаю что это .......
I will revenge
Изображение
Аватара пользователя
K!LLER_revenge
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 08 июн 2010, 08:26
Домен: http://on-zone.wen.ru

Re: Mobile BASIC

Сообщение Кадет » 09 июн 2010, 17:34

Сам бы рад найти для ПК версию, но у меня нету фула, только прокси, и качать 20 мб пол года буду...

Кроме Java ничего больше не надо, т.к. прога создаёт классы Java, потом их интерпритирует.
Кадет
Активный участник
 
Сообщения: 1497
Зарегистрирован: 23 апр 2008, 21:08

Re: Mobile BASIC

Сообщение K!LLER_revenge » 09 июн 2010, 19:04

ты мне найди ссылку , а я размещу
просто там половина не рабочих ссылок
Кадет писал(а):Сам бы рад найти для ПК версию, но у меня нету фула, только прокси, и качать 20 мб пол года буду...

Кроме Java ничего больше не надо, т.к. прога создаёт классы Java, потом их интерпритирует.

а ты думаешь фул быстро работает .
Днём у мя 100кб/c
вечером 30-60/c
а должно быть 300кб/c
I will revenge
Изображение
Аватара пользователя
K!LLER_revenge
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 08 июн 2010, 08:26
Домен: http://on-zone.wen.ru


Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24