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

פרוייקט תיכנות


error403

Recommended Posts

אוקי אני ניצב מול הבעיה הבאה.

אני זקוק לרשימה מלאה של המילים בעברית שלהיפוך המילה יש משמעות

לדוגמא :

מוח-חום

בתוך-כותב

ישן-נשי

וכו....

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

תתחיל מהמילה הראשונה.{תהפוך אותה ותתאים את המילה לשאר המילים במילון. עד אשר תמצא התאמה {או לא תמצא}

וכך תסרוק את כל המילים במילון.

ותייצר רשימה {שניתן להדפיס על דף} של כל המילים שמצאה בצורה הרגילה וההפוכה.

בדומה למה שהראתי למעלה.

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

ואין לי הרבה ידע בתיכנות עם קבצים חיצוניים.

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

או לקדם אותי לקראת פיתרונה.

אפשר ליצור קשר באיסיקיו 157137211 , באימייל error404@dr.com

או דרך הפורום.

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

  • 2 שבועות מאוחר יותר...

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

אז חשבתי

ויש לי רעיון

כל פעם שאתה מוצא מילה אתה מוציא אותה מהמאג מילים שיש לך

וככה לא תראה כפילויות וגם \זה יהייה יותר מהר...

2:30 בלילה ואני עייף

יכול להיות שאני לא כל כך כתבתי ברור

לא נורא

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

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

זה ממש פשוט,

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

אם הוא מצא את המילה ההופכה במילון, הוא מציג את המילה המקורית וההפוכה.

סה"כ אם יש n מילים במילון, הוא יצטרך לעבור n פעמים על מסד הנתונים של המילון.

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

אפשרות נוספת להתגבר על בעית המילים הכפולות, היא לבצע כל פעם את החיפוש במסד הנתונים עבור המילה ההפוכה, לא מההתחלה עד הסוף, אלא מ-i עד הסוף (כאשר i הוא המיקום הנוכחי של ה pointer [של המילה המקורית]). זה גם יעזור לייעל את התהליך.

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

עכשיו בואו נראה אתכם מחשבים את הסיבוכיות של האלגוריתם הזה (כאשר שתי אפשרויות הייעול בשימוש)... :P

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

אם כבר ייעול... אפשר להגדיר מערך של פוינטרים בגודל מספר האותיות ב-א"ב העברי, כאשר כל פוינטר מצביע למילה הראשונה שמתחילה באותה אות. ועל זה לעשות חיפוש בינארי :P

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

תודה רבה

עזרתם לי מעט לחשוב על הסיבוכיות.

אבל הבעיה המרכזית נותרה.

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

{למרות שאני מודע לכך , שיש סיכוי שהמחשב יהיה דלוק הרבה זמן כדי לפתור את הבעיה :) }

הבעיה היא מאגר המידע של המילון עצמו.

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

אני חושב שהשלבים האחרים יהוו פחות בעיה.

{גם אם זה אומר לשבת שבועיים מול המחשב בציפייה ,רק כדי שתהייה הפסקת חשמל כמה ימים לפני המועד שהוא אמור לסיים את המטלה}

אבל מי הגאון שימצא לי את מסד הנתונים המבוקש?

ויקרב אותי אלפי מונים לפתרון הבעיה :P

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

ארכיון

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

×
  • צור חדש...