פורסם 2012 בדצמבר 2512 שנים נתחיל מזה שאחרי שקראת את כל הערכים פעם אחת לתוך tb, אתה לא צריך לעשות את זה שוב לתוך t - אפשר פשוט להעתיק מ-tb ל-t בלולאה פשוטה.תפריד בין העבודה מול המשתמש ושאר הקוד. אחרי שקראת את התוכן של תיבות הטקסט, אתה לא צריך אותן יותר עד שתסיים עם האלגוריתם, ואז תכתוב לתוכן בחזרה.הקטע עם הסכום הוא בכלל מסורבל ומסובך, ויש דרכים הרבה יותר טובות להתמודד עם זה. במיון אתה לא חייב להחליף בין הערכים, אתה יכול פשוט לשמור את ה"מיקום" החדש של כל ערך (לדוגמה, אם החלטת שפעולה 4 צריכה להיות בהתחלה, אז זה אומר שבמקום 0 צריך להיות 4).יש מבין?חוץ מזה, הערה קטנה אך חשובה: תן שמות משמעותיים למשתנים שלך. tb ו-t הם לא שמות משמעותיים, כי מי שקורא אותם לא יכול להבין מה הם אמורים להביע.
פורסם 2012 בדצמבר 2512 שנים מחבר זו הבעיה .. שאני לא יודע איזה פעולה צריכה להיות בהתחלההמשתמש מזין את הערכים והתוכנה צריכה לעשות זאת לבד.אם אצטרך לעשות את הקוד כפי שעשיתי - אני נדרש מהקורס לעשות עד 10 ערכיםזאת אומרת 10 עצרת חישוביםזה מספר ענק מאוד של לולאות ותנאים.אם יש שיטה של בדיקת מינימום בין 10 מספרים או לפחות יותר מ2 מספרים זה יקל מאוד....או מיון בעזרת שמירה על ערכים מקביליםערך של פעולה 1 במכונה A ו B צריכות להישמר לאורך כל התוכנה
פורסם 2012 בדצמבר 2512 שנים איך הגעת ל10 עצרת? שוב, תנסה לחשוב על דרך פשוטה למצוא את המינימום מבין עשרה מספרים. זו לולאה פשוטה.
פורסם 2012 בדצמבר 2512 שנים מחבר זה הסיבוכיות חישוב..אולי לא הבנת כל כך אבל אחרי שמצאתי את המינימום בכל הטבלה אני משבץ אותו ואז ממשיך לחפש את המינימום הבא אחריו כל זאת על פי האילוצים שרשמתי קודם...אם המינימום שייך למכונה A אז נשבץ בהתחלהאם המינימום שייך למכונה B אז נשבץ בסוף...אתה לא יכול לעזור לי אחי ?
פורסם 2012 בדצמבר 2612 שנים שכח רגע מכל שאר האילוצים. אני מדבר איתך על בעיה הרבה יותר פשוטה - מציאת מינימום מבין 10 מספרים.נניח שנייה שאין לך מחשב. יש לך ספר עם 100 עמודים, ובכל עמוד כתוב מספר. מישהו שואל אותך: "מה המספר הכי קטן בספר?"איך תעשה את זה?
פורסם 2012 בדצמבר 2612 שנים מחבר יחפש ידנית דף אחרי דף...אם אני עושה כך בתוכנה אז יש לי מלא תנאים... כמו במה שכתבתי עכשיו....איך אפשר לעשות משתנה דו מימדי ואז להשתמש בפונקציית Lbound
פורסם 2012 בדצמבר 2612 שנים מחבר משווה בין כל שני מספרים מי הנמוך מביניהם וכן הלאה...איך אני עושה את זה בקוד תוכנה זה הבעיה אח שלי!
פורסם 2012 בדצמבר 2612 שנים מה זאת אומרת "משווה בין כל שני מספרים"? הסתכלת על שני העמודים הראשונים, השווית בין שני המספרים. מה הלאה?תבין, אלגוריתמיקה צריכה להיות מדויקת. אתה לא יכול לומר למחשב משהו בסגנון "תשווה כל שני מספרים" - אתה צריך לומר לו במדויק מה לעשות. לכן כשמתארים אלגוריתם באופן מילולי, הוא גם צריך להיות מדויק ככל האפשר.
פורסם 2012 בדצמבר 2612 שנים מחבר בוחר בערך אחד מתוך הטבלה ומשווה אותו למספרים האחרים, אם הוא הכי קטן אז נשבץ אותו בהתאם לאלגוריתם.בוחר בערך אחר מתוך הטבלה, ובודק את אותו הדבר...עד למציאת המספר המינימלי ומשבץ בהתאם לאלגוריתם.הבעיה היא שהאלגוריתם הוא קל לחישוב ידנית ומסובך לתכנות.אני מצרף לך קוד חדש שחשבתי עליו ותתקן אותי איפה שאני טועה, המטרה שלי היא לבדוק כל אינדקס ולדעת אם הוא המינימום. אני בוחר אחד ומנסה להריץ אותו על כל האינדקסים הבאים... משהו לא מסתדר לי שם.[size=1] time(0, 0) = TextBox1.Text[/size][size=1] time(0, 1) = TextBox2.Text[/size][size=1] time(0, 2) = TextBox3.Text[/size][size=1] time(0, 3) = TextBox4.Text[/size][size=1] time(0, 4) = TextBox5.Text[/size][size=1] time(0, 5) = TextBox6.Text[/size][size=1] time(0, 6) = TextBox7.Text[/size][size=1] time(0, 7) = TextBox8.Text[/size][size=1] time(0, 8) = TextBox9.Text[/size][size=1] time(0, 9) = TextBox10.Text[/size][size=1] time(1, 0) = TextBox11.Text[/size][size=1] time(1, 1) = TextBox12.Text[/size][size=1] time(1, 2) = TextBox13.Text[/size][size=1] time(1, 3) = TextBox14.Text[/size][size=1] time(1, 4) = TextBox15.Text[/size][size=1] time(1, 5) = TextBox16.Text[/size][size=1] time(1, 6) = TextBox17.Text[/size][size=1] time(1, 7) = TextBox18.Text[/size][size=1] time(1, 8) = TextBox19.Text[/size][size=1] time(1, 9) = TextBox20.Text[/size][size=1] a = 9[/size][size=1] For I = 1 To 0 Step -1[/size][size=1] For j = 0 To 9[/size][size=1] For v = 0 To 9[/size][size=1] If time(I, j) < time(I, v) And time(I, j) <= time(j + 1, v) Then[/size][size=1] '' פה יהיה האלגוריתם... אבל התנאי שגוי נראה לי...[/size][size=1] End If[/size][size=1] Next[/size][size=1] Next[/size][size=1] Next[/size]
פורסם 2012 בדצמבר 2612 שנים עזוב לרגע את הבעיה שנתנו לך!תבין שאם אתה לא מצליח לפתור בעיה הרבה יותר בסיסית (מציאת המינימום מתוך מערך של מספרים), אז גם לא תצליח לפתור את הבעיה הזו. אז תשכח מהבעיה שלך, ותתמקד בבעיה הפשוטה יותר.תזכור את הכלים שיש לך. אתה יכול להשוות בין שני מספרים (באמצעות Math.Min או באמצעות האופרטורים < ו->), אתה יכול לשמור ערכים במשתנים, ואתה יכול לעשות לולאות.
פורסם 2012 בדצמבר 2612 שנים מחבר אח שלי אני יודע ומכיר את השיטות הללו...כנראה שאתה לא מבין את אלגוריתם ג'ונסון - שנינו באים מתחומים שונים.. אני בטוח שזה דבר פשוט בשבילך, אבל תבין לא כל הפשוט לך הוא הפשוט לאחר ולא כל הפשוט לי הוא הפשוט לך - כמו שאמרתי שנינו באים מתחומים שונים...אם אני אראה את הפתרון של הדבר הזה בקוד תוכנה אני בטוח יבין אותו... פשוט לי אישית קשה לכתוב את זה בקוד תוכנה !
פורסם 2012 בדצמבר 2612 שנים אם אתה יודע ומכיר את השיטות האלה, אז לא תהיה לך בעיה לכתוב פה את הקוד הזה, נכון?נניח ש-t הוא מערך בגודל 10 שמכיל מספרים. תכתוב לי בבקשה קוד VB שמדפיס את המספר הקטן ביותר ב-t.
פורסם 2012 בדצמבר 2612 שנים נתי, שניצל נתן לך את כל הכלים לפתור את זה(את הבעיה הפשוטה) כתוב במילים אפילו איך היית פותר את זה ואז יהיה אפשר להתקדםדוגמה לכתיבת "קוד" במילים:משווה בין האיבר השני לראשוןאם הראשון גדול יותר אז...אם השני גדול יותר אז..וכו'
פורסם 2012 בדצמבר 2612 שנים מחבר Dim a(9),temp as integerfor i= to 9 for j = 0 to 8if a(j) > a(j+1) thentemp = a(j)a(j) = a(j+1)a(j+1) = tempnextnextmsgbox(a(0))אח שלי אני יודע איך לעשותהאלגוריתם מורכב ומסובך..אם לדעתכם זה פשוטאז תרשום לי בבקשה קוד שעושה זאת ותראה בעצמך שזה לא כזה פשוט..
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.