Skocz do zawartości
TIVI

2#AMXX - typy zmiennych, operatory, pętle i instrukcja warunkowa.

Promowane odpowiedzi

TIVI    297

Wstęp

Na początku chciałbym tylko zaznaczyć, że to będzie wiedza czysto teoretyczna. Postaram się wyjaśnić jakie są typy zmiennych, operatory, pętle i instrukcja warunkowa, które są wykorzystywane podczas pisania pluginów. Mało kto lubi teorię, większość woli od razu przejść do konkretów jednak jest to podstawa, bez której znajomości nikt nie będzie w stanie pojąć programowania. Słowem wstępu to tyle, zapraszam do czytania jakże obszernego materiału.

 

Poprzednie części:

1#AMXX - AmxModX Studio, kompilacja lokalna.

 

 

Typy zmiennych

Nie będę wymieniał wszystkich typów, bo jest ich po prostu zbyt dużo. Wymienię te główne, które będą używane podczas serii tych poradników. Są to:

1) Integer (INT),

2) Float,

3) Bool,

4) String.

 

Co to jest zmienna? Zmienna jest to pewnego rodzaju struktura, bądź "organizm", który w sobie przechowuje pewną wartość, która wykorzystywana jest podczas działania programu. 

 

1) Integer (INT)  - jest to typ zmiennej, która przechowuje tylko liczby całkowite.

Deklaracja: new nazwa_zmiennej;

Przykład: 

new A = 5; //poprawnie zadeklarowana zmienna
new B = 2.5; //zle zadeklarowana zmienna. INT nie przechowuje liczb zmiennoprzecinkowych
new C = "jacek"; //zle zadeklarowana zmienna. INT nie przechowuje tekstu/lancucha znakow

 

2) Float - zmienna, która potrafi przechowywać liczby zmiennoprzecinkowe.

Deklaracja: new float:nazwa_zmiennej;

Przykład:

new A = 5; //poprawnie zadeklarowana zmienna. Float przechowuje rowniez liczby calkowite
new B = 2.5; //poprawna deklaracja zmiennej z wartoscia zmiennoprzecinkowa
new C = "jacek"; //bledna deklaracja. Float nie przechowuje tekstu

 

3) Bool  - zmienna bool, jest to zmienna logiczna, która przechowuje 2 wartości: true lub false.

Deklaracja: new bool:nazwa_zmiennej;

Przykład:

new bool:IsUserAlive; //tworzy zmienna "IsUserAlive", ktora standardowo ustawiona jest na "false"
new bool:IsUserConnected = true; //tworzy zmienna "IsUserConnected", ktora przyjmuje wartosc "true"

 

4) String - jest to typ zmiennej, który przechowuje znaki/łańcuch ciągów. W deklaracji musimy podać "ilość tych znaków".

Deklaracja: new nazwa_zmiennej[ilość_znaków];

Przykład:

new imie[256] = "jacek"; //tworzy "stringa" imie z wartoscia "jacek"

 

Operatory

Jest kilka rodzai operatorów. Główne to:

1) operatory arytmetyczne,

2) operatory porównania,

3) operatory logiczne.

 

1) Operatory arytmetyczne - nie jest to nic innego jak "działania", które towarzyszą nam w życiu codziennym. Są to podstawowe działania na liczbach. Jeśli ktoś nie rozumie odsyłam tutaj - Arytmetyka - wikipedia.org

Matematyka jak i fizyka to podstawa w dziecinie programowania, dlatego warto się do tych dziecin przyłożyć.

Wyróżniamy następujące operatory arytmetyczne:

 

Dodawanie

suma = skladnik1 + skladnik2;

 

Odejmowanie

roznica = odjemna - odjemnik;

 

Mnożenie

iloczyn = czynnik1 * czynnik2;

 

Dzielenie

iloraz = dzielna / dzielnik;

 

Dzielenie z resztą

iloraz = dzielna % dzielnik;

 

Inkrementacja i dekrementacja

zmienna++; //jest to inkrementacja. Program najpierw zwroci zmienna, a potem zwiekszy jej wartosc o 1
zmienna--; //jest do dekrementacja. Program najpierw zwroci zmienna, a potem zmniejszy jej wartosc o 1

 

Preinkrementacja i predekrementacja

++zmienna; //preinkrementacja - najpierw zwiekszy wartosc zmiennej o 1, nastepnie ja zwroci
--zmienna; //predekrementacja - najpierw zmniejszy wartosc zmiennej o 1, nastepnie ja zwroci

 

2) Operatory porównania - są to operatory jak sama nazwa wskazuje "porównania". Możemy przyrównać dwie zmienne do siebie, bądź sprawdzić czy są one od siebie różne etc.

 

Równość

a == b; //zmienna "a" jest rowna zmiennej "b"

 

Różność

a != b; //zmienna "a" jest rozna od zmiennej "b"

 

Mniejszy lub większy

a > b; //zmienna "a" jest wieksza od zmiennej "b"
a < b; //zmienna "a" jest mniejsza od zmiennej "b"

 

Mniejsze lub równe, większe lub równe

a >= b; //zmienna "a" jest wieksza lub rowna zmiennej "b"
a <= b; //zmienna "a" jest mniejsza lub rowna zmiennej "b"

 

3) Operatory logiczne - są to operatory, które stawiają przed nami pytanie.. Czy zmienna A zmienna B mają być równe 0 wtedy wykonaj kod? Są to operatory, które można rzec mogą nam postawić np. podwójny warunek.

 

OR (lub)

if(a == 5 || b == 5) //jesli "a" jest rowne 5 LUB "b" jest rowne 5 wtedy wykonaj kod. Wystarczy aby jeden z tych warunkow byl prawdziwy, aby wykonal sie kod
{
  //tutaj kod
}

 

AND (i)

if(a == 5 && b == 5) //jesli "a" jest rowne 5 i "b" jest rowne 5 - wykonaj kod. Oba warunki musza byc prawdziwe, aby kod sie wykonal
{
  //tutaj kod
}

 

NOT (negacja)

if(!(a == 5)) //kod wykona sie kiedy "a" bedzie rozne od 5
{
  //tutaj kod
}

 

Instrukcja warunkowa oraz pętle

Ważnym elementem są instrukcje, oraz pętle, które dają znać programowi do kiedy on ma działać i co on ma robić podczas gdy dany warunek jest spełniony. Przejdźmy od razu do rzeczy:

 

if...else

if (a == 5) //jesli "a" jest rowne 5, zmienna "a" zostanie zwiekszona o 1
  a++;
else
  a--; //jesli "a" nie jest rowne 5, zmienna "a" zostanie zmniejszona o 1

 

Zagnieżdżanie if

if(a == 5) //jesli "a" jest rowne 5, to sprawdz nastepny warunek. Jesli nie jest zmniejsz wartosc zmiennej "a" o 1
  if(b > 5) //jesli "a" jest rowne 5 i "b" jest wieksze od 5, to zwieksz "a" o jeden. Jesli nie, zmniejsz "a" o 1
  	a++;
  else
    a--;
else
  a--;

 

Pętla for

for(i=0; i<10; i++) //program bedzie wykonywal dany kod, dopoki wartosc zmiennej "i" bedzie mniejsza od 10
  //tutaj kod

 

Pętla while

while(a < 5) //bedzie wykonywac dany kod dopoki "a" jest mniejsze od 5
  //tutaj kod

 

do...while

do //bedzie wykonywac dany kod, dopoki a jest wieksze od 5
{
  //tutaj kod
}while(a > 5)

 

Podsumowanie

Tym razem postarałem się wyjaśnić wszystkie zagadnienia zawarte w tytule. Nie są to wszystkie rodzaje tych "zmiennych", bądź nie są to wszystkie funkcje etc. Nie chcę zbyt dużo narzucać na głowę za jednym razem. Wszystko staram się tłumaczyć tak, aby każdy zrozumiał. Nie chcę zbytnio używać słownictwa "panującego" w gwarze programistów, gdyż byłby on po prostu nieczytelny dla niektórych odbiorców. W następnej części (o ile owa się pojawi) omówimy podstawowy kod, który pojawia się w studio AmxModX, oraz napiszemy pierwszy prosty plugin. Mam nadzieje, że komuś przyda się to co dziś przekazałem.

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×