עבור לתוכן

עזרה בויזואל בייסיק

Featured Replies

פורסם

נתחיל מזה שאחרי שקראת את כל הערכים פעם אחת לתוך tb, אתה לא צריך לעשות את זה שוב לתוך t - אפשר פשוט להעתיק מ-tb ל-t בלולאה פשוטה.

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

הקטע עם הסכום הוא בכלל מסורבל ומסובך, ויש דרכים הרבה יותר טובות להתמודד עם זה. במיון אתה לא חייב להחליף בין הערכים, אתה יכול פשוט לשמור את ה"מיקום" החדש של כל ערך (לדוגמה, אם החלטת שפעולה 4 צריכה להיות בהתחלה, אז זה אומר שבמקום 0 צריך להיות 4).

יש מבין?

חוץ מזה, הערה קטנה אך חשובה: תן שמות משמעותיים למשתנים שלך. tb ו-t הם לא שמות משמעותיים, כי מי שקורא אותם לא יכול להבין מה הם אמורים להביע.

  • תגובות 43
  • צפיות 4.1k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

זו הבעיה .. שאני לא יודע איזה פעולה צריכה להיות בהתחלה

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

אם אצטרך לעשות את הקוד כפי שעשיתי - אני נדרש מהקורס לעשות עד 10 ערכים

זאת אומרת 10 עצרת חישובים

זה מספר ענק מאוד של לולאות ותנאים.

אם יש שיטה של בדיקת מינימום בין 10 מספרים או לפחות יותר מ2 מספרים זה יקל מאוד....

או מיון בעזרת שמירה על ערכים מקבילים

ערך של פעולה 1 במכונה A ו B צריכות להישמר לאורך כל התוכנה

פורסם

איך הגעת ל10 עצרת?

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

פורסם
  • מחבר

זה הסיבוכיות חישוב..

אולי לא הבנת כל כך אבל אחרי שמצאתי את המינימום בכל הטבלה אני משבץ אותו

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

כל זאת על פי האילוצים שרשמתי קודם...

אם המינימום שייך למכונה A אז נשבץ בהתחלה

אם המינימום שייך למכונה B אז נשבץ בסוף...

אתה לא יכול לעזור לי אחי ?

פורסם

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

נניח שנייה שאין לך מחשב. יש לך ספר עם 100 עמודים, ובכל עמוד כתוב מספר. מישהו שואל אותך: "מה המספר הכי קטן בספר?"

איך תעשה את זה?

פורסם
  • מחבר

יחפש ידנית דף אחרי דף...

אם אני עושה כך בתוכנה אז יש לי מלא תנאים... כמו במה שכתבתי עכשיו....

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

פורסם

מה זה אומר "מחפש ידנית דף אחר דף"? תן לי אלגוריתם.

פורסם
  • מחבר

משווה בין כל שני מספרים מי הנמוך מביניהם וכן הלאה...

איך אני עושה את זה בקוד תוכנה זה הבעיה אח שלי!

פורסם

מה זאת אומרת "משווה בין כל שני מספרים"? הסתכלת על שני העמודים הראשונים, השווית בין שני המספרים. מה הלאה?

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

פורסם
  • מחבר

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

בוחר בערך אחר מתוך הטבלה, ובודק את אותו הדבר...

עד למציאת המספר המינימלי ומשבץ בהתאם לאלגוריתם.

הבעיה היא שהאלגוריתם הוא קל לחישוב ידנית ומסובך לתכנות.

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




[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]

פורסם

עזוב לרגע את הבעיה שנתנו לך!

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

תזכור את הכלים שיש לך. אתה יכול להשוות בין שני מספרים (באמצעות Math.Min או באמצעות האופרטורים < ו->), אתה יכול לשמור ערכים במשתנים, ואתה יכול לעשות לולאות.

פורסם
  • מחבר

אח שלי אני יודע ומכיר את השיטות הללו...

כנראה שאתה לא מבין את אלגוריתם ג'ונסון - שנינו באים מתחומים שונים..

אני בטוח שזה דבר פשוט בשבילך, אבל תבין לא כל הפשוט לך הוא הפשוט לאחר ולא כל הפשוט לי הוא הפשוט לך - כמו שאמרתי שנינו באים מתחומים שונים...

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

פורסם

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

נניח ש-t הוא מערך בגודל 10 שמכיל מספרים. תכתוב לי בבקשה קוד VB שמדפיס את המספר הקטן ביותר ב-t.

פורסם

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

דוגמה לכתיבת "קוד" במילים:

משווה בין האיבר השני לראשון

אם הראשון גדול יותר אז...

אם השני גדול יותר אז..

וכו'

פורסם
  • מחבר

Dim a(9),temp as integer

for i= to 9

for j = 0 to 8

if a(j) > a(j+1) then

temp = a(j)

a(j) = a(j+1)

a(j+1) = temp

next

next

msgbox(a(0))

אח שלי אני יודע איך לעשות

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

אם לדעתכם זה פשוט

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

ארכיון

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

דיונים חדשים