Operatory

Operatory stanowią bardzo ważny element składni każdego języka programowania, dlatego też zostały zaimplementowane w MQL4. Charakterystyczne dla operatorów jest to, że dzięki nim możemy sterować wykonywaniem się poszczególnych części kodu programu. Przykładowo wykorzystując operator for możemy przeanalizować każdy słupek cenowy na wykresie, dokładając do tego operator if możemy pominąć słupki cenowe o określonych wartościach lub z określonego zakresu czasowego.

 

Operatory mogą być proste, jednowyrażeniowe (np. break) lub złożone (np. if, for), dlatego czasami mogą być zapisywane w pojedynczej linii jeden operator lub dwa operatory, a czasami w wielu liniach (złożony operator), dlatego w celu wyróżnienia bloków wykonywalnych operacji czy bloku wykonania się poszczególnych operatorów stosuje się na końcu znak średnika (;). Operatory mogę być też zagnieżdżane, co oznacza, że jeden operator może znajdować się w ciele wykonywalnym innego operatora.

Przykład:

if ( Month() == 12 ) { // ciało pierwszego operatora if

    if ( Day () == 31 ) Print ( "Happy New Year!"); // ciało drugiego

oprtatora if

Operatory proste

Każde wyrażenie, ciąg składni języka MQL4 zakończony średnikiem (;) jest operatorem. Poniżej kilka przykładów operatorów wyrażeń:

Przykład:

Operator przypisania:
identyfikator = wyrażenie;
x = 3;
y = x = 3 // błąd, ponieważ operator przypisania może być użyty tylko raz i zakończony średnikiem.
Operator wywołania funkcji:
Nazwa_Funkcji (argument1 ,..., argumentN);
FileClose (plik);

 

Operatory złożone

Operatory złożone mogą zawierać w ciele wykonywalnym programu inne instrukcje obliczeniowe lub inne operatory, dlatego konieczne jest wyróżnienie danego bloku wykonywalnego programu. Proste bloki obliczeniowe musimy zakończyć średnikiem (;) natomiast bardziej złożone bloki obliczeniowe zamykamy wewnątrz nawiasów klamrowych ({…}). W przypadku zamykania bloków programu w nawiasach klamrowych nie jest konieczne zakończenie takiego bloku dodatkowo średnikiem (;) ponieważ w tym przypadku to zamykający nawias klamrowy (}) stanowi informacje dla kompilatora o zakończeniu bloku instrukcji.

Przykład:

if ( cena_close == 1.1234 )
{
Print ( "cena zamknięcia równa jest =", Close[0] );
return;
}

Operator break

Operator break możemy stosować tylko w ciele innego operatora, czyli możemy go tylko zagnieżdżać w innych operatorach. Typowym zastosowaniem operatora break jest przerwanie działania pętli obliczeniowej przy wystąpieniu określonych warunków, czyli w połączeniu z funkcją if tak jak w poniższym przykładzie.

Przykład:

// Poszukiwanie wystąpienia wartości 0
for ( i=0; i < array_size; i++ )
{
if ( tablica[i] == 0) break;
}

Operator continue

Operator continue jest bardzo podobny do operatora break i też można go stosować tylko wewnątrz ciała innych operatorów. Typowe zastosowanie to pominięcie niektórych obliczeń wykonywanych w pętli z wykorzystaniem operatora if. Operator continue wyróżnia to, że wszystkie operacje, które są umieszczone po wywołaniu operatora nie będą wykonywane w danej iteracji pętli, natomiast kolejne iteracje pętli są wykonywane.

 

Przykład:

// Funkcja sumuje wszystkie niezerowe elementy tablicy
int Nazwa_Funkcji( int tablica[] )
{
int rozmiar_tablicy = ArraySize(tablica);
int suma = 0;
for (int i=0; i < rozmiar_tablicy ; i++)
{
if ( tablica[i] == 0) continue;
suma += tablica[i];
)
return(suma);
)

Operator return

Operator return kończy wykonywanie bieżących czynności i zwraca sterowanie do programu wywołującego. Operator return stosuje się do zakończenia działania i przekazania wyniku operacji przez daną funkcję, czyli może być stosowany tylko, jako operator zagnieżdżony w ciele innych operatorów zamkniętych nawiasami klamrowymi. Należy zaznaczyć, że operator return stosuje się też do funkcji specjalnych start(), init(), deinit() wówczas kończy on działanie danej funkcji specjalnej, czyli dokładnie kończy działanie EA, wskaźnika lub skryptu.

