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

 



 
        
[CLEO] HUDFIX (0)
MyxaChannel 30.11.2016 18:03
GM Car для SAMP (1)
MyxaChannel 30.11.2016 18:00
 





Рекомендуем:
Добавить IP: 88.212.220.148:22003





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 3123»
Модератор форума: Dima-kun 
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [ Lesson ] Переменная
[ Lesson ] Переменная
LatronДата: Пятница, 10.02.2012, 15:05 | Сообщение # 1
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Автор урока: Latron

Переменная это не неотъемлемая часть скрипта.Она имеет свой тег и значение.

В языке PAWN один тип, это ячейка - 4 байта, ячейка равна 4 байтам, или 32 битам, что соответствует данному диапазаону (диапазон от -2147483648 до 2147483647)
она является, как универсальный тип.

new - объявление переменной .
Синтаксис объявления переменной - new название; или new тег название = значние;
по стандарту если вы не указали тег переменной значение будет целым числом INT.

INT - целые числа, например 1,9,48,99.
Еще в целых числах можно хранить символы. Например h,r,u.
Пример объявления такой переменной:
new name; (значение не указано,значит оно будет равно нулю),или же
new name = 93. Значение будет равно 93. либо new name = 'y';

Float: - ( число с плавающей запятой ), например 1.2 или 47.797 .
Для вещественных чисел применяется специальный тег Float:, именно специальный, потому что он обладает специфичным свойством,
отличающим его от остальных тегов, которые в случаи присвоения вещественного числа будут давать предупрежденние компилятора о несоответствие тегов и их значений
без соответствущего присвоения с первичным "сбросом" первоначального тега по-средству _:или же самого на себя.
Пример объявления: new Float: название; Либо new Float: название = значение;
Пример: new Float: name; (значение не указано,значит оно будет равно 0.0) или new Float: name = 47.797; будет равна 47.797.

Вывод переменных:
( покажу на примере функции printf - выводит перменные в консоль. )
Спецификатор %d - ( вывод целочисленной перменной). еще может быть %i - тоже самое что и %d.
Пример. создадим перменную:
new name = 33;
Выведем в консоль printf( "Значение перемнной - %d", name );

Спецификатор %s - ( вывод текста ).
Пример. создадим перменную:
new name[5] = "text";

Выведем в консоль printf( "Значение перемнной - %s", name );

Спецификатор %f - ( вывод числа с точкой ).
Пример. создадим перменную:
new Float: name = 3.7;
Выведем в консоль printf( "Значение перемнной - %f", name );

Спецификатор %c - ( вывод одного символа ).
Пример. создадим перменную:
new name = 'y';
Выведем в консоль printf( "Значение перемнной - %c", name );

Еще переменные можно объявлять через static, это статическая переменная. Она может быть использована как в локальной так и в глобальной среде.
Особенность такой переменной в том что она сохраняется в локальной среде. Дело в том, что если объявить переменную в локальной среде, то при каждом вызове
этой среды, переменная будет пересоздаваться, и её прошлые значения не будут сохраняться, нежели со static.
К примеру:
Создадим функцию без аргументов под названием "FirstFunction"
Code

stock FirstFunction(  )
{
          // Локальная среда.
          new test; // Создадим переменную под названием "test", тип INT ( целое число ), по-умолчанию будет равной 0.
          printf( "После создания значение переменной равно  %d", test ); // Будет равна 0.
          test = 33; // Меняем значение нашей переменной.
}

При первом вызове переменная будет равна 0, и при тоже при последующих вызовах, так как она постоянно создается заного, и её новое значение ( 33 ) не будет сохранятся.
А теперь попробуем, через static:
Code

stock SecondFunction()
{
          // Локальная среда.
          static test; // Создадим переменную под названием "test", тип INT ( целое число ), по-умолчанию будет равной 0.
          printf( "После создания значение переменной равно  %d", test ); // Переменная равна 0 при первом вызове функции.
          test = 33; // Устанавливаем новое значение для нашей переменной.
}

