ააგეთ კლასი Complex (კომპლექსური რიცხვი) რომელსაც აქვს 2 private ველი,
სახელებით real და imaginary. ასევე შესაბამისი get/set მეთოდები.
დაწერეთ პროგრამა, რომელიც ArrayList-ში შეინახავს კომპლექსურ რიცხვებს,
დაბეჭდავს ამ ArrayList-ს, დაალაგებს მას პირველი კრიტერიუმით,
დაბეჭდავს, შემდეგ დაალაგებს სხვა კრიტერიუმით და ისევ დაბეჭდავს.
ბეჭდვისას კომპლექსურ რიცხვებს ჰქონდეთ a+bi ფორმა. მაგალითად, 5+7i
19-52i და ა.შ.
პირველი კრიტერიუმი:
თუკი გვაქვს a+bi c+di, ვიტყვით რომ პირელი რიცხვი მეტია მეორეზე, თუკი
a>b ანდა, თუ a=b, მაშინ c>d
მეორე კრიტერიუმი
შევადაროთ Math.sqrt(a*a + b*b) da Math.sqrt(c*c + d*d) და რომელიც
მეტია, შესაბამისი რიცხვია მეტი
ამის შემდეგ ეკრანზე პროგრამამ ეკრანზე დაბეჭდოს განსხვავებული
კომპლექსური რიცხვები, შესაბამისი რაოდენობების მითითებებით. ასეთი
ფორმით:
Distinct Numbers
=============
5+6i 3
1+2i 1
(ანუ გვერდზე მიეწეროს, რამდენჯერ შეგვხვდა ArrayList-ში ეს კომპლექსური
რიცხვი)
მითითება - განსხვავებულების დასათვლელად გამოიყენეთ java.util.Map
დავალების გამოგზავნის ბოლო ვადაა კვირა, 7 დეკემბერი, ღამის 12:00
ალბათ ბევრი მიხვდით რომ დავალებაში შეცდომა იყო (მადლობა ირაკლი
ქობესაშვილს იმისათვის რომ იპოვა ეს შეცდომა და მაცნობა). უნდა ეწეროს
ასეთი რამ:
პირველი კრიტერიუმი:
თუკი გვაქვს a+bi c+di, ვიტყვით რომ პირელი რიცხვი მეტია მეორეზე, თუკი
a>c ანდა, თუ a=c, მაშინ პირველი რიცხვი მეორეზე მეტია თუკი b>d
ანუ, სხვაგვარად რომ ვთქვათ, ჯერ ვადარებთ real ნაწილებს. თუ ერთ-ერთი
მეტია, შესაბამისი კომპლექსური რიცხვიც მეტი იქნება. თუკი real-ები
ერთმანეთის ტოლია, მერე ვადარებთ imaginary-ებს.