Przykład:

int ObliczSume( int x, int y )
{
return (x + y);
}

W przypadku, gdy wartością zawracaną przez funkcje ma być typ void (typ pusty) nie możemy stosować operatora return. Ponieważ stosując void deklarujemy, że funkcja nie będzie zwracała żadnych wartości. W niektórych językach programowania funkcja, która nie zwraca żadnej wartości nazywana jest procedurą.

Przykład:

void Komunitak()
{
Print( "Witaj!" );
}

Operator if-else

Operator warunkowy if służy do sprawdzenia spełnienia warunku np. czy dwie zmienne są sobie równe lub większe, mniejsze. Wartością zwracaną przez operator jest true, wówczas wykonywane są instrukcje umieszczone w bloku operatora if zakończonego średnikiem dla prostych operatorów lub nawiasami klamrowymi dla zagnieżdżonych operatorów, ciągów operacji, albo zwraca wartość false, wówczas nie są wykonywane operacje umieszczone w bloku operatora if. Operator if posiada dodatkowy parametr else, który może, ale nie musi być wykorzystywany. Operator else wykonywany jest wówczas, gdy nie jest spełniony warunek w if, czyli jeśli if zwróci false to wywoływane jest else.

Przykład:

if ( a == b )
Print(„a jest równe b”);
else
Print(a nie jest równe b”);

Bardzo przydatną właściwością operatora if-else jest możliwość zagnieżdżania tych operatorów wewnątrz siebie, co daje nam możliwość sprawdzania wielu warunków jednocześnie w jednym zamkniętym bloku.

Przykłady różnych możliwości wywołania operatora if-else przedstawiono poniżej.

Przykład:

// Sprawdzenie czy zmienna x jest większa od 1
if ( x > 1)

// Sprawdzenie czy zmienna y jest równa 2 wówczas z przyjmuje wartość 5 w przeciwnym przypadku z będzie równe 6
if ( y == 2 ) z = 5;
else z = 6;

// Zagnieżdżenie dwóch operatorów if
if ( x > l)
{
if ( y == 2 ) z = 5;
}
else z = 6;

// Zagnieżdżone operacje w operatorze if

if (x == ‘’)
{
y = 1;
}

if (x == ‘b’)
{
y = 2;
z = 3;
}
if (x == ‘c’)
{
y = 4;
}
else Print ( "Error");

// Zagnieżdzone operatory if-eles
if (x == 1)
{
y = 1;
}
else if (x == 2)
{
y = 2;
}
else if (x == 3)
{
y = 3;
}
else
{
y = 4;
}

// Zagnieżdzone operatory if-eles (uproszczona składnia)
if (x == 1)
y = 1;
else if (x == 2)
y = 2;
else if (x == 3)
y = 3;
else
y = 4;

// Zagnieżdzone operatory if-eles (inny zapis składni, to samo działanie)
if (x == 1) y = 1;
else if (x == 2) y = 2;
else if (x == 3) y = 3;
else y = 4;

Operator switch

Operator warunkowy switch służy do sprawdzenia zmiennej przekazywanej, jako parametr i wywołania określonych operatorów, obliczeń występujących po znaku dwukropka (:). Każdy wariant wywołania odpowiadający zmiennej przekazywanej w parametrze może przyjmować wartość typu integer, czyli jak wiemy z punktu omawiającego typy zmiennych może być też wartością boolean, datetime, color czy char w kodzie ASCII, nie może natomiast przekazywać, jako parametr obliczeń lub wywołania funkcji. Można powiedzieć, że operator switch jest szczególnym przypadkiem operatorów warunkowych if-else, przy czym został tak pomyślany, aby uprościć i przyspieszyć wykonywania operacji warunkowych.

Przykład:

switch (parametr)
{
case 1: operatory;
case 2: operatory;
...
default: operatory;
}

Operator switch, który jak widać po składni jest funkcją pobierającą jeden parametr typu integer i niezwracającą żadnej wartości (void). Działanie operatora polega na sprawdzaniu, porównaniu poszczególnych wartości za słowem case z przekazywaną wartością, jako parametr. Jeśli dana wartość odpowiada przekazanemu parametrowi to zostają wykonane instrukcje za dwukropkiem (:). Instrukcje za dwukropkiem mogą być to proste lub złożone bloki programu, czyli oddzielone średnikiem (;) lub w nawiasach klamrowych ({}). Jeśli po wystąpieniu danego wariantu nie chcemy, aby były sprawdzane i wykonywane kolejne case możemy użyć operatora break, który jak wiemy powoduje przerwanie działania operatora, w którym został zagnieżdżony, czyli w tym przypadku kończy działania switch.

