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

 



 
        
[SA-MP] Hosted Tab (172)
DieSeL 23.02.2020 14:24
[Хостинг] React Labs (4)
DieSeL 31.12.2019 14:23
 





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





Последние Файлы 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 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: 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
Мастер джэдай
Группа: Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 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
Мастер джэдай
Группа: Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 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
Группа: Администратор
Сообщений: 8295
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
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
Мастер джэдай
Группа: Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 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
Группа: Администратор
Сообщений: 8295
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
для него надо выделять память?...

Добавлено (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 из 3
  • 1
  • 2
  • 3
  • »
Поиск:





 

Чистка от пыли Macbook

 


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