Literał zespolony

Literał zespolonyliterał reprezentujący w kodzie źródłowym konkretną wartość zespolonego typu danych.

Podstawowe rozwiązania

Literały tego typu występują tylko w tych językach programowania, w których występuje zespolony typ danych jako typ podstawowy. Ponieważ dane zespolone składają się z par liczb: części rzeczywistej i części urojonej, również i literał zespolony musi zostać tak zdefiniowany w składni danego języka, aby para liczb mogła być wyodrębniona i odróżniona od innych jednostek leksykalnych, z których zbudowany jest kod źródłowy oraz prawidłowo zinterpretowana jako wartość zespolona. Nie wszystkie jednak języki programowania, w których występuje typ zespolony, istnieje zapis wprost wartości zespolonej w jednym, spójnym literale, który może zostać wykorzystany w wyrażeniu. Tak jest np. w języku PL/I, w którym można zapisać literał urojony (dodając literę I na końcu liczby), ale nie można zapisać literału zespolonego, gdyż zapis, np. 1.1+2.3I, reprezentuje (poza atrybutem inicjującym w deklaracji) wyrażenie składające się z liczby rzeczywistej FIXED, operatora dodawania i literału urojonego. W innych językach, np. w Fortranie 77, istnieją literały zapisywane wprost w kodzie źródłowym, np. (1.1, 2.3).

Literały zespolone w językach programowania

PL/I

W języku PL/I dane zespolone mogą być typu (zarówno dla danych dziesiętnych DECIMAL, jak i dwójkowych BINARY):

  • COMPLEX FIXED
  • COMPLEX FLOAT.

Powyższe rozróżnienie na dane zmiennopozycyjne jak i stałopozycyjne, skutkuje zarówno różną reprezentacją danej w pamięci operacyjnej jak i sposobem zapisu konkretnych wartości liczbowych. W języku PL/I można specyfikować wartość zespoloną:

  • jako wartość inicjującą w deklaracji zmiennej, w atrybucie INITAL, np. DCL X FIXED COMPLEX INITAL(2.3+7.2I);
  • jako wartość urojoną w wyrażeniach, np. 7.2I;
  • jako podprogram wbudowany zwracający wartość zespoloną: COMPLEX(cz_rzeczywista, cz_urojona), np. COMPLEX(2.3, 7.2); można stosować zapis skrócony CPLX.

Fortran 77

Zapis literału zespolonego ma postać: (cz_rzeczywista, cz_urojona), np. (12, 31), (12.32, 13), (-17, 14.3E-7).

Algol 68

Mathcad

Zapis zgodny z notacją matermatyczną, przy czym oznacznienie części urojonej może być dokonane w zależności od ustawień literą "i" lub literą "j".

Derive

Zapis zgodny z notacją matematyczną, przy czym oznaczenie części urojonej dokonuje się symbolem "î", który może być zastąpiony znakami #i lub uzyskany skrótem klawiaturowym Alt-i.

D

Język D powstał jako obiektowy następca języka C. W składni tego języka wprowadzono literały urojone i zespolone reprezentujące wartości bezpośrednio wpisane w kod źródłowy, dla typów danych, odpowiednio: urojonego i zespolonego. Literał urojony to literał zmiennopozycyjny z dodanym przyrostkiem "i", np. 3.1i. Literał zespolony to literał zmiennopozycyjny i urojony połączone znakiem "+" lub "-", np. 4.2+5.6i.

Zobacz też

Bibliografia