Opcjonalnie można stosować wartość default umieszczoną na końcu wszystkich warunków case co oznacza, że jeśli przekazany parametr nie odpowiada żadnej z wartości case to zostaną wówczas wywołane operacje za słowem default.

Możliwe jest też stosowanie kilku tych samych wartości za słowem case, czyli wielokrotne spełnienie warunku i wywołanie bloku instrukcji. Co prawda jest to dopuszczalne, ale w większości przypadków nie ma potrzeby komplikowania czytelności kodu programu przez wielokrotne wywołanie case.

Przykład:

switch(x)
{
case 'A':
Print("x ma wartość znaku ASCII A, wychodzimy stąd");
break; // kończy dalsze wykonywanie switch
case 'B': // jeśli x równe jest B to nic nie rób
case 'C':
Print ( "x równe jest C");
break;
default:
Print ( "x nie jest równe A, B lub C);
break; // break nie jest obowiązkowe ponieważ switch nie ma dalszych
instrukcji do wykonania
}

Operator cykliczny while

Operator cykliczny while, czyli po prostu pętla while jest tak zwaną pętlą nieskończoną, co oznacza, że operacje umieszczone w ciele while wykonywane będą tak długo jak spełniony będzie warunek przekazywany, jako parametr. Należy zauważyć, że jeśli podczas wywołania operatora nie będzie spełniony warunek to ciało funkcji ograniczone nawiasami klamrowymi nie zostanie wykonane, natomiast, jeśli warunek zostanie spełniony to ciało funkcji będzie wykonywane w pętli do czasu, gdy wynik operacji warunkowej będzie nie prawdą (false). Bardzo ważne jest, aby w bloku wykonywalnym operatora while zadbać o modyfikację i ustawienie warunku zakończenia wykonywania obliczeń, ponieważ może spowodować to wykonywanie się pętli programu w nieskończoność, czyli zawieszenie działania dalszej części programu.

Przykład:

// Pętla while wykonuje się 99 razy (n=1)
while( n<100 )
{
y = y + (y * x);
n++;// jeśli nie umieścimy operacji inkramentacji zmiennej n to spowodujemy wykonywanie się pętli w nieskończoność
}

// nieskończona pętla while, trzeba użyć operatora break while()
{
y = y + (y * x);
n++;
if(n==99) break;
}

Operator cykliczny for

Operator cykliczny for, czyli po prostu pętla for wykonuje cyklicznie operacje umieszczone wewnątrz bloku pętli for ograniczonego średnikiem (;) lub nawiasami klamrowymi ({}). Operacje wykonują się tyle razy ile razy spełniony jest warunek przekazywany, jako drugi parametr. Wywołując pętle for przekazujemy trzy parametry, pierwszy to inicjalizacja zmiennych wykonywany w momencie wywołania operatora for, drugi to warunek, który jest sprawdzany cyklicznie w pętli oraz trzeci parametr, który modyfikuje zmienne zainicjowane w pierwszym parametrze. Zarówno w parametrze pierwszym jak i trzecim można umieszczać więcej niż jedną zmienną, natomiast drugi parametr to instrukcja warunkowa podobnie jak w pętli while. Poszczególne parametry oddzielone są średnikami (;), natomiast zmienne w parametrze jeden i parametrze 3 oddzielone są przecinkami (,);

Przykład:

for (parametr1; parametr2; parametr3)
operator;

Poniżej kilka przykładów użycia pętli for.

Przykład:

// Pętla for wykonuje się 7 razy, parametr x przyjmuje wartości od 1 do 7
for(x=1;x<=7;x++) Print(MathPower(x,2));

// Pętla for wykonuje się w nieskończoność, trzeba użyć operatora break

for(;;)
{
Print(MathPower(x,2));
x++;
if(x>10) break;
}

// Pętla for może deklarować i inicjować więcej niż jedną zmienną
for(int i=0, int j=n-l, int k=100; i<n ; i++, j--, k=i-10)
{
a[i] = a[j];
Print( “Wartość k wynosi = ”,k );
}

 

Operatory mogą być proste, jednowyrażeniowe (np. break) lub złożone (np. if, for), dlatego czasami mogą być zapisywane w pojedynczej linii jeden operator lub dwa operatory, a czasami w wielu liniach (złożony operator), dlatego w celu wyróżnienia bloków wykonywalnych operacji czy bloku wykonania się poszczególnych operatorów stosuje się na końcu znak średnika (;). Operatory mogę być też zagnieżdżane, co oznacza, że jeden operator może znajdować się w ciele wykonywalnym innego operatora.

Przykład:

if ( Month() == 12 ) { // ciało pierwszego operatora if

    if ( Day () == 31 ) Print ( "Happy New Year!"); // ciało drugiego

oprtatora if

Operatory proste

Każde wyrażenie, ciąg składni języka MQL4 zakończony średnikiem (;) jest operatorem. Poniżej kilka przykładów operatorów wyrażeń:

Przykład:

Operator przypisania:
identyfikator = wyrażenie;
x = 3;
y = x = 3 // błąd, ponieważ operator przypisania może być użyty tylko raz i zakończony średnikiem.
Operator wywołania funkcji:
Nazwa_Funkcji (argument1 ,..., argumentN);
FileClose (plik);

 

Operatory złożone

Operatory złożone mogą zawierać w ciele wykonywalnym programu inne instrukcje obliczeniowe lub inne operatory, dlatego konieczne jest wyróżnienie danego bloku wykonywalnego programu. Proste bloki obliczeniowe musimy zakończyć średnikiem (;) natomiast bardziej złożone bloki obliczeniowe zamykamy wewnątrz nawiasów klamrowych ({…}). W przypadku zamykania bloków programu w nawiasach klamrowych nie jest konieczne zakończenie takiego bloku dodatkowo średnikiem (;) ponieważ w tym przypadku to zamykający nawias klamrowy (}) stanowi informacje dla kompilatora o zakończeniu bloku instrukcji.

Przykład:

if ( cena_close == 1.1234 )
{
Print ( "cena zamknięcia równa jest =", Close[0] );
return;
}

Operator break

Operator break możemy stosować tylko w ciele innego operatora, czyli możemy go tylko zagnieżdżać w innych operatorach. Typowym zastosowaniem operatora break jest przerwanie działania pętli obliczeniowej przy wystąpieniu określonych warunków, czyli w połączeniu z funkcją if tak jak w poniższym przykładzie.

Przykład:

// Poszukiwanie wystąpienia wartości 0
for ( i=0; i < array_size; i++ )
{
if ( tablica[i] == 0) break;
}

Operator continue

Operator continue jest bardzo podobny do operatora break i też można go stosować tylko wewnątrz ciała innych operatorów. Typowe zastosowanie to pominięcie niektórych obliczeń wykonywanych w pętli z wykorzystaniem operatora if. Operator continue wyróżnia to, że wszystkie operacje, które są umieszczone po wywołaniu operatora nie będą wykonywane w danej iteracji pętli, natomiast kolejne iteracje pętli są wykonywane.

 

Przykład:

// Funkcja sumuje wszystkie niezerowe elementy tablicy
int Nazwa_Funkcji( int tablica[] )
{
int rozmiar_tablicy = ArraySize(tablica);
int suma = 0;
for (int i=0; i < rozmiar_tablicy ; i++)
{
if ( tablica[i] == 0) continue;
suma += tablica[i];
)
return(suma);
)

Operator return

Operator return kończy wykonywanie bieżących czynności i zwraca sterowanie do programu wywołującego. Operator return stosuje się do zakończenia działania i przekazania wyniku operacji przez daną funkcję, czyli może być stosowany tylko, jako operator zagnieżdżony w ciele innych operatorów zamkniętych nawiasami klamrowymi. Należy zaznaczyć, że operator return stosuje się też do funkcji specjalnych start(), init(), deinit() wówczas kończy on działanie danej funkcji specjalnej, czyli dokładnie kończy działanie EA, wskaźnika lub skryptu.

Przykład:

int ObliczSume( int x, int y )
{
return (x + y);
}

W przypadku, gdy wartością zawracaną przez funkcje ma być typ void (typ pusty) nie możemy stosować operatora return. Ponieważ stosując void deklarujemy, że funkcja nie będzie zwracała żadnych wartości. W niektórych językach programowania funkcja, która nie zwraca żadnej wartości nazywana jest procedurą.

Przykład:

void Komunitak()
{
Print( "Witaj!" );
}

Operator if-else

Operator warunkowy if służy do sprawdzenia spełnienia warunku np. czy dwie zmienne są sobie równe lub większe, mniejsze. Wartością zwracaną przez operator jest true, wówczas wykonywane są instrukcje umieszczone w bloku operatora if zakończonego średnikiem dla prostych operatorów lub nawiasami klamrowymi dla zagnieżdżonych operatorów, ciągów operacji, albo zwraca wartość false, wówczas nie są wykonywane operacje umieszczone w bloku operatora if. Operator if posiada dodatkowy parametr else, który może, ale nie musi być wykorzystywany. Operator else wykonywany jest wówczas, gdy nie jest spełniony warunek w if, czyli jeśli if zwróci false to wywoływane jest else.

Przykład:

if ( a == b )
Print(„a jest równe b”);
else
Print(a nie jest równe b”);

Bardzo przydatną właściwością operatora if-else jest możliwość zagnieżdżania tych operatorów wewnątrz siebie, co daje nam możliwość sprawdzania wielu warunków jednocześnie w jednym zamkniętym bloku.

Przykłady różnych możliwości wywołania operatora if-else przedstawiono poniżej.

Przykład:

// Sprawdzenie czy zmienna x jest większa od 1
if ( x > 1)

// Sprawdzenie czy zmienna y jest równa 2 wówczas z przyjmuje wartość 5 w przeciwnym przypadku z będzie równe 6
if ( y == 2 ) z = 5;
else z = 6;

// Zagnieżdżenie dwóch operatorów if
if ( x > l)
{
if ( y == 2 ) z = 5;
}
else z = 6;

// Zagnieżdżone operacje w operatorze if

if (x == ‘’)
{
y = 1;
}

if (x == ‘b’)
{
y = 2;
z = 3;
}
if (x == ‘c’)
{
y = 4;
}
else Print ( "Error");

// Zagnieżdzone operatory if-eles
if (x == 1)
{
y = 1;
}
else if (x == 2)
{
y = 2;
}
else if (x == 3)
{
y = 3;
}
else
{
y = 4;
}

// Zagnieżdzone operatory if-eles (uproszczona składnia)
if (x == 1)
y = 1;
else if (x == 2)
y = 2;
else if (x == 3)
y = 3;
else
y = 4;

// Zagnieżdzone operatory if-eles (inny zapis składni, to samo działanie)
if (x == 1) y = 1;
else if (x == 2) y = 2;
else if (x == 3) y = 3;
else y = 4;

Operator switch

Operator warunkowy switch służy do sprawdzenia zmiennej przekazywanej, jako parametr i wywołania określonych operatorów, obliczeń występujących po znaku dwukropka (:). Każdy wariant wywołania odpowiadający zmiennej przekazywanej w parametrze może przyjmować wartość typu integer, czyli jak wiemy z punktu omawiającego typy zmiennych może być też wartością boolean, datetime, color czy char w kodzie ASCII, nie może natomiast przekazywać, jako parametr obliczeń lub wywołania funkcji. Można powiedzieć, że operator switch jest szczególnym przypadkiem operatorów warunkowych if-else, przy czym został tak pomyślany, aby uprościć i przyspieszyć wykonywania operacji warunkowych.

Przykład:

switch (parametr)
{
case 1: operatory;
case 2: operatory;
...
default: operatory;
}

Operator switch, który jak widać po składni jest funkcją pobierającą jeden parametr typu integer i niezwracającą żadnej wartości (void). Działanie operatora polega na sprawdzaniu, porównaniu poszczególnych wartości za słowem case z przekazywaną wartością, jako parametr. Jeśli dana wartość odpowiada przekazanemu parametrowi to zostają wykonane instrukcje za dwukropkiem (:). Instrukcje za dwukropkiem mogą być to proste lub złożone bloki programu, czyli oddzielone średnikiem (;) lub w nawiasach klamrowych ({}). Jeśli po wystąpieniu danego wariantu nie chcemy, aby były sprawdzane i wykonywane kolejne case możemy użyć operatora break, który jak wiemy powoduje przerwanie działania operatora, w którym został zagnieżdżony, czyli w tym przypadku kończy działania switch.

Opcjonalnie można stosować wartość default umieszczoną na końcu wszystkich warunków case co oznacza, że jeśli przekazany parametr nie odpowiada żadnej z wartości case to zostaną wówczas wywołane operacje za słowem default.

Możliwe jest też stosowanie kilku tych samych wartości za słowem case, czyli wielokrotne spełnienie warunku i wywołanie bloku instrukcji. Co prawda jest to dopuszczalne, ale w większości przypadków nie ma potrzeby komplikowania czytelności kodu programu przez wielokrotne wywołanie case.

Przykład:

switch(x)
{
case 'A':
Print("x ma wartość znaku ASCII A, wychodzimy stąd");
break; // kończy dalsze wykonywanie switch
case 'B': // jeśli x równe jest B to nic nie rób
case 'C':
Print ( "x równe jest C");
break;
default:
Print ( "x nie jest równe A, B lub C);
break; // break nie jest obowiązkowe ponieważ switch nie ma dalszych
instrukcji do wykonania
}

Operator cykliczny while

Operator cykliczny while, czyli po prostu pętla while jest tak zwaną pętlą nieskończoną, co oznacza, że operacje umieszczone w ciele while wykonywane będą tak długo jak spełniony będzie warunek przekazywany, jako parametr. Należy zauważyć, że jeśli podczas wywołania operatora nie będzie spełniony warunek to ciało funkcji ograniczone nawiasami klamrowymi nie zostanie wykonane, natomiast, jeśli warunek zostanie spełniony to ciało funkcji będzie wykonywane w pętli do czasu, gdy wynik operacji warunkowej będzie nie prawdą (false). Bardzo ważne jest, aby w bloku wykonywalnym operatora while zadbać o modyfikację i ustawienie warunku zakończenia wykonywania obliczeń, ponieważ może spowodować to wykonywanie się pętli programu w nieskończoność, czyli zawieszenie działania dalszej części programu.

Przykład:

// Pętla while wykonuje się 99 razy (n=1)
while( n<100 )
{
y = y + (y * x);
n++;// jeśli nie umieścimy operacji inkramentacji zmiennej n to spowodujemy wykonywanie się pętli w nieskończoność
}

// nieskończona pętla while, trzeba użyć operatora break while()
{
y = y + (y * x);
n++;
if(n==99) break;
}

Operator cykliczny for

Operator cykliczny for, czyli po prostu pętla for wykonuje cyklicznie operacje umieszczone wewnątrz bloku pętli for ograniczonego średnikiem (;) lub nawiasami klamrowymi ({}). Operacje wykonują się tyle razy ile razy spełniony jest warunek przekazywany, jako drugi parametr. Wywołując pętle for przekazujemy trzy parametry, pierwszy to inicjalizacja zmiennych wykonywany w momencie wywołania operatora for, drugi to warunek, który jest sprawdzany cyklicznie w pętli oraz trzeci parametr, który modyfikuje zmienne zainicjowane w pierwszym parametrze. Zarówno w parametrze pierwszym jak i trzecim można umieszczać więcej niż jedną zmienną, natomiast drugi parametr to instrukcja warunkowa podobnie jak w pętli while. Poszczególne parametry oddzielone są średnikami (;), natomiast zmienne w parametrze jeden i parametrze 3 oddzielone są przecinkami (,);

Przykład:

for (parametr1; parametr2; parametr3)
operator;

Poniżej kilka przykładów użycia pętli for.

Przykład:

// Pętla for wykonuje się 7 razy, parametr x przyjmuje wartości od 1 do 7
for(x=1;x<=7;x++) Print(MathPower(x,2));

// Pętla for wykonuje się w nieskończoność, trzeba użyć operatora break

for(;;)
{
Print(MathPower(x,2));
x++;
if(x>10) break;
}

// Pętla for może deklarować i inicjować więcej niż jedną zmienną
for(int i=0, int j=n-l, int k=100; i<n ; i++, j--, k=i-10)
{
a[i] = a[j];
Print( “Wartość k wynosi = ”,k );
}

Niniejszy materiał, przygotowany przez DM BOŚ S.A. ma charakter wyłącznie informacyjny, prezentowany jest w celach edukacyjnych i nie stanowi porady prawnej oraz nie jest rekomendacją osobistą w ramach świadczenia usługi doradztwa inwestycyjnego zgodnie z przepisami prawa. DM BOŚ S.A. nie udziela gwarancji dokładności, aktualności, oraz kompletności niniejszych informacji. Zaleca się przeprowadzenie we własnym zakresie niezależnego przeglądu informacji z niniejszego materiału.

1/1