Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane znaki operacji: + dla operacji dodawania, - dla operacji odejmowania i operacji negacji, * dla operacji mnożenia, / dla operacji dzielenia, div dla operacji dzielenia całkowitego w języku Object Pascal, \ dla operacji dzielenia całkowitego w języku Visual Basic, % dla operacji dzielenia modulo w językach C/C++ i Java, mod dla operacji dzielenia modulo w języku Object Pascal, Mod dla operacji dzielenia modulo w języku Visual Basic.NET. Operacja dzielenia / może mieć w językach programowania różną interpretację. W językach C/C++ i Java operacja dzielenia / liczb całkowitych daje w wyniku iloraz całkowity. W językach Object Pascal i Visual Basic operacja dzielenia / liczb całkowitych daje w wyniku liczbę rzeczywistą, która przekształca się do liczby całkowitej według reguł zaokrąglenia. Przykładowo, dzielenie 17 / 3 daje w wyniku: 5 w językach C/C++, Java, 6 w językach Object Pascal, Visual Basic. Aby w języku Visual Basic otrzymać w wyniku iloraz całkowity należy wykorzystać drugi wariant znaku dzielenia - znak \. Przykładowo, dzielenie w języku Visual Basic 17 \ 3 daje w wyniku 5. Do obliczenia reszty z dzielenia liczb całkowitych są wykorzystywane: - operator % w językach C/C++ i Java, - operator mod w języku Object Pascal, - operator Mod w języku Visual Basic.NET. w językach C++ i Java: int x=17, y=3, w; w=x%y; //wynik: 2
w języku Visual Basic.NET: Dim x As Integer = 17 Dim y As Integer = 3 Dim w As Integer w = x Mod y wynik: 2 W językach C/C++ i Java są specjalne operatory inkrementacji i dekrementacji o jeden: - operator dodawania 1 - operator inkrementacji ++, - operator odejmowania 1 - operator dekrementacji --. Operatory inkrementacji i dekrementacji mogą być zapisane przed nazwą zmiennej, na przykład ++x, --y lub poza nazwą zmiennej, na przykład x++, y--. Operator "++" lub "--" przed nazwą zmiennej (na przykład, ++x, --y ) nazywamy operatorem przedrostkowym, a operator "++" lub "--" poza nazwą zmiennej (na przykład, x++, y-- ) nazywamy operatorem przyrostkowym. W przypadku operatora przedrostkowego (tj. w wyrażeniu ++x, --y ) wartość zmiennej jest wykorzystywana po inkrementacji lub dekrementacji, a w przypadku operatora przyrostkowego (tj. w wyrażeniu x++, y-- ) przed inkrementacją lub dekrementacją. int x=17, y=3, w; w=(x++)*y;//wartość x jest wykorzystywana przed inkrementacją //w=51 w=(y--)+5;//wartość y jest wykorzystywana przed dekrementacją //w=8 w=(++x)*y;//wartość x jest wykorzystywana po inkrementacji //w=54 w=(--y)+5;//wartość y jest wykorzystywana po dekrementacji //w=7 W językach C/C++ i Java można połączyć bazową operację arytmetyczną z operacją przypisania wartości. Możliwe są następujące operacje: += - przypisanie z sumowaniem, -= - przypisanie z odejmowaniem, *= - przypisanie z mnożeniem, /= - przypisanie z dzieleniem, %= - przypisanie z dzieleniem modulo.
W języku Visual Basic.NET jest operator potęgowania ^, którego nie ma w innych językach. Na przykład: Dim x As Integer = 7 Dim y As Integer = 2 Dim w As Double w = x^y 'wynik: w=49 Wyrażenia jako konstrukcji językowe mogą zawierać stałe, zmienne oraz wywołania podprogramów zwracających wartość (tj. funkcji). Jeżeli argumenty operacji mają różne typy, to kompilator wykonuję tzw. niejawne przekształcenie typów według ścisłych reguł. Informacja o niejawnym przekształceniu typów znajduje się w opisie języka programowania. 2. Operacje porównania W operacjach porównania wartości mają zastosowanie operatory relacyjne. Wynikiem działania operatora relacyjnego jest wartość logiczna, tj. "prawda" lub "fałsz". Operatory relacyjne języków C++, Java: == - operator równości,!= - operator nierówności, < - operator mniej, > - operator więcej, <= - operator nie więcej, >= - operator nie mniej. Operatory relacyjne języków Object Pascal i VB.NET: = - operator równości, <> - operator nierówności, < - operator mniej, > - operator więcej, <= - operator nie więcej, >= - operator nie mniej.
Programowanie wyrażeń 3. Operacje logiczne Wynikiem operacji logicznej jest wartość prawda / fałsz. Znaki operacji logicznych języka C++: && - znak operacji mnożenia logicznego, - znak operacji sumowania logicznego,! - znak negacji logicznej. int x; bool w,f; w =!f && ((x==0) (x>10)); W języku Visual Basic.NET nie ma znaków dla operacji logicznych. Wartość typu danych Boolean jest przedstawiona wartością ( 1 lub 0 ) młodszego bita. Dlatego operacje logiczne And, Or, Xor, Not są ekwiwalentne operacjom bitowym And, Or, Xor, Not. Dim x, y As Integer Dim w, f As Boolean w = Not f And ((x=0) Xor (x>10)) 4. Operacje bitowe Wynikiem operacji bitowej jest binarny kod powstający po wykonaniu operacji między odpowiednimi bitami argumentów operacji. Wynik operacji bitowej może być interpretowany jako wynik operacji logicznej, ponieważ dla zmiennych całkowitych niezerowa wartość oznacza prawda, a zerowa wartość - fałsz. Do operacji bitowych należą też operacje przesunięć bitowych. Operacje bitowe języków C++ i Java: & - znak operacji mnożenia logicznego bitowego, - znak operacji sumowania logicznego bitowego, ^ - znak operacji sumy symetrycznej bitowej, ~ - znak negacji logicznej bitowej, << - znak przesunięcia bitowego w lewo, tj. w stronę starszych bitów, >> - znak przesunięcia bitowego w prawo, tj. w stronę młodszych bitów.
W języku Java do tych operacji jest dołączane: >>> - przesunięcie logiczne w prawo, >>>= - przypisanie z przesunięciem logicznym w prawo (w kierunku młodszych cyfr). int x; bool w,f; x <<= 4; w =!f && ((x==0) (x>10)); W językach C/C++ i Java można połączyć bazową operację bitową z operacją przypisania wartości. Możliwe są następujące operacje: &= - przypisanie z koniunkcją bitową (iloczynem bitowym), = - przypisanie z alternatywą bitową (sumą bitową), ^= - przypisanie z różnicą symetryczną bitową. W językach C/C++ i Java można połączyć bazową operację przesunięcia bitowego z operacją przypisania wartości. Możliwe są następujące operacje: <<= - przypisanie z przesunięciem w lewo ( w kierunku starszych cyfr), >>= - przypisanie z przesunięciem arytmetycznym w prawo. Znaki operacji bitowych języka Visual Basic.NET: And - znak operacji mnożenia logicznego bitowego, Or - znak operacji sumowania logicznego bitowego, Xor - znak operacji sumy symetrycznej bitowej, Not - znak negacji logicznej bitowej, << - znak przesunięcia bitowego w lewo, tj. w stronę starszych bitów, >> - znak przesunięcia bitowego w prawo, tj. w stronę młodszych bitów. Dim x, y As Integer Dim w, f As Boolean w = Not f And ((x=0) Xor (x>10)) y = Not x y <<= 4 Wartość typu danych Boolean jest przedstawiona wartością ( 1 lub 0 ) młodszego bita. Dlatego operacje bitowe And, Or, Xor, Not są ekwiwalentne operacjom logicznym.