nati2211 פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 שלום, אני התחלתי ללמוד תכנות רק לא מזמן... בויזואל בייסיק .יש לי בעיה שאני לא מצליח לפתור כבר מספר ימים.הבעיה הולכת כך :יש טבלה עם מספרים וצריך למיין אותה לפי האלגוריתם הזה :חפש את פעולה עם הערך הכי מינימלי, אם הערך שייך למכונה A אז שבץ את הפעולה בהתחלה.אם הערך שייך למכונה B אז שבץ את הפעולה בסוף.חזר על הפעולה עד לסיום כל הפעולות הנתונות.הבעיה שלי היא שאין בויזואל בייסיק פונקציית מינימום ליותר משני ערכים.. השיטה הזו MATH.MIN לא מקבלת יותר משתי ערכיםובנוסף צריך לשמור על הסדר והערכים של הפעולות כלומר אסור לבלבל בין המספרים איך שרוצים כמו במיון בועות רגיל...אני צריך לעשות זאת עבור 10 פעולות וזה די הרבה...מצורפת דוגמא.תודה לכל העוזריםhttp://www.*צונזר*/my/mnmjdydndkdq.png קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 בשביל זה יש לולאות. איך באמצעות לולאה פשוטה אפשר למצוא את הערך המינימלי מתוך 10 מספרים?אגב, אתה מדבר על Visual Basic.NET, כן? למה החלטת לבחור בה ולא ב-#C? קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 אני רק עכשיו התחלתי ללמוד תכנות... זה מה שנותנים לנו במכללה.עשיתי לולאות אבל לא עובד לי...אני צריך להזכיר שצריך לשמור על הערכים של כל פעולה ולא לערבב ביניהםהאלגוריתם צריך לסדר את המספרים לפי איך שכתבתי קודם...אם המינימום שייך למכונה A - זמן את הפעולה הנידונה ראשונהאם המינימום שייך למכונה B - זמן את הפעולה הנידונה אחרונה.* מחק את הפעולה שזומנה והמשך בתהליך עד לסיום זימון כל הפעולות... קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 מה זאת אומרת "זה לא עבד לי"? אז תתאמץ יותר... תכתוב פה את הקוד שניסית לכתוב.תתחיל מבעיה יותר פשוטה: נתונים לך 10 מספרים, ואתה רוצה להדפיס את הקטן ביותר מהם. איך עושים את זה? קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 ישבתי על זה מהשעה 8 בבוקר עד 7 בערב ולא עובד שום קוד.אסביר יותר את הבעיה.לאלגוריתם קוראים אלגוריתם ג'ונסון - פותר אופטימלית בעיות זימון למכונות.... מקצר זמני בטלה.נניח שיש לי רק שני פעולות שהערכים שלהם הם דקות כפי שמתואר בטבלה הראשונה בהודעה זו.הערך המינימלי הוא בפעולה 2 (דקה אחת) עבור מכונה A אני ארצה לשבץ את פעולה 2 במקום פעולה 1כי הוא מצריך דקה אחת למכונה A ולכן הסדר יהיה קודם נבצע את פעולה 2 ואח"כ את פעולה 1.דוג' נוספת.נניח שיש לי שלוש פעולות שהערכים שלהם הם גם דקות כפי שמתואר בטבלה השניה בהודעה זו.הערך המינימלי הוא בפעולה 1 ( 0 דקות) עבור מכונה B ולכן ארצה לשבץ אותו בסוף הטור - במקום פעולה 3.הערך המינימלי הבא מתקבל בפעולה 3 (1דקות) עבור מכונה A ולא נרצה לשבץ אותו כמה שיותר מוקדם.. בהתחלה.לאחר מכן הערך הנמוך הוא (2 דקות) עבור פעולה 2 למכונה A .. אך מכיון שכל המקומות תפוסים מחישובים קודמים והמקום היחידי שנשאר שם הוא ישובץ.מקווה שהבנת.. אם לא .. אשמח להתקשר אליך ולהסביר לך, כמובן שבמידה ותרצה אז אשלם לך בהתאם.יש לציין שאוכל להפנות אליך סטודנטים רבים בשבועות הקרובים לצורך התייעצויות או עזרה כמובן שבתשלום הולם.מצורפות הטבלאות המסבירות את החישובים. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 עדיין לא הסברת איפה אתה מתקשה. מה זאת אומרת "לא עובד שום קוד"? אם יש לך קוד שכתבת והוא "לא עובד", אז תעלה אותו לכאן ונוכל לנסות להבין מה לא טוב בו ומה אתה צריך לתקן.יעזור גם אם תעלה את הבעיה במדויק (מה המבנה של הקלט? איך צריך להיראות הפלט?) קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 [pre]הקלט הוא הזמן בדקות לכל פעולה עבור שתי המכונות.הפלט יהיה הזימון האופטימלי על פי האלגוריתם שהצגתי קודם.הנה הקוד שעשיתי ונתקעתי איתו... ייתכן וכולו שגויDim tb(40), t(40), sum(40), temp, min(19) As Single, big As Double tb(0) = TextBox1.Text tb(1) = TextBox2.Text tb(2) = TextBox3.Text tb(3) = TextBox4.Text tb(4) = TextBox5.Text tb(5) = TextBox6.Text tb(6) = TextBox7.Text tb(7) = TextBox8.Text tb( = TextBox9.Text tb(9) = TextBox10.Text tb(10) = TextBox11.Text tb(11) = TextBox12.Text tb(12) = TextBox13.Text tb(13) = TextBox14.Text tb(14) = TextBox15.Text tb(15) = TextBox16.Text tb(16) = TextBox17.Text tb(17) = TextBox18.Text tb(18) = TextBox19.Text tb(19) = TextBox20.Text t(0) = TextBox1.Text t(1) = TextBox2.Text t(2) = TextBox3.Text t(3) = TextBox4.Text t(4) = TextBox5.Text t(5) = TextBox6.Text t(6) = TextBox7.Text t(7) = TextBox8.Text t( = TextBox9.Text t(9) = TextBox10.Text t(10) = TextBox11.Text t(11) = TextBox12.Text t(12) = TextBox13.Text t(13) = TextBox14.Text t(14) = TextBox15.Text t(15) = TextBox16.Text t(16) = TextBox17.Text t(17) = TextBox18.Text t(18) = TextBox19.Text t(19) = TextBox20.Text sum(0) = t(0) + t(10) sum(1) = t(1) + t(11) sum(2) = t(2) + t(12) sum(3) = t(3) + t(13) sum(4) = t(4) + t(14) sum(5) = t(5) + t(15) sum(6) = t(6) + t(16) sum(7) = t(7) + t(17) sum( = t( + t(18) sum(9) = t(9) + t(19) For j = 0 To 9 For i = 0 To 8 If tb(i) > tb(i + 1) Then temp = tb(i) tb(i) = tb(i + 1) tb(i + 1) = temp End If Next Next TextBox1.Text = tb(0) TextBox2.Text = tb(1) TextBox3.Text = tb(2) TextBox4.Text = tb(3) TextBox5.Text = tb(4) TextBox6.Text = tb(5) TextBox7.Text = tb(6) TextBox8.Text = tb(7) TextBox9.Text = tb( TextBox10.Text = tb(9) If TextBox1.Text = t(0) Then TextBox11.Text = sum(0) - t(0) End If If TextBox1.Text = t(1) Then TextBox11.Text = sum(1) - t(1) End If If TextBox1.Text = t(2) Then TextBox11.Text = sum(2) - t(2) End If If TextBox1.Text = t(3) Then TextBox11.Text = sum(3) - t(3) End If If TextBox1.Text = t(4) Then TextBox11.Text = sum(4) - t(4) End If If TextBox1.Text = t(5) Then TextBox11.Text = sum(5) - t(5) End If If TextBox1.Text = t(6) Then TextBox11.Text = sum(6) - t(6) End If If TextBox1.Text = t(7) Then TextBox11.Text = sum(7) - t(7) End If If TextBox1.Text = t( Then TextBox11.Text = sum( - t( End If If TextBox1.Text = t(9) Then TextBox11.Text = sum(9) - t(9) End If If TextBox2.Text = t(0) Then TextBox12.Text = sum(0) - t(0) ElseIf TextBox2.Text = t(1) Then TextBox12.Text = sum(1) - t(1) ElseIf TextBox2.Text = t(2) Then TextBox12.Text = sum(2) - t(2) ElseIf TextBox2.Text = t(3) Then TextBox12.Text = sum(3) - t(3) ElseIf TextBox2.Text = t(4) Then TextBox12.Text = sum(4) - t(4) ElseIf TextBox2.Text = t(5) Then TextBox12.Text = sum(5) - t(5) ElseIf TextBox2.Text = t(6) Then TextBox12.Text = sum(6) - t(6) ElseIf TextBox2.Text = t(7) Then TextBox12.Text = sum(7) - t(7) ElseIf TextBox2.Text = t( Then TextBox12.Text = sum( - t( ElseIf TextBox2.Text = t(9) Then TextBox12.Text = sum(9) - t(9) End If If TextBox3.Text = t(0) Then TextBox13.Text = sum(0) - t(0) ElseIf TextBox3.Text = t(1) Then TextBox13.Text = sum(1) - t(1) ElseIf TextBox3.Text = t(2) Then TextBox13.Text = sum(2) - t(2) ElseIf TextBox3.Text = t(3) Then TextBox13.Text = sum(3) - t(3) ElseIf TextBox3.Text = t(4) Then TextBox13.Text = sum(4) - t(4) ElseIf TextBox3.Text = t(5) Then TextBox13.Text = sum(5) - t(5) ElseIf TextBox3.Text = t(6) Then TextBox13.Text = sum(6) - t(6) ElseIf TextBox3.Text = t(7) Then TextBox13.Text = sum(7) - t(7) ElseIf TextBox3.Text = t( Then TextBox13.Text = sum( - t( ElseIf TextBox3.Text = t(9) Then TextBox13.Text = sum(9) - t(9) End If If TextBox4.Text = t(0) Then TextBox14.Text = sum(0) - t(0) ElseIf TextBox4.Text = t(1) Then TextBox14.Text = sum(1) - t(1) ElseIf TextBox4.Text = t(2) Then TextBox14.Text = sum(2) - t(2) ElseIf TextBox4.Text = t(3) Then TextBox14.Text = sum(3) - t(3) ElseIf TextBox4.Text = t(4) Then TextBox14.Text = sum(4) - t(4) ElseIf TextBox4.Text = t(5) Then TextBox14.Text = sum(5) - t(5) ElseIf TextBox4.Text = t(6) Then TextBox14.Text = sum(6) - t(6) ElseIf TextBox4.Text = t(7) Then TextBox14.Text = sum(7) - t(7) ElseIf TextBox4.Text = t( Then TextBox14.Text = sum( - t( ElseIf TextBox4.Text = t(9) Then TextBox14.Text = sum(9) - t(9) End If If TextBox5.Text = t(0) Then TextBox15.Text = sum(0) - t(0) ElseIf TextBox5.Text = t(1) Then TextBox15.Text = sum(1) - t(1) ElseIf TextBox5.Text = t(2) Then TextBox15.Text = sum(2) - t(2) ElseIf TextBox5.Text = t(3) Then TextBox15.Text = sum(3) - t(3) ElseIf TextBox5.Text = t(4) Then TextBox15.Text = sum(4) - t(4) ElseIf TextBox5.Text = t(5) Then TextBox15.Text = sum(5) - t(5) ElseIf TextBox5.Text = t(6) Then TextBox15.Text = sum(6) - t(6) ElseIf TextBox5.Text = t(7) Then TextBox15.Text = sum(7) - t(7) ElseIf TextBox5.Text = t( Then TextBox15.Text = sum( - t( ElseIf TextBox5.Text = t(9) Then TextBox15.Text = sum(9) - t(9) End If If TextBox6.Text = t(0) Then TextBox16.Text = sum(0) - t(0) ElseIf TextBox6.Text = t(1) Then TextBox16.Text = sum(1) - t(1) ElseIf TextBox6.Text = t(2) Then TextBox16.Text = sum(2) - t(2) ElseIf TextBox6.Text = t(3) Then TextBox16.Text = sum(3) - t(3) ElseIf TextBox6.Text = t(4) Then TextBox16.Text = sum(4) - t(4) ElseIf TextBox6.Text = t(5) Then TextBox16.Text = sum(5) - t(5) ElseIf TextBox6.Text = t(6) Then TextBox16.Text = sum(6) - t(6) ElseIf TextBox6.Text = t(7) Then TextBox16.Text = sum(7) - t(7) ElseIf TextBox6.Text = t( Then TextBox16.Text = sum( - t( ElseIf TextBox6.Text = t(9) Then TextBox16.Text = sum(9) - t(9) End If If TextBox7.Text = t(0) Then TextBox17.Text = sum(0) - t(0) ElseIf TextBox7.Text = t(1) Then TextBox17.Text = sum(1) - t(1) ElseIf TextBox7.Text = t(2) Then TextBox17.Text = sum(2) - t(2) ElseIf TextBox7.Text = t(3) Then TextBox17.Text = sum(3) - t(3) ElseIf TextBox7.Text = t(4) Then TextBox17.Text = sum(4) - t(4) ElseIf TextBox7.Text = t(5) Then TextBox17.Text = sum(5) - t(5) ElseIf TextBox7.Text = t(6) Then TextBox17.Text = sum(6) - t(6) ElseIf TextBox7.Text = t(7) Then TextBox17.Text = sum(7) - t(7) ElseIf TextBox7.Text = t( Then TextBox17.Text = sum( - t( ElseIf TextBox7.Text = t(9) Then TextBox17.Text = sum(9) - t(9) End If If TextBox8.Text = t(0) Then TextBox18.Text = sum(0) - t(0) ElseIf TextBox8.Text = t(1) Then TextBox18.Text = sum(1) - t(1) ElseIf TextBox8.Text = t(2) Then TextBox18.Text = sum(2) - t(2) ElseIf TextBox8.Text = t(3) Then TextBox18.Text = sum(3) - t(3) ElseIf TextBox8.Text = t(4) Then TextBox18.Text = sum(4) - t(4) ElseIf TextBox8.Text = t(5) Then TextBox18.Text = sum(5) - t(5) ElseIf TextBox8.Text = t(6) Then TextBox18.Text = sum(6) - t(6) ElseIf TextBox8.Text = t(7) Then TextBox18.Text = sum(7) - t(7) ElseIf TextBox8.Text = t( Then TextBox18.Text = sum( - t( ElseIf TextBox8.Text = t(9) Then TextBox18.Text = sum(9) - t(9) End If If TextBox9.Text = t(0) Then TextBox19.Text = sum(0) - t(0) ElseIf TextBox9.Text = t(1) Then TextBox19.Text = sum(1) - t(1) ElseIf TextBox9.Text = t(2) Then TextBox19.Text = sum(2) - t(2) ElseIf TextBox9.Text = t(3) Then TextBox19.Text = sum(3) - t(3) ElseIf TextBox9.Text = t(4) Then TextBox19.Text = sum(4) - t(4) ElseIf TextBox9.Text = t(5) Then TextBox19.Text = sum(5) - t(5) ElseIf TextBox9.Text = t(6) Then TextBox19.Text = sum(6) - t(6) ElseIf TextBox9.Text = t(7) Then TextBox19.Text = sum(7) - t(7) ElseIf TextBox9.Text = t( Then TextBox19.Text = sum( - t( ElseIf TextBox9.Text = t(9) Then TextBox19.Text = sum(9) - t(9) End If If TextBox10.Text = t(0) Then TextBox20.Text = sum(0) - t(0) ElseIf TextBox10.Text = t(1) Then TextBox20.Text = sum(1) - t(1) ElseIf TextBox10.Text = t(2) Then TextBox20.Text = sum(2) - t(2) ElseIf TextBox10.Text = t(3) Then TextBox20.Text = sum(3) - t(3) ElseIf TextBox10.Text = t(4) Then TextBox20.Text = sum(4) - t(4) ElseIf TextBox10.Text = t(5) Then TextBox20.Text = sum(5) - t(5) ElseIf TextBox10.Text = t(6) Then TextBox20.Text = sum(6) - t(6) ElseIf TextBox10.Text = t(7) Then TextBox20.Text = sum(7) - t(7) ElseIf TextBox10.Text = t( Then TextBox20.Text = sum( - t( ElseIf TextBox10.Text = t(9) Then TextBox20.Text = sum(9) - t(9) End If min(0) = Math.Min(tb(10), tb(11)) min(1) = Math.Min(tb(12), tb(13)) min(2) = Math.Min(tb(14), tb(15)) min(3) = Math.Min(tb(16), tb(17)) min(4) = Math.Min(tb(18), tb(19)) min(5) = Math.Min(min(0), min(1)) min(6) = Math.Min(min(2), min(3)) min(7) = Math.Min(min(5), min(6)) min( = Math.Min(min(7), min(4)) For q = 0 To 19 min(0) = Math.Min(tb(q), tb(q + 10)) min(0) = Math.Min(tb(q), tb(q + 10)) Next[/pre] קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 תערוך את ההודעה ושים את הקוד בתוך טג קוד כדי שיהיה קריא. קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 ערכתי, מקווה לעזרה ...תודה רבה לך מאוד מעריך את העזרה שלך קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 לא עשית מה שביקשתי.תערוך את ההודעה ושים את הקוד בתוך טג קוד כדי שיהיה קריא. קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 מה הכוונה טג קוד ? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 כשאתה כותב\עורך הודעה, אתה רואה כפתור עם סולמית עליו? זה. קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 אוקייעשיתי קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 אוקי, עכשיו אפשר להבין מה כתוב שם. אבל מה בכלל הקוד הזה אומר? מה זה t? tb? מה אומרות 20 תיבות הטקסט (חשבתי שיש 10 מספרים)? מה הקטע עם הסכומים? למה בכלל כל ה-ifים המסורבלים בסוף? קישור לתוכן שתף באתרים אחרים More sharing options...
nati2211 פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 בגלל זה אמרתי שנתקעתי בגלל שהכל מסורבל וארוך - בטוח שיש לולאות מתוחכמות שעושות את העבודה הזו.tb זה הערך שהמשתמש מקליד בתיבות טקסט.t זה העתק של tb לצורך הסכומים והשימוש אחרי זה בהםהסכומים - כדי לשמור כל ערך לכל פעולה בלי לערבב בין הערכים כלומר לשנות את הזמן של פעולה 2 לזמן של פעולה 4 וכו'אז עשיתי סכומים ואחרי שמיינתי את הפעולות במכונה A בלבד שמרתי על הערך של כל פעולה במכונה B כחיסור של הסכום פחות הערך במכונה Aוכך קיבלתי את הערך המקורי שהמשתמש הקליד במכונה Bומכאן נובעים כל ה-IF שאם כתוב בתיבת טקסט מספר כזה וכזה.... אז בתיבת טקסט ששיכת לאותה פעולה אבל במכונה B תרשום את ההפרש...מסורבל ולא עובד כראוי...בגלל זה השאלה שלי איך אני מבצע מיון של מספרים כאשר אני שומר על הערכים ולא מערבב ביניהםאו לפחות איך לבצע השוואה בפונקציית מינימום ביותר משני ערכים קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.