Operator relacji w programowaniu – operator dostępny w określonym języku programowania (a także w innych językach komputerowych), który działając na podanych argumentach, w wyniku zwraca wartość logiczną, określającą spełnienie bądź niespełnienie reprezentowanej przez ten operator relacji zachodzącej między zapodanymi argumentami. Wynikiem działania operatora relacji jest więc wartość reprezentująca zgodnie z zasadami obowiązującymi w składni danego języka programowania jedną z wartości logicznych: prawdę (true) lub fałsz (false).

Relacje w językach programowania W językach programowania dostępne są operatory relacji, które badają następujące relacje: równości nierówności negacji równości nierówności ostrych mniejsze większe nierówności nieostrych mniejsze lub równe większe lub równe przynależności (zawierania) równoważności. Oprócz wyżej wymienionych występują także bardziej złożone konstrukcje umożliwiające między innymi porównanie z wzorcem i inne.

Zapis operatorów relacji Jak wyżej zaznaczono sposób zapisu w kodzie źródłowym operatorów relacji zależny jest od przyjętej w składni danego języka sposobu reprezentacji znakowej operatorów, przy czym stosowane są zasadniczo dwa rozwiązania: zapis za pomocą symboli składających się ze znaku lub znaków innych niż litery, np. <, <= itp. takie rozwiązanie dostępne jest m.in. w języku C, C++, Pascal, Visual Basic i innych; taki zapis zbliżony jest do notacji matematycznej (w dostosowaniu do dostępnego w systemie komputerowym i na klawiaturze zestawu znaków), zapis za pomocą skrótów pochodzących od nazw relacji w języku angielskim, np. GE – greater equal, GT – greater then, NE – not equal itp., takie rozwiązanie wywodzi się i dostępne jest m.in. w języku Fortran; stosowano je także później w niektórych językach, np. ABAP.

Priorytet i stosowanie Operatory relacji stosowane są w kodzie źródłowym na takich samych zasadach jak pozostałe operatory, tj. w wyrażeniach, które mogą być używane np. w przypisaniu, wywołaniu podprogramu jako argument, czy też w konstrukcjach warunkowych określających realizację algorytmu według wybranej ścieżki przebiegu sterowania na podstawie wybranych kryteriów badania. W różnych językach mają różny, określony priorytet w hierarchii wszystkich dostępnych w języku operatorów, decydujący o kolejności wykonywana działań. W wielu językach priorytet ten jest niższy niż operatorów arytmetycznych dzięki czemu zgodnie z oczekiwaniami, najpierw dokonane zostanie wyliczenie rezultatu wyrażeń arytmetycznych stanowiących argumenty dla operatora relacji, a dopiero w następnej kolejności badanie relacji między wyznaczonymi wartościami. Bardziej zróżnicowane natomiast podejście można spotkać w aspekcie priorytetów operatorów relacji w porównaniu do operatorów logicznych), które stosowane są między innymi do budowy złożonych warunków opartych na kilku kryteriach decyzyjnych. W tym przypadki, jeżeli priorytet operatorów relacji jest niższy niż operatorów logicznych, to zdefiniowane przez nie działania wykonane zostaną po operacjach logicznych. Taka kolejność wykonywania dziań w większości typowych przypadków będzie niezgodna z intencją programisty, co wymusza konieczność stosowania nawiasów, tj. umieszczania wyrażeń relacji w nawiasach, a kolejne warunki ujęte w nawiasy pozostają połączone operatorami logicznymi. Tak jest np. w Pascalui innych. W tych językach, w których operatory relacji mają wyższy priorytet niż operatory logiczne budowa warunków złożonych nie wymusza stosowania nawiasów, np. C, C++ i inne. + Przykład warunku złożonego z dwóch relacji Pascal C, C++if (a<b) and (c>d) then begin { instrukcje } end;if(a<b && c>d) { /* instrukcje */

Operatory relacji w językach komputerowych Poniższe zestawienie zawiera dostępne operatory relacji w wybranych językach komputerowych.

+ Operatory relacji w językach komputerowych język komputerowy równości nierówności przynależność inne negacja równości nierówności ostre nierówności nieostre mniejszy większy mniejszy lub równy większy lub równy ABAP =lubEQ <>lubNE <lubLT >lubGT <=lubLE >=lubGE IN CO, CN, CA, NA, CS, NS, CP, NP BYTE-CO, BYTE-CN, BYTE-CA,BYTE-NA, BYTE-CS, BYTE-NS... BETWEEN ... AND ...IS Ada = /= < > <= >= C, C++ == != < > <= >= Pascal = <> < > <= >= in REXX = \= lub ^= (¬=)<>, >< < > <= oraz \> (¬>) >= oraz \< (¬<) ==, <<, >>, <<=, >>=\^=, \== (¬==), \<< (¬<<)\>> (¬>>) VHDL = \= < > <= >= Visual Basic, VBA = <> < > <= >= Like, Is, IsNot

Uwagi

Przypisy

Bibliografia

Kategoria:Konstrukcje programistyczne