Π€ΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ
Π’ΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠΌΠΏΠ» Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π·-Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
Π Π°Π·Π±ΠΎΡ
1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ» Π² ΡΡΠ½ΠΊΡΠΈΡ
Π°Π»Π³ Π²Π΅Ρ getReal(ΠΊΠΎΠΌΠΏΠ» z)
Π½Π°Ρ
Π·Π½Π°Ρ := Re(z)
ΠΊΠΎΠ½
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠ» z ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΡΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Re(z) ΠΈ Im(z).
2. ΠΠΎΠ·Π²ΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ» ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ
Π°Π»Π³ ΠΊΠΎΠΌΠΏΠ» fromReal(Π²Π΅Ρ x)
Π½Π°Ρ
ΠΊΠΎΠΌΠΏΠ» result
result := x | ΠΊΠ°ΡΡ Π²Π΅Ρ β ΠΊΠΎΠΌΠΏΠ»
Π·Π½Π°Ρ := result
ΠΊΠΎΠ½
Π·Π½Π°Ρ := result Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠ» β Re = x, Im = 0.
3. ΠΠΎΠ·Π²ΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ»
Π°Π»Π³ makeComplex(Π²Π΅Ρ re, Π²Π΅Ρ im, ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ» result)
Π½Π°Ρ
ΠΊΠΎΠΌΠΏΠ» tmp
tmp := re
result := tmp
ΠΊΠΎΠ½
ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ» result β Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. Caller ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΈΡΠ΅Ρ Π² Π½Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°
Π°Π»Π³ Π²Π΅Ρ getReal(ΠΊΠΎΠΌΠΏΠ» z)
Π½Π°Ρ
Π·Π½Π°Ρ := Re(z)
ΠΊΠΎΠ½
Π°Π»Π³ Π²Π΅Ρ getImag(ΠΊΠΎΠΌΠΏΠ» z)
Π½Π°Ρ
Π·Π½Π°Ρ := Im(z)
ΠΊΠΎΠ½
Π°Π»Π³ ΠΊΠΎΠΌΠΏΠ» fromReal(Π²Π΅Ρ x)
Π½Π°Ρ
ΠΊΠΎΠΌΠΏΠ» result
result := x
Π·Π½Π°Ρ := result
ΠΊΠΎΠ½
Π°Π»Π³ realAndImag(ΠΊΠΎΠΌΠΏΠ» z, ΡΠ΅Π· Π²Π΅Ρ re, ΡΠ΅Π· Π²Π΅Ρ im)
Π½Π°Ρ
re := Re(z)
im := Im(z)
ΠΊΠΎΠ½
Π°Π»Π³ makeComplex(Π²Π΅Ρ re, Π²Π΅Ρ im, ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ» result)
Π½Π°Ρ
ΠΊΠΎΠΌΠΏΠ» tmp
tmp := re
result := tmp
ΠΊΠΎΠ½
Π°Π»Π³
Π½Π°Ρ
ΠΊΠΎΠΌΠΏΠ» a
Π²Π΅Ρ x, re, im
x := 2.5
a := x
Π²ΡΠ²ΠΎΠ΄ "Re(a) = ", getReal(a), Π½Ρ
Π²ΡΠ²ΠΎΠ΄ "Im(a) = ", getImag(a), Π½Ρ
ΠΊΠΎΠΌΠΏΠ» b
b := fromReal(3.0)
Π²ΡΠ²ΠΎΠ΄ "Re(fromReal(3.0)) = ", Re(b), Π½Ρ
Π²ΡΠ²ΠΎΠ΄ "Im(fromReal(3.0)) = ", Im(b), Π½Ρ
realAndImag(a, re, im)
Π²ΡΠ²ΠΎΠ΄ "decompose Re = ", re, Π½Ρ
Π²ΡΠ²ΠΎΠ΄ "decompose Im = ", im, Π½Ρ
ΠΊΠΎΠΌΠΏΠ» c
makeComplex(5.0, 6.0, c)
Π²ΡΠ²ΠΎΠ΄ "ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ» Re = ", Re(c), Π½Ρ
Π²ΡΠ²ΠΎΠ΄ "ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ» Im = ", Im(c), Π½Ρ
ΠΊΠΎΠ½