בעיה בהידור תוכנה בגאווה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיה בהידור תוכנה בגאווה


Dror Arasheven

Recommended Posts

http://pastebin.com/mRY2dDyf

המרצה נתן תרגיל לכתוב שיטה סטטית isPermutation להשוואת 2 מחרוזות . (מותר העמסה) השתמשתי בתוכנה שמצאתי לסידור המחרוזת כדי שהוכל להשתמש רק בלולאה 1 ולא מקוננת

המהדר מודיע לי שהוא אינו מזהה את הערך בתוך הסוגרים בפונקציה mergeSort(a) משהוא יכול יכול להגיד לי מה הבעיה ואיך לתקן את זה?

attachment.php?attachmentid=8661&stc=1

קישור לתוכן
שתף באתרים אחרים

בדיוק מה שהוא אומר - אתה מנסה להעביר טיפוס []int לתוך פונקציה שמצפה לטיפוס []Comparable. אי אפשר להמיר בין השניים - int אינו Comparable.

אתה יכול לעבוד עם Integer במקום int, כי Integer הוא כן Comparable.

קישור לתוכן
שתף באתרים אחרים

Integer היא גרסה "object oriented" של int. אפשר להמיר באופן חופשי בין השניים (אלא אם אתה מנסה להמיר בין []int ל-[]Integer ולהיפך, ואז אי אפשר).

יעזור אם תאמר איפה מה התיקון שעשית ואיפה השגיאה בקוד. כפי שהוא אומר לך, אתה מנסה לעשות שימוש במשהו שהוא void - לדוגמה, אם פונקציה מחזירה void אז אתה לא יכול להשתמש בתוצאה שלה, כי אין לה תוצאה.

קישור לתוכן
שתף באתרים אחרים

מה זה "אותה שורה שצויינה"? לא ציינת שום שורה.

בכל מקרה, כמו שאמרתי - השגיאה הזו אומרת שניסית "להשתמש" ב-void. תסתכל על השורה שעליה מצביע הקומפיילר ותנסה להבין מה הבעיה איתה.

אגב, למה הפונקציה מחזירה int ולא boolean?

קישור לתוכן
שתף באתרים אחרים

        if (mergeSort(a)==mergeSort(b))

מצביע על השורה הזאת . השאלה ביקשה שיטה סטטית שתחזיר 1 אם שני המערכים מכילים אותם מספרים . גם אם הם בסדר שונה . ו 0 אם לא . השאל את המורה אם יהיה הבדל אם השתמש

boolean

....

קישור לתוכן
שתף באתרים אחרים

מה הקשר למחרוזת כאן?

טיפוס ההחזרה של הפונקציה שלך הוא void. זה אומר שהיא לא מחזירה כלום. זה אומר שאתה לא יכול לקחת את התוצאה שלה ולנסות להשתמש בה ולהשוות אותה למשהו, כי אין לפונקציה "תוצאה". זה מה שהקומפיילר צועק עליו. אתה מנסה לעשות (mergeSort(a)==mergeSort(b, אבל אין לביטוי (mergeSort(a ערך שהוא יכול להשוות אותו.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...