При первом вызове наша переменная будет равна 0, а уже при последующих будет равна 33, так как ниже мы установили ей новое значение 33. И значение сохраняется.

Переменную нельзя использовать до её инициализации , то есть пока переменная не объявлена нельзя ей пользоваться например :
Как нельзя делать:
Code

          строка 1: mysql_real_escape_string( inputtext, pass );
          строка 2: new pass[ 32 ];

В данном случае переменная в строке 1 не будет определена компилятором ( error 017: undefined symbol "pass" )
Как правильно:
Code

          строка 1: new pass[ 32 ];
          строка 2: mysql_real_escape_string( inputtext, pass );



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Воскресенье, 08.04.2012, 22:14
ВеликсДата: Пятница, 10.02.2012, 15:38 | Сообщение # 2
Мастер джэдай
Группа: Модераторы
Сообщений: 3921
Награды: 287
Город: Мухосранск
Репутация: 8404
Замечания: 0%
Статус:
О Господи... Нашел о чем написать в 2012 году...
Quote (Latron)
( число с точкой )

Это называется "дробное число", ок.
Quote (Latron)
Автор урока: Latron

Сомневаюсь, ибо видел похожий текст на беларусском форуме.



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]


Сообщение отредактировал velix - Пятница, 10.02.2012, 15:53
LatronДата: Пятница, 10.02.2012, 15:59 | Сообщение # 3
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (velix)
Сомневаюсь, ибо видел похожий текст на беларусском форуме.

Не сомневайся ибо я не видел беларусского форума.Ты обвиняешь меня во лжи без весомых доказательств.



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Пятница, 10.02.2012, 16:00
ВеликсДата: Пятница, 10.02.2012, 16:03 | Сообщение # 4
Мастер джэдай
Группа: Модераторы
Сообщений: 3921
Награды: 287
Город: Мухосранск
Репутация: 8404
Замечания: 0%
Статус:
Quote (Latron)
.Ты обвиняешь меня во лжи без весомых доказательств.

Кто тебя обвинил? Я написал "ЛОЖЬ ТЫ НЕ АФФТАР!11" ?



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
ImperealistДата: Пятница, 10.02.2012, 16:04 | Сообщение # 5
Уверенный в себе
Группа: Продвинутые
Сообщений: 205
Награды: 10
Город: Санкт-Петербург
Репутация: 518
Замечания: 100%
Статус:
Quote (Latron)
Тег bool - ( булевое значение ), такая переменная может хранить в себе только два значения 0 или 1 ( true/false ),
создана для экономии памяти,булевое знчение применяется когда нужно хранить только 2 значение, например
в записная книжка или права на Т.С. они либо есть,либо их нет тут пригодится bool.
Пример объявления: new bool: название = значение; ( значение не указано,по умолчанию она будет равна 0 ( false ) ) либо
new bool: название = значение; значение будет равно 1 ( true )

По словам тонисикса, в павн этот тег бесполезен, так как от того что он есть, объем памяти не сокращается, а остается тем же, поэтому смысла в использовании bool'евых переменных - нету!



Soviet Connection - open!


LatronДата: Пятница, 10.02.2012, 16:08 | Сообщение # 6
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Imperealist)
По словам тонисикса, в павн этот тег бесполезен, так как от того что он есть, объем памяти не сокращается, а остается тем же, поэтому смысла в использовании bool'евых переменных - нету!

щас ухожу ,вечером приду напишу про это.



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
RockmanДата: Пятница, 10.02.2012, 16:30 | Сообщение # 7
Постоялец
Группа: Продвинутые
Сообщений: 430
Награды: 4
Город: Нижний Новгород
Репутация: 474
Замечания: 0%
Статус:
Quote (Latron)
цлым


Quote (Latron)
new name[5] = "text";

Хорошо было бы разъяснить новичками, почему массив размерности 5, а строка длины 4.

Code
Спецификатор %d


Есть ведь еще спецификатор %i для целых чисел, в чем разница ?
И хотя бы пару слов про диапазон значений.

Добавлено (10.02.2012, 16:30)
---------------------------------------------
А вообще молодец, хоть какие то шансы есть, что новички это прочитают и будут знать чуточку больше.

LatronДата: Пятница, 10.02.2012, 17:02 | Сообщение # 8
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Rockman, всё пояснил)))
в павн вообще один тип это ячейка - 4 байта, ячейка равна 4 байтам, или 32 битам, что соответствует данному диапазаону (диапазон от -2147483648 до 2147483647)
она является, как универсальный тип.

%d и %i одно и тоже. целое десятичное число
это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer .
И новичкам врятле надо забивать этим голову...



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Пятница, 10.02.2012, 17:02
AlcoholikДата: Пятница, 10.02.2012, 17:23 | Сообщение # 9
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
Quote (Rockman)
Хорошо было бы разъяснить новичками, почему массив размерности 5, а строка длины 4.

Мне объясните.



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
ВеликсДата: Пятница, 10.02.2012, 17:28 | Сообщение # 10
Мастер джэдай
Группа: Модераторы
Сообщений: 3921
Награды: 287
Город: Мухосранск
Репутация: 8404
Замечания: 0%
Статус:
Quote (RoACh)
Мне объясните.

завершающий символ \0 .



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
LatronДата: Пятница, 10.02.2012, 17:33 | Сообщение # 11
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Специфичность представления строковых переменных в си-подобных языках состоит в том, что для определения строки в памяти отводится на 1 байт больше, чем требуется для самого текста. Этот самый байт отводится для нулевого символа, который определеяет конец строки т.е заполняется байтом, в двоичной записи которой одни нули.


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Пятница, 10.02.2012, 17:37
AlcoholikДата: Пятница, 10.02.2012, 17:38 | Сообщение # 12
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
для него надо выделять память?...

Добавлено (10.02.2012, 17:35)
---------------------------------------------
Странно ну ладно, спасибо)

Добавлено (10.02.2012, 17:38)
---------------------------------------------
Да, всё верно, извиняюсь тогда)


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
RockmanДата: Пятница, 10.02.2012, 18:17 | Сообщение # 13
Постоялец
Группа: Продвинутые
Сообщений: 430
Награды: 4
Город: Нижний Новгород
Репутация: 474
Замечания: 0%
Статус:
Quote (Latron)
%d и %i одно и тоже. целое десятичное число
это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer .
И новичкам врятле надо забивать этим голову...


Прочитав, твой урок, они скачают какой нибудь мод и увидят там %i, и будут думать, что либо ты не договорил, либо скриптер ошибся.

LatronДата: Пятница, 10.02.2012, 18:40 | Сообщение # 14
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Rockman)
Quote (Latron)
%d и %i одно и тоже. целое десятичное число
это как синоним для %i так как d - decimal что в переводе с английского - десятичное а i integer .
И новичкам врятле надо забивать этим голову...

Но если прочитают это,врятле,только если совсем тупые crazy

Добавлено (10.02.2012, 18:56)
---------------------------------------------
Quote (Latron)
Спецификатор %d - ( вывод целочисленной перменной). еще может быть %i - тоже самое что и %d.

как ты и хотел )))



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Пятница, 10.02.2012, 18:57
LatronДата: Пятница, 10.02.2012, 19:02 | Сообщение # 15
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Imperealist, ну по сути он прав.
это тег,одна из специфических возможностей PAWN.
можно создать свой тег,например, new teg: name; и этого абсолютно ничего не изменить,кроме как вызовет ошибку при компиляции скрипта.
А так bool удобен ,как коментарий что бы быстро понять что переменная использует всего два значения...



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Пятница, 10.02.2012, 19:05
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [ Lesson ] Переменная
Страница 1 из 3123»
Поиск:





 

Продавай и найди клиентов у нас - тривес топ 111.

 


 
Хостинг от uCoz SAMP-RUS.COM