יש לי בעיה ב-C

  • פותח הנושא rin9
  • פורסם בתאריך

rin9

New member
יש לי בעיה ב-C

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

yair24

Member
תסבירי יותר

יכול להיות שאני לא מכיר את זה אבל מה זה REALLOC לקבצים? יש פקודה REALLOC שיודעת להקצות מחדש זיכרון הסינטקס של הפקודה הוא מאוד פשוט אפשר לראות אותו בעזרה של TURBO C של בורלנד אני יעלה פה דוגמא לשימוש של הפקודה בקובץ טקסט. מה שאת מחפשת זה פיתרון לשאלה קיימת אם יש לך מזל יהיה למישהו את הפתרון לי אין אותו יאיר וכרגיל לא לשכוח להיכנס לאתר שלי שמלמד ++C/C ועוד משהו יש לי באתר פרויקטים להורדה!!!!! הקיצר הלינק למטה ותכתבי משהו בספר אורחים!
 

rin9

New member
הסבר מפורט יותר

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

ihovav

New member
לדעתי את סתם מסתבכת

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

rin9

New member
יש לי עכשיו בעיה אחרת עם התרגיל

אני לא מצליחה לקלוט את הקובץ השני למרות שאני קולטת אותו כמו שקלטתי את הראשון אני מעבירה את הקובץ שכתבתי
 

ihovav

New member
לא מובן

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

היי כפי שהבנתי את רוצה לקרוא מאותו קובץ מתחילתו עד סופו פעמיים בתוכנית אז בשביל לקרוא קובץ פעמיים בתוכנית את צריכה לסגור אותו לפני שאת שוב פותחת אותו ולא כפי שעשית בתוכנית סגרת את שני המצביעים לקובץ ביחד בסוף התוכנית כלומר צריך פקודות בסדר הזה open close open close and not open open close close אבל אני בעצם לא מבין בשביל מה לקרוא פעמיים מקובץ הקלט לדעתי מספיקה פעם אחת הרי יש לך העתק של הקובץ במערכים שלך לא?
 
סליחה את קוראת משני קבצים שונים תשכ

אני לוקח בחזרה את התגובה הקודמת שלי
 

rin9

New member
הנה הפיתרון שנתתי

הבעיה היא רק קליטת הקובץ השני שקראתי לו KELET
 

ihovav

New member
אין צורך ב2 קבצים

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

ihovav

New member
את לא צריכה REALLOC

את צריכה לטעון את הנתונים לסוג של מבנה נתונים שנקרא "גרף" גרף זה למעשה עץ שאינו מוגבל בכמות הקשרים בין צומת אחת לאחרות - כלומר - אם יש לך N צמתים - סכום הקשרים לכל צומת יהיה בין 0 ל N-1 קשרים אני מצרף קובץ ובו דוגמא גרפית לגרף כמו בכל עץ - את צריכה לכתוב פונקציה רקורסיבית שתעבור על כל הצמתים ותמצא את כל הדרכים האפשריות את התוצאות את האמת יכולה לשמור במערך שאותו תקצי בצורה דינאמית - או שיותר טוב פשוט לשמור את ה"דרכים" האפשריות ברשימה מקושרת ולהדפיס את כל הרשימות בסוף אם את מעוניינת ביותר פרטים - את יכולה להוסיך שאלות בפורום - או לפנות אלי ב מייל שלי אישית בהצלחה
 
למעלה