|
Случайное число из массива
|
|
| 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 простое число, делиться только на еденицу и само себя, на все остальное делиться с остатком, т.е. получаем дробное значение!
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| 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. И никакое деление для этого не требуется!
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| 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.
|
| |
|
|