68 lines
4.5 KiB
Plaintext
68 lines
4.5 KiB
Plaintext
![]() |
\b;Zmienne
|
|||
|
Zmienna jest jak pude<64>ko, do kt<6B>rego mo<6D>na wk<77>ada<64> r<><72>ne informacje. Warto<74><6F> zmiennej mo<6D>e si<73> zmienia<69> podczas wykonywania programu.
|
|||
|
|
|||
|
Na przyk<79>ad mo<6D>na u<>y<EFBFBD> zmiennej do liczenia jednostek rudy tytanu zebranych i przeniesionych przez transporter do huty. Najpierw nale<6C>y ustali<6C> odpowiedni<6E> nazw<7A> dla zmiennej: nie powinna by<62> ona zbyt d<>uga, ale powinna wyja<6A>nia<69> do czego u<>ywana jest zmienna. Nazwijmy j<> \c;liczTyt\n;. Zmienna ta b<>dzie zawiera<72>a tylko liczby ca<63>kowite, dlatego odpowiednim dla niej typem b<>dzie \c;int\n;. Na pocz<63>tku programu zmienn<6E> trzeba zadeklarowa<77>. Nast<73>pnie mo<6D>na w niej umie<69>ci<63> warto<74><6F> \c;0\n;, zwi<77>kszaj<61>c j<> o \c;1\n; za ka<6B>dym razem, gdy robot podniesie rud<75> tytanu. Zmienna ta b<>dzie zawiera<72> liczb<7A> porcji rudy tytanu zebranych do tej pory przez robota.
|
|||
|
|
|||
|
Aby zadeklarowa<77> zmienn<6E>, nale<6C>y napisa<73>:
|
|||
|
\c;\s; int liczTyt;\n;
|
|||
|
|
|||
|
Aby przypisa<73> jej warto<74><6F> \c;0\n;, nale<6C>y napisa<73>:
|
|||
|
\c;\s; liczTyt = 0;\n;
|
|||
|
|
|||
|
Po zebraniu ka<6B>dej porcji rudy tytanu nale<6C>y napisa<73>:
|
|||
|
\c;\s; liczTyt = liczTyt + 1\n;
|
|||
|
|
|||
|
W wyborze nazwy dla zmiennej jest du<64>o swobody, mo<6D>na j<> nazwa<77> dowolnie, np.: \c;odl\n;, \c;kierunek\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nic_do_zestrzelenia\n;, itd.
|
|||
|
Nazwa zmiennej musi zaczyna<6E> si<73> od litery, po kt<6B>rej mo<6D>e nast<73>powa<77> dowolna kombinacja liter, cyfr i znak<61>w podkre<72>lenia \c;_\n;. Oczywi<77>cie nie mo<6D>na u<>ywa<77> s<><73>w kluczowych j<>zyka CBOT takich jak \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, itd.
|
|||
|
Nale<EFBFBD>y by<62> ostro<72>nym w wyborze nazw przydzielanych zmiennym; pisanie programu mo<6D>e okaza<7A> si<73> bardzo trudne je<6A>li zapomni si<73> nazwy zmiennych lub nie pami<6D>ta do czego one s<>u<EFBFBD>y<EFBFBD>y. Nale<6C>y opracowa<77> w<>asny system nazywania zmiennych i raczej nie u<>ywa<77> nazw podobnych do \c;Bmo45\n;, \c;a\n; czy \c;tgBinX\n;.
|
|||
|
|
|||
|
W powy<77>szym przyk<79>adzie, s<>owo \c;int\n; okre<72>la, <20>e zmienna mo<6D>e zawiera<72> tylko liczby ca<63>kowite, odpowiednie do liczenia obiekt<6B>w. Do mierzenia odleg<65>o<EFBFBD>ci lepiej jest u<>y<EFBFBD> zmiennej, kt<6B>ra mo<6D>e r<>wnie<69> zawiera<72> liczby rzeczywiste z cz<63><7A>ci<63> u<>amkow<6F> (takie jak 3.45 lub 0.034): w tym przypadku odpowiedniejszy jest typ \c;float\n;.
|
|||
|
|
|||
|
Zmienna sk<73>ada si<73> z trzech cz<63><7A>ci:
|
|||
|
1) nazwy
|
|||
|
2) typu informacji przez ni<6E> przechowywanych
|
|||
|
3) zawarto<74>ci, czyli samej informacji
|
|||
|
|
|||
|
\t;nazwa
|
|||
|
Jest niezb<7A>dna do rozr<7A><72>niania zmiennych pomi<6D>dzy sob<6F>.
|
|||
|
|
|||
|
\t;typ
|
|||
|
\l;Typ\u cbot\type; warunkuje rodzaj informacji, jak<61> mo<6D>e zawiera<72> zmienna. Zale<6C>nie od typu, zmienna mo<6D>e zawiera<72> liczby ca<63>kowite, liczby rzeczywiste, <20>a<EFBFBD>cuchy, wsp<73><70>rz<72>dne punktu, informacje o obiekcie, itd.
|
|||
|
Oto lista najcz<63><7A>ciej wyst<73>puj<75>cych typ<79>w zmiennych:
|
|||
|
o \c;\l;int\u cbot\int;\n; dla liczb ca<63>kowitych (12, -500, itd.)
|
|||
|
o \c;\l;float\u cbot\float;\n; dla liczb rzeczywistych (3.14, 0.2, -99.98, itd.)
|
|||
|
o \c;\l;string\u cbot\string;\n; dla <20>a<EFBFBD>cuch<63>w znakowych ("Cze<7A><65>!", "Nie znaleziono obiektu", itd.)
|
|||
|
o \c;\l;point\u cbot\point;\n; dla wsp<73><70>rz<72>dnych x, y, z w przestrzeni
|
|||
|
o \c;\l;object\u cbot\object;\n; dla informacji o obiekcie (robocie, budynku, itd.)
|
|||
|
|
|||
|
\t;zawarto<74><6F>
|
|||
|
Zawarto<EFBFBD>ci<EFBFBD> zmiennej jest informacja, kt<6B>rej rodzaj jest okre<72>lony przez typ. Mo<4D>e si<73> ona zmienia<69> w trakcie dzia<69>ania programu.
|
|||
|
|
|||
|
Po zadeklarowaniu zmiennej nie zawiera ona <20>adnej warto<74>ci. Zanim b<>dzie mo<6D>na jej u<>y<EFBFBD>, trzeba nada<64> jej warto<74><6F>:
|
|||
|
\c;\s; int i, j;
|
|||
|
\s; j = 25; // j przyjmuje warto<74><6F> 25
|
|||
|
\s; j = i; // tak nie mo<6D>na napisa<73>, gdy<64> i nie ma jeszcze <20>adnej warto<74>ci.
|
|||
|
\n;
|
|||
|
Mo<EFBFBD>liwe jest zadeklarowanie zmiennej i przypisanie jej warto<74>ci w tym samym wierszu:
|
|||
|
\c;\s; int liczTyt = 0;
|
|||
|
\n;
|
|||
|
Przy wykonywaniu przypisania warto<74>ci zmiennej przy u<>yciu znaku r<>wno<6E>ci\c;=\n;, warto<74><6F> z prawej strony jest kopiowana do warto<74>ci po lewej stronie. Rozwa<77>my nast<73>puj<75>cy przyk<79>ad:
|
|||
|
\c;\s; int i, j;
|
|||
|
\s; i = 5+2; // i przyjmuje warto<74><6F> 7
|
|||
|
\s; j = i+6; // j przyjmuje warto<74><6F> i plus 6, czyli 13
|
|||
|
\s; i = j; // i przyjmuje warto<74><6F> j, czyli 13
|
|||
|
\n;
|
|||
|
Na ko<6B>cu tego przyk<79>adu obie zmienne \c;i\n; i \c;j\n; zawieraj<61> warto<74><6F> \c;13\n;.
|
|||
|
|
|||
|
Nast<EFBFBD>puj<EFBFBD>ce przypisanie jest niepoprawne, gdy<64> po lewej stronie znaku r<>wno<6E>ci \c;=\n; mo<6D>e wyst<73>powa<77> tylko nazwa zmiennej:
|
|||
|
\c;\s; i+2 = j; // niemo<6D>liwe
|
|||
|
\n;
|
|||
|
Do zamiany zawarto<74>ci dw<64>ch zmiennych konieczne jest u<>ycie trzeciej zmiennej. Oto przyk<79>ad zamieniaj<61>cy zawarto<74><6F> zmiennych \c;a\n; i \c;b\n;:
|
|||
|
\c;\s; int pom;
|
|||
|
\s; pom = a; // pom przyjmuje warto<74><6F> a
|
|||
|
\s; a = b; // zawarto<74><6F> b jest kopiowana do a
|
|||
|
\s; b = pom; // zawarto<74><6F> pom jest kopiowana do b
|
|||
|
\n;
|
|||
|
\t;Zobacz r<>wnie<69>
|
|||
|
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
|