Literał zespolony
Literał zespolony – literał 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
- Jan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Wydawnictwo Naukowe PWN, Warszawa 1986, Seria: Biblioteka Informatyki, ISBN 978-83-01-06146-3
- Ryszard K. Kott, Krzysztof Walczak. Programowanie w języku Fortran 77, Wydawnictwa Naukowo-Techniczne, Warszawa 1991, ISBN 978-83-204-1362-5
- Język D na Wikibooks