forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Массивы (http://forum.boolean.name/showthread.php?t=16584)

Amigo888 03.04.2012 18:38

Массивы
 
Здраствуйте. Я давно работал с МП но в основном использовал библеотеки. Сейчас бы хотел узнать о массивах. Я знаю как их обьявлять и какие они бывают, но не умею работать с ними. Кому не трудно обьясните пожалуйста)

Rock2roll 03.04.2012 21:18

Ответ: Массивы
 
PHP код:

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


Rock2roll 03.04.2012 21:23

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

PHP код:

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


PassCall 11.04.2012 23:29

Ответ: Массивы
 
Вложений: 1
На закуску парочку советов/фич (для 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" как бэ является лишним и никому не нужным вычислением, почем зря нагружающим (пусть и немного) систему.

Пруф:
Вложение 16614

Rock2roll 18.04.2012 17:28

Ответ: Массивы
 
Цитата:

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

Цитата:

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

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

PassCall 18.04.2012 19:42

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

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

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

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

"Паскаль, не вздумай обижаться" А на что обижаться то?

Rock2roll 18.04.2012 20:30

Ответ: Массивы
 
Цитата:

А на что обижаться то?
критика поста =)

alexprey 19.04.2012 12:44

Ответ: Массивы
 
Цитата:

Сообщение от AngeLvKedaX (Сообщение 225847)
критика поста =)

С каких это пор надо обижаться на критику поста??? Или это указано в каком то манифесте школоло?

Rock2roll 19.04.2012 20:42

Ответ: Массивы
 
Цитата:

С каких это пор надо обижаться на критику поста??
в отличии от тебя я культурный, рас ты так считаешь. Если для тебя попросить извинение это что-то низкое- школоло однозначно ты.

Igor 19.04.2012 22:52

Ответ: Массивы
 
Писать с ошибками и называть собеседника школотой - верх культурности

PassCall 29.04.2012 20:46

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

Ругань - это когда ты говоришь человеку, что он му**к
Критика - это когда ты говоришь, почему он му****м

Amigo888 30.04.2012 12:40

Ответ: Массивы
 
Ребят хватить флудить!


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot