RFO BASIC 12.01.2017 / 13:55 | | vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| 380679477932, а конкретнее? ты хочешь загружать картинки в массив? dim images[5]
gr.bitmap.load img, "img.png"
images[1] = img
rem etc.
__________________
знает толк |
12.01.2017 / 17:44 | | 380679477932 Пользователь Сейчас: Offline
Имя: Vlad Регистрация: 19.12.2016
| Не в принципи в програмировании
|
12.01.2017 / 18:18 | | vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| 380679477932, можешь показать, что тебе надо?
__________________
знает толк |
12.01.2017 / 19:19 | | Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| vl@volk, ему нужно пояснить за графики (функций, видимо) и массивы
__________________
わからない!! |
12.01.2017 / 20:04 | | 1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| 380679477932 Насколько я помню по массивам мы уже разбирались здесь , где-то с 6.09.2016г.. Отматай на эту дату и посмотри, то это что тебе нужно? Или объясни как то конкретнее - типа пример который не получается, ну как то сформулируй по понятней, а я как и все не могу понять чем тебе помочь?
Изменено 1961uvg (12.01 / 20:05) (всего 1 раз) |
12.01.2017 / 20:05 | | vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Витаминыч прояснил ситуацию. Массивы Массивы Массив это полочка с ячейками, в эту ячейку можно что-то положить. Чтоб что-то положить нам нужно знать номер этой ячейки на полочке — так же и в массиве, указываем номер ячейки и пользуемся как обычной переменной. Бывают массивы чисел и строк.
% объявление массива, в квадратных скобках указываем его размер (сколько ячеек будет)
dim nums[10] % массив чисел
dim strings$[10] % массив строк
% в 4 ячейку кладем значение
nums[4] = 12
strings$[4] = "четвертая ячейка"
% выведем теперь
print nums[4], strings$[4] % 12, четвертая ячейка
% изменим
nums[4] = nums[4] + 3
strings$[4] = "это " + strings$[4]
% выведем ещё раз
print nums[4], strings$[4] % 15, это четвертая ячейка
Важно, для того чтоб программа работала всегда правильно, нужно заполнить каждую ячейку. Чтоб быстрее это сделать можно воспользоваться циклом:
% все ячейки массива nums будут равны 0
for i = 1 to len(nums)
nums[i] = 0
next
Функции Функции Примеры, то что в скобках, это переменные функции, которые надо ей послать как и для стандартных, они записываются через запятую, если их несколько
Fn.def имя_функции (переменные) — создает новую функцию с именем имя_функции и аргументами (их можно и не писать) Fn.rtn значение — возвращает из функции значение Fn.end — конец создания функции
переменные можно передавать «по ссылке», это значит, что переменная переданная функцию будет изменять свое значение в функции (пример 2 и 8). Массив автоматически так передается (пример 3 и 9)
% 1) обычная функция, просто возвращает число
Fn.def pi()
Fn.rtn 3.14159265
Fn.end
% 2) принимает один аргумент, увеличивает его на 10 и возвращает полученное значение
Fn.def test(a)
a = a + 10
Fn.rtn a
Fn.end
% 3) принимает массив чисел, изменяет первый элемент и возвращает его
Fn.def test_dim(a[])
a[1] = a[1] + 10
Fn.rtn a[1]
Fn.end
% 4) выводит массив, ничего не возвращает, аргумент - массив array_d$[] (числовой так же, только без $)
Fn.def print_array(array_d$[])
for i = 0 to len(array_d$)
print array_d$[i]
next
Fn.end
% 5) принимает два аргумента a$ и b$, складывает их и возвращает
Fn.def concat$(a$, b$)
Fn.rtn a$ + b$
Fn.end
% 7) пример вызова
print pi() # 3,14159265
dim d$[2]
d$[1] = "Привет, "
d$[2] = "мир!"
print_array(d$) # Привет, мир!
% 8) передача по ссылке (там где символ &, его можно применять для всех аргументов)
num = 10
print test(num), num % 20, 10 значение переменной не изменилось
print test(&num), num % 20, 20 передали по ссылке — изменилось
% 9) для массива
dim nums[2]
nums[1] = 5
nums[2] = 2
print test_dim(nums), nums[1] % 15, 15 значения изменились потому что
print test_dim(nums), nums[2] % 12, 12 массив всегда передается по ссылке
__________________
знает толк Изменено vl@volk (12.01 / 20:17) (всего 3 раза) |
12.01.2017 / 20:14 | | 1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| vi@volk Для меня доступно написано! Но здесь ремарки по другому обозначаются. А вообще хотят ! убрать. Оставить %. Ему похоже нужны живые примеры. Хотя здесь их выше крыши, раньше разбирали, да и в документе , что раньше делали - на первой странице ( docs.google.com)хорошо разьяснено! А лучший вариант зайти на rfobasic.ru а разделе "статьи" подраздел "массивы". Там расписана популярно каждая команда + пример! Думаю , что бы не изобретать велосипед, пусть сначала посмотрит то что я предложил. А потом легче будет понять , что ему надо!
Изменено 1961uvg (12.01 / 20:24) (всего 3 раза) |
12.01.2017 / 20:19 | | vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| 1961uvg, а, действительно, исправил. Всё что я написал — рабочее, ещё примеры есть в бейсике, папка /sdcard/rfo-basic/source/Sample_Programs/
__________________
знает толк |
12.01.2017 / 20:21 | | 380679477932 Пользователь Сейчас: Offline
Имя: Vlad Регистрация: 19.12.2016
| Помоготе упростить Открыть спойлер Закрыть спойлер gr.open 250, 0, 0,0
gr.screen w, h
a=480/320 : b=w/h: c=a/b
wx=c*(w/480)
hy=c*(h/320)
gr.scale wx, hy
x=10
y=10
gr.color 250,250,50,0
gr.circle button, 25,250,25
gr.circle button2, 95,250,25
gr.circle button3, 60,215,25
gr.circle button4, 60,285,25
gr.color 250,0,250,0
gr.point g, -1,-1
gr.color 250,0,0,250
gr.circle igrok, x,y,10
gr.render
do
GOSUB bottons
GOSUB touch
gr.render
until 0
touch:
gr.touch toch , xt, yt
if toch= 0 then xt=-1
gr.modify g, "x", xt,"y", yt
return
bottons:
if gr_collision (g, button) then x=x-4
if gr_collision (g, button2) then x=x+4
if gr_collision (g, button3) then y=y-4
if gr_collision (g, button4) then y=y+4
gr.modify igrok, "x", x,"y", y
return
|
12.01.2017 / 20:27 | | 380679477932 Пользователь Сейчас: Offline
Имя: Vlad Регистрация: 19.12.2016
| |
Всего сообщений: 2716 Фильтровать сообщения Поиск по теме Файлы топика (511)
|