עבור לתוכן

שאלת מונחה עצמים ייצוג מספרים מרוכבים

Featured Replies

פורסם

אהלן

יש להשתמש בשפת מונחה עצמים (גאווה או c++) על מנת לייצג מספרים מרוכבים.

כמובן שיש לשים לב לדברים הבאים:

1. יש שתי סוגי הצגות : הצגה קרטזית ופולרית

2. כפל וחילוק יותר קל ונוחל לעשות בייצוג פולרי

3. חיבור וחיסור יותר קל לעשות בייצוג קרטזי

יש לתכנן תוננית שתנצל את השפה המונחית עצמים על מת להשיג מטרות אלו

פורסם

התבלבלת, גוגל זה ב www.google.com (אלא אם אתה רוצה להגיד איפה בדיוק אתה תקוע ולא להסתכל על פתרון מוכן מראש).

פורסם

על מנת להוסיף על הביבול, אפשר גם לייצג מספרים מרוכבים ע"י מטריצות מהצורה:


a -b
b a <=> a+bi

בכל מקרה, כמו שכבר אמרו: מה השאלה שלך?

פורסם
  • מחבר

יש לי רעיון כלשהו אבל חשבתי לשמוע הצעות לפתרון יותר טוב (אם מישהו חושב שיש)

מחלקה בשם COMPLEX

יהיה בנאי אחד שיקבלת רק את ההצגה הקרטזית- x+yi

שדות המחלקה הם: x,y עבור הצגה קרטזית

ו r a עבור הצגה פולרית

כיוון שחיבור יותר יעיל בקרטזי אזי נחבר את ההצגות הקטזיות ובכפל נעשה את ז בצורה פולרית

להלן הבעיות שאני רואה עם המימוש הזה:

1. כשאני מחבר שתי קומפלקסים למשל כך c1.add(c2) t אני משנה את c1 - שזה לא נשמע לי טוב

אולי מישהו חושב על דרך אחרת?

2.במקרה כזה אני אצטרך לעשות כל עם המרות מקרטזי ופולרי בתוך המחלקה (כיוון שערכו יכול להשתנות- ששוב זה לא נשמע טוב)

וכן על זה הדרך.

העניין הוא זה איך אתם הייתם מייצגים את הפתרון? היתתתם משנים את c1? או שלא? מה הייתם עושים? מה אתם חושבים שהעיצוב הנכון?

פורסם

הדבר הטוב ביותר שאתה יכול לעשות זה לראות איך complex מיוצג בשפות שונות: C++, C99, JAVA ו-PYTHON.

בשום אופן אל תעשה המרות ביצוג אחד לשני רק עבור פעולה מסויימת כמו כפל או חילוק (אלא אם כן אין ברירה).

תבחר יצוג פנימי אחד ותעשה את כל הפעולות בו. תוסיף פעולה בסגנון "החזר את Z ביצוג פולרי" ורק שם בצע את ההמרה.

היצוג די תלוי בשימוש, בגדול, אבל אני ממליץ על יצוג קרטזי פשוט. ביצוג קרטזי, לדוגמא, יש רק ערך אחד לוקטור 0 שהוא 0+0i. ביצוג פולרי יש אינסוף ערכים (רדיוס 0 אבל אינסוף זוייות). זה יכול לדוגמא לעשות צרות כאשר אתה משווה.

ואני מזכיר לך - תבדוק איך זה נעשה במקומות אחרים. (לפחות מבחינת הממשק).

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים