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

בניית מחקלה שמייצגת קבוצה של מספרים ב - JAVA


מושיקו1

Recommended Posts

שלום. אני מנסה ליצור מחלקה שתייצג קבוצה של מספרים שלמים חיוביים בלבד. לכל קבוצה יהיה פרמטר בשם N. פרמטר זה יקבע את גודל הקבוצה המקסימלי האפשרי (כלומר – מספר האיברים המקסימלי שיכולים להיות בקבוצה). איברי הקבוצה כולם יהיו בתחום בין 0 ל- N-1. למשל, אם N יהיה שווה ל-10, אזי הקבוצה יכולה להכיל עד עשרה איברים, שכולם חייבים להיות בין אפס ל-9 כולל. כל איבר בקבוצה יכול להופיע רק פעם אחת – אין חזרה של איברים. לכל אחת מהשיטות הבאות ישנה דרישת סיבוכיות מקסימלית מותרת. בכל השיטות, דרישות היעילות מתייחסות לפרמטר N. אני מנסה ליצור בנאי שייצור קבוצה ריקה שיכולה להכיל n איברים. אם n קטן או שווה לאפס, הבנאי יצור קבוצה בגודל 1. סיבוכיות זמן נדרשת – O(1). כתבתי עד כה את מבנה הקוד הבא :

public Set(int n)
if(n<=0)
{
n = int[1] n;
System.out.println("n");
}

האם ככה הקוד אמור להיראות ?, אשמח לתשובה. תודה.

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

  • תגובות 31
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

משתתפים בולטים בדיון

אתה בכיוון הנכון: אתה צריך מערך בגודל N אשר לכל תא i בתוכו הוא יהיה true אם i בקבוצה או false אם i לא בקבוצה.

עבור N קטן או שווה ל-0, תגדיר את N להיות 1.


if (N <= 0 ) N = 1;
// now N is valid, so just keep working with N

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

השורה

n = int[1] n;

אמורה לגרום לבנאי ליצור קבוצה בגודל 1.

עכשיו השיטה נראית ככה:

public Set(int n)
{
if (N <= 0 )
{
N = [1];
System.out.println("N");
}
}

האם כך הקוד אמור להראות ?

לא הבנתי את המשפט הראשון שלך. אתה יכול לנסות להסביר אותו שוב ויותר בפירוט ?

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

קודם כל, הקוד שאתה כותב נראה לי לא נכון. זה מתקמפל לך?

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

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

לביטוי כזה:

N = [1]

אין משמעות. אם אתה רוצה לשים ב-N את הערך 1, אז עושים ככה:

N = 1

ואם אתה רוצה ליצור מערך בגודל N, אז צריך לעשות ככה:

int[] arr = new int[N];

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

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

כן, אבל כיוון ש-arr הוא משתנה מקומי, ולא איבר של המחלקה Set, אז הוא לא יישמר בשום מקום, ויימחק כשתצא מהבנאי.

תחזור על איך בונים מחלקה, איך מגדירים בה איברים, ואיך שמים בהם ערכים.

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

או קיי, הגדרת את arr בתור משתנה מקומי, ושמתי בו ערך, אבל עדיין יש לי שגיאה על ה - N ב :

int[] arr = new int [N];

הוא נותן לי את השגיאה הבאה : Type mismatch: cannot convert from int[] to int. מה אני יכול לעשות כדי לפתור את השגיאה ?

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

ארכיון

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


×
  • צור חדש...