לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 05-02-2007, 12:47
  Ch00k Ch00k אינו מחובר  
 
חבר מתאריך: 04.11.06
הודעות: 18
שאלות על עבודה עם רשימה (list) - שפת c

דבר ראשון אני זקוק לדרך / שיטה למיון רשימה שטיפוס האיבר שלה (x) מוגדר כמבנה רשומה המכיל שני ערכים:
num-מספר תלמיד
grade-ציון התלמיד
ומה שאני צריך בעצם זה למיין את הרשימה L1 הזו שמאותחלת כבר עם ערכים אלה
בעזרת פונקציה הכנס_לרשימה_ממוינת(L2) ושהפונקציה תמיין את רשימה L1 לרשימה L2 עפ"י הסדר לפי מספר התלמיד




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



דבר שני איך אני מגדיר משתנה מסוג איבר ברשימה (שיקרא בתור x) בתכנית הראשית
ועוד משהו - איך אני מגדיר שהמשתנה מסוג איבר ברשימה יהיה מוגדר כרשומה בעלת שני ערכים מסוג Int:
num
grade
כלומר שכל תא ברשימה יכיל את מספר התלמיד וציונו בהתאם(2 ערכחם לכל תא ברשימה)


צירפתי את כל קבצי המקור הדרושים(header , source)
http://www.mytempdir.com/1203251

המון תודה!

נערך לאחרונה ע"י Ch00k בתאריך 05-02-2007 בשעה 12:50.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 05-02-2007, 23:53
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 1 שנכתבה על ידי Ch00k שמתחילה ב "שאלות על עבודה עם רשימה (list) - שפת c"

נתנו לך את listD.h/c ואתה צריך לשפץ אותם, או שאתה בנית אותם מאפס?
זה מימוש די לא יעיל של רשימה, אבל אם לא אתה צריך לבנות את זה, אז לא משנה.

ולשאלות שלך:
אם תסתכל על המבנה של struct list_type, תראה שהוא מכיל מערך מסוג list_info_type (שמוגדר בתחילת הקובץ). אז כדי להגדיר רשימה שכל תא מכיל 2 שדות, תשנה את list_info_type למשהו כזה:
קוד:
typedef struct my_list_info_type { int num; int grade; } list_info_type;



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

מקווה שעזרתי
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 06-02-2007, 14:45
  Ch00k Ch00k אינו מחובר  
 
חבר מתאריך: 04.11.06
הודעות: 18
אוקי אתה יכול לעזור לי לרשום את זה?
בתגובה להודעה מספר 2 שנכתבה על ידי yoavmatchulsky שמתחילה ב "נתנו לך את listD.h/c ואתה..."

ולגבי מה שכתבת:
עעכשיו my_list_info_type יהיה המשתנה מסוג איבר ברשימה?
איפה אני רושם אותו ואיך אני עובד איתו בפונקציה הראשית

עוד משהו:
איך אני יכול להציג בבת אחת ממשתנה מבנה x את כל הערכים בהתאמה למשתנה y שגם הוא מבנה

זתומרת אני מתכוון שאם x הוא רשומה המכילה שני ערכים num,grade ואני רוצה להציב את מה שיש כעת בx כלומר x.num , x.grade לy בדרך הכי קלה איך לעשות את זה?
איך אני מעתיק נתונים מרשומה x לרשומה y בצורה הכי קלה


וכאשר אני מעביר את x שהוא רשומה כפרמטר לפונקציה איך זה בדיוק יעבוד?

*אני ישמח אם תוכל לרשום לי את כל זה בשפת c כי אני בתחילת דרכי בעבודה עם רשימה בסביבת עבודה, עד עכשיו כתבתי בצורה מילולית


תודה רבה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 06-02-2007, 16:39
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 3 שנכתבה על ידי Ch00k שמתחילה ב "אוקי אתה יכול לעזור לי לרשום את זה?"

ציטוט:
במקור נכתב על ידי Ch00k
ולגבי מה שכתבת:
עעכשיו my_list_info_type יהיה המשתנה מסוג איבר ברשימה?
איפה אני רושם אותו ואיך אני עובד איתו בפונקציה הראשית


תסתכל על המימוש של הרשימה. מה שקורה שם זה שיש מערך של מספר קבוע מראש (אני חושב שקבעו לך אותו ל30) של list_info_type. ועשו typedef כדי שlist_info_type יהיה בעצם int.
אז עם אותו טריק, אתה משנה את list_info_type שיהיה סטראקט, ואז בעצם תקבל מערך של סטראקטים.

ציטוט:
במקור נכתב על ידי Ch00k
עוד משהו:
איך אני יכול להציג בבת אחת ממשתנה מבנה x את כל הערכים בהתאמה למשתנה y שגם הוא מבנה

זתומרת אני מתכוון שאם x הוא רשומה המכילה שני ערכים num,grade ואני רוצה להציב את מה שיש כעת בx כלומר x.num , x.grade לy בדרך הכי קלה איך לעשות את זה?
איך אני מעתיק נתונים מרשומה x לרשומה y בצורה הכי קלה


אם x וגם y הם שניהם משתנים מאותו סוג (גם אם הסוג הזה הוא struct), אז אתה יכול לבצע השמה ביניהם (זה נקרא השמה רדודה - shalow assignment).

ציטוט:
במקור נכתב על ידי Ch00k
וכאשר אני מעביר את x שהוא רשומה כפרמטר לפונקציה איך זה בדיוק יעבוד?

הרשומה מוגדרת כמשתנה רגיל. היא עוברת בדיוק כמו int, float, וכו'.
דוגמא:
קוד:
typedef struct my_list_info_type { int num; int grade; } list_info_type; void main() { list_info_type x,y; x.num = 1; x.grade = 100; y = copyNode(x); } list_info_type copyNode(list_info_type node) { node.num++; return node; }

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 11:02

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר