Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 03.04.2012, 18:38   #1
Amigo888
Нуждающийся
 
Регистрация: 05.08.2011
Сообщений: 85
Написано 16 полезных сообщений
(для 16 пользователей)
Массивы

Здраствуйте. Я давно работал с МП но в основном использовал библеотеки. Сейчас бы хотел узнать о массивах. Я знаю как их обьявлять и какие они бывают, но не умею работать с ними. Кому не трудно обьясните пожалуйста)
(Offline)
 
Ответить с цитированием
Старый 03.04.2012, 21:18   #2
Rock2roll
Знающий
 
Аватар для Rock2roll
 
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений
(для 13 пользователей)
Ответ: Массивы

Program massive;
var  
a:array [1..3of image;
i:integer;
begin
i
:=1;
a[i]:=loadImage('/pic.png'); i:=i+1;
a[i]:=loadImage('/pic2.png'); i:=i+1;
a[i]:=loadImage('/pic3.png');

drawImage(a[2],0,0);
drawImage(a[3],30,30);
repaint;
end
__________________
G502, GT S5230w user!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amigo888 (04.04.2012)
Старый 03.04.2012, 21:23   #3
Rock2roll
Знающий
 
Аватар для Rock2roll
 
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений
(для 13 пользователей)
Ответ: Массивы

А теперь пример заполнения числовых переменных.

Program massive2
var  
a:array [1..5of integer
i,n:integer
begin 
i
:=1n:=1;
for 
i:=1 to 5 do
begin
a
[i]:=nn:=n+10i:=i+1;
end;

drawtext(a[1]+' '+a[2]+' '+a[3],0,0);
//получим на выходе "1 11 21" 
repaint
end
__________________
G502, GT S5230w user!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amigo888 (04.04.2012)
Старый 11.04.2012, 23:29   #4
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Массивы

На закуску парочку советов/фич (для MP 2.0.2)

1. Не юзай "неквадратные" массивы таких типов: Image и String. Иначе приложение работать не будет (зависнет при старте).

Пруф:
Попробуй скомпилировать вот этот код, и проверить работоспособность билда.
program ArrayTest;
var
ch:array [1..100,1..10] of image;

begin
	drawText('Hello world!', 0, 0);
	repaint;	
	delay(2000);
end.
2. Массив должен начинаться с нуля. То есть вместо LOL:array [1..100] of inetger; нужно писать LOL:array [0..99] of inetger;.

Казалось бы, какая разница? А вот разница то есть! Дело в том, что при компиляции МП автоматически приводит массивы к "нулевому типу". То есть первый из вышеприведенного примера превращается во второй. А запись типа x:=LOL[a]; превращается в x:=LOL[a-1];. "-1" как бэ является лишним и никому не нужным вычислением, почем зря нагружающим (пусть и немного) систему.

Пруф:
Нажмите на изображение для увеличения
Название: scr094.png
Просмотров: 919
Размер:	29.6 Кб
ID:	16614
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amigo888 (16.04.2012)
Старый 18.04.2012, 17:28   #5
Rock2roll
Знающий
 
Аватар для Rock2roll
 
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений
(для 13 пользователей)
Ответ: Массивы

1. Не юзай "неквадратные" массивы таких типов: Image и String.
У меня около 15 таких массивов в новой версии Core. Все работало и на тлф и на эмуле.

Массив должен начинаться с нуля.
LowLvL = все мои массивы начинаются с еденицы и все ворк.

З.Ы.: Паскаль, не вздумай обижаться, это не для унижения твоих постов, это констатация факта.
__________________
G502, GT S5230w user!

Последний раз редактировалось Rock2roll, 18.04.2012 в 17:31. Причина: Просьба
(Offline)
 
Ответить с цитированием
Старый 18.04.2012, 19:42   #6
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Массивы

"У меня около 15 таких массивов в новой версии Core. Все работало и на тлф и на эмуле."

Я же как бэ сказал: "На закуску парочку советов/фич (для MP 2.0.2)"

"Массив должен начинаться с нуля."

Это для оптимизации. Я не говорил что такие массивы работать не будут. Я лишь показал, что добавляются лишние вычисления. И все тут.

"Паскаль, не вздумай обижаться" А на что обижаться то?
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 18.04.2012, 20:30   #7
Rock2roll
Знающий
 
Аватар для Rock2roll
 
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений
(для 13 пользователей)
Ответ: Массивы

А на что обижаться то?
критика поста =)
__________________
G502, GT S5230w user!
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 12:44   #8
alexprey
ПроЭктировщик
 
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений
(для 30 пользователей)
Ответ: Массивы

Сообщение от AngeLvKedaX Посмотреть сообщение
критика поста =)
С каких это пор надо обижаться на критику поста??? Или это указано в каком то манифесте школоло?
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 20:42   #9
Rock2roll
Знающий
 
Аватар для Rock2roll
 
Регистрация: 14.05.2010
Сообщений: 297
Написано 13 полезных сообщений
(для 13 пользователей)
Ответ: Массивы

С каких это пор надо обижаться на критику поста??
в отличии от тебя я культурный, рас ты так считаешь. Если для тебя попросить извинение это что-то низкое- школоло однозначно ты.
__________________
G502, GT S5230w user!
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 22:52   #10
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Массивы

Писать с ошибками и называть собеседника школотой - верх культурности
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 29.04.2012, 20:46   #11
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Массивы

Вся проблема в том, что многие так и не научились отличать критику от ругани.

Ругань - это когда ты говоришь человеку, что он му**к
Критика - это когда ты говоришь, почему он му****м
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 30.04.2012, 12:40   #12
Amigo888
Нуждающийся
 
Регистрация: 05.08.2011
Сообщений: 85
Написано 16 полезных сообщений
(для 16 пользователей)
Ответ: Массивы

Ребят хватить флудить!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com