00:17
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Случайное число из массива
SLICKДата: Суббота, 29.05.2010, 18:58 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Вобщем нужно определить случайное число из массива, но в pawno не как не получается это сделать.
Пытался сделать таким способом:

Например есть массив mas[7]
num = random(sizeof(mas)/sizeof(mas[0]));

Но при компиляции вылетают ошибки, хотя данный способ должен работать.
Может кто-то знает в чем проблема?


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)
ScorpiДата: Суббота, 29.05.2010, 19:08 | Сообщение # 2
Группа: I'm V.I.P.
Сообщений: 1504
Награды: 33
Репутация: 723
Замечания: 0%
Статус:
new mas[7];
new num;
new num2;

num = random(sizeof(mas));
num2 = mas[num];

Садомазо xD

stepmexДата: Суббота, 29.05.2010, 19:14 | Сообщение # 3
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Во-первых, random работает только с целыми числами!
Во-вторых, sizeof(mas[0]) - размер одной ячейки всегда равен еденице!
В-третих, правильней будет так: num = mas[random(sizeof(mas))];

Добавлено (29.05.2010, 19:14)
---------------------------------------------

Quote (Scorpi)
Садомазо xD
согласен что нубоскриптеры ради банальщины создают дополнительны бесполезные переменные и кучу лишних строк - мазахисты!



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...

Сообщение отредактировал stepmex - Суббота, 29.05.2010, 19:15
SLICKДата: Суббота, 29.05.2010, 19:42 | Сообщение # 4
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Quote (stepmex)
Во-первых, random работает только с целыми числами!

Хм.. sizeof(array[0]) тут мы получаем размерность массива - а полученная размерность это же ведь и есть целое число..

Quote (stepmex)
В-третих, правильней будет так: num = mas[random(sizeof(mas))];

Спасибо. :)


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)
stepmexДата: Суббота, 29.05.2010, 20:02 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Quote (SLICK)
полученная размерность это же ведь и есть целое число..
а причем сдесь sizeof(array[0]) если ты в рендом запихал деление!
Quote (SLICK)
Например есть массив mas[7]
num = random(sizeof(mas)/sizeof(mas[0]));
sizeof(mas) = 7
7 простое число, делиться только на еденицу и само себя, на все остальное делиться с остатком, т.е. получаем дробное значение! mda



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
SLICKДата: Суббота, 29.05.2010, 21:20 | Сообщение # 6
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Quote (stepmex)
а причем сдесь sizeof(array[0]) если ты в рендом запихал деление!

я и так пробовал (способ бредовый, но для примера подойдет)

new a, b, c, d;
a = sizeof(mas);
b = sizeof(mas[0]);
c = a/b; //получаем размерность массива
d = random( c );

все равно ошибка вылетала.. И оказалось это все из-за того что нельзя определить размерность массива созданного динамически.


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)


Сообщение отредактировал SLICK - Суббота, 29.05.2010, 21:21
stepmexДата: Суббота, 29.05.2010, 21:40 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Quote (SLICK)
c = a/b; //получаем размерность массива
бред, размерность массива ты получаешь функцией sizeof(), в твоем примере это число a.
И никакое деление для этого не требуется! mda



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
MorozzzkoДата: Суббота, 29.05.2010, 22:07 | Сообщение # 8
Мастер джэдай
Группа: Продвинутые
Сообщений: 2179
Награды: 40
Город: Moscow
Репутация: 590
Замечания: 0%
Статус:
SLICK, эм. это так в школах на информатике учат? )
Quote (SLICK)
c = a/b; //получаем размерность массива

в одномерном массиве размер ячейки равен единице же.
вывод: c = a;



Главный программист в Malefic Entertainment.
SLICKДата: Суббота, 29.05.2010, 22:26 | Сообщение # 9
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Quote (Morozzzko)
SLICK, эм. это так в школах на информатике учат? )

вобщето не в школах и не на информатике)
Я привык к c++ и там функция sizeof(array[0]) возвращает кол-во байт, занимаемое одним элементом массива, а не размерность. В pawno совсем не так, т.к. в нем используються динамические переменные.

Вобщем Спасибо всем за помощь! :)


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)


Сообщение отредактировал SLICK - Суббота, 29.05.2010, 22:27
LynchДата: Суббота, 29.05.2010, 23:22 | Сообщение # 10
Местный
Группа: Продвинутые
Сообщений: 720
Награды: 11
Город: Губкин
Репутация: 288
Замечания: 60%
Статус:
В соседней теме stempex упрекал пользователя, что он не хочет ничему разбиратся.
В этой теме пользователь хочет разобраться, но его все-равно упрекают, что он нубоскриптер.
Вам лишь бы оскорбить кого-нибудь? :(
P.S.: А парень умный, проигнорировал все насмешки. Я бы так не смог :)

SLICKДата: Суббота, 29.05.2010, 23:38 | Сообщение # 11
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Quote (Lynch)
В соседней теме stempex упрекал пользователя, что он не хочет ничему разбиратся.
В этой теме пользователь хочет разобраться, но его все-равно упрекают, что он нубоскриптер.
Вам лишь бы оскорбить кого-нибудь? :(
P.S.: А парень умный, проигнорировал все насмешки. Я бы так не смог :)

вобще да, зачем постоянно упрекать, не легче просто сказать что не правильно и нормально сказать как правильно!

p.s. Особых насмешек я не видел, да и спорить не особо хотелось. Поэтому может что то и проигнорировал.


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)
MorozzzkoДата: Воскресенье, 30.05.2010, 00:16 | Сообщение # 12
Мастер джэдай
Группа: Продвинутые
Сообщений: 2179
Награды: 40
Город: Moscow
Репутация: 590
Замечания: 0%
Статус:
SLICK, если б в павно были динамические переменные, то могли бы хотя бы указатели вставить(


Главный программист в Malefic Entertainment.
SLICKДата: Воскресенье, 30.05.2010, 00:31 | Сообщение # 13
Местный
Группа: I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус:
Quote (Morozzzko)
SLICK, если б в павно были динамические переменные, то могли бы хотя бы указатели вставить(

возможно это запретили делать или решили что это не обязательно..
ведь при обьявлении переменной используется new как и у динамических переменных, да и мой способ который в 1ом посте в c++ работает, а в pawno нет(


My works:
[GM] RTDM
Advertising system
Fuel System
Artefacts Search (Динамическая сис-ма артефактов)
MorozzzkoДата: Воскресенье, 30.05.2010, 00:45 | Сообщение # 14
Мастер джэдай
Группа: Продвинутые
Сообщений: 2179
Награды: 40
Город: Moscow
Репутация: 590
Замечания: 0%
Статус:
SLICK, можно заменить new на local, будет смысл один. лишь буквы.
а может и нет.
в любом случае, с указателями было бы гораздо проще =/



Главный программист в Malefic Entertainment.
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua