שאלה

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

BravoMan

Active member
האם אתה יודע להסביר לי מה המשמעות של 2 השורות האלה בקובץ PROCESS.BAS:
קוד:
2 DEF FNY (S, n, n1) = ABS(S(S, n, 1) - S(S, n1, 1)) = 1
3 DEF FNX (S, n, n1) = ABS(S(S, n, 2) - S(S, n1, 2)) = 1

כי על פניו זה נראה חסר משמעות, חסר הגיון, ולא נכון מבחינה לוגית ב-QBASIC.
 
ככל שאני זוכר, שתי הפונקציות האלה נועדו ללמד את המחשב למצוא קצוות של צורות שנוצרו בתוכנת הציור, שהיא חלק מהתוכנה הכללית, ולהגדיר אותם זה מול זה כדי לבדוק איפה קטע סגור של צורה מופרד מקטע סגור אחר. S זה המספר הסידורי של הצורה, N גבול אחד של חלק מהצורה, N1 הגבול הנגדי.
 

BravoMan

Active member
רק שאתה משתמש ב-S פעמיים במובנים שונים: S)S
לא בן אדם ולא מחשב יכול להבין למה התכוונת.

ומה זה מספרים 1, ו-2 ולמה כל העסק צריך להיות שווה ל-1?

בוא תנסה להסביר במילים את החשיבה שלך איך בדיוק מוצאים קצה של צורה.
 
בתוך ערכי תוכנה אפשר להשתמש באותו משתנה להגדרת שם מערך ותוכן מערך, אולי בפונקציה לא. המטרה פה למצוא איפה יש קו עקבי שמקביל או חותך קו עקבי אחר בתוך הצורה. N וN1 הם שני מקומות בצורה ברצף הנקודות כמו שצוירו, ואפשר להקביל ביניהם או להשיק. 1 ו 2 זה הממדים של המסך X ו Y שאליהם מגיעה הצורה בכל נקודה. כאשר שתי נקודות ממשיכות זו את זה, הרווח ביניהם 1. לזה יש שתי פונקציות בוחנות, האחת מכיוון X ואחרת של Y. כך המחשב יודע על הנקודה אם יש הקבלה או השקה ויכול למצוא חלקים סגורים בתוך הצורה זה לעומת זה.
 

BravoMan

Active member
בתוך ערכי תוכנה אפשר להשתמש באותו משתנה להגדרת שם מערך ותוכן מערך, אולי בפונקציה לא
מי אמר לך דבר כזה?
זה לא נכון!

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

בנוסף, n ו-n1 לא יכולים להיות "מקומות" על המסך, אלא אם כל אחד מכיל 2 קואורדינטות בו בזמן, גם X וגם Y.

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

אתה צריך להתחיל מהיסודות:
מיקום במסך - נקודה תמיד מוגדר ע"י 2 ערכים, X ו-Y.
קו מוגדר ע"י שתי נקודות, התחלה וסיום, וככה במינימום אנחנו צריכים X1, Y1 ו-X2, Y2.

אם אתה רוצה ללמד מחשב על קווים ונקודות כדי שהמחשב יוכל לבדוק אם 2 קווים מקבילים או חותכים, תתחיל מלתאר לו את המבנה הזה כך:

קוד:
TYPE point
    X as INTEGER
    Y as INTEGER
END TYPE

TYPE line
    DIM p(2) AS point
END TYPE

האם ברור לך הקוד שכתבתי?
 
N ו-N1 אינם מקומות על המסך, אלא חלק ברצף הצורה לפי הדרך שצוירה. בכל פעם שמתקדמים עם ציור הצורה לעוד נקודה מסוימת, המחשב רושם עוד ערך במערך של הצורה הזאת מבין הצורות האחרות, וזוכר איפה החלק ממוקם בשני ערכים של המשתנה בממד הבא במערך: 1-2, שאחד מהם X ואחר Y.
 

BravoMan

Active member
מה הוא "מערך הצורה"?
אני לחלוטין לא מבין איך אתה שומר צורות בזיכרון.
 
החלק הראשון בתוכנת PROCCESS הוא תוכנת ציור, שפועלת כך: יש מערך לכמה צורות שמצוירות על המסך. כשמציירים בקו רציף, המחשב זוכר אותו כצורה נפרדת. בכל פעם שמתקדמים עוד נקודה בציור הצורה, המחשב זוכר את הנקודה כחלק הבא ברצף שבתוך המערך המגדיר את הצורה, והוא מגדיר לו שני ערכים: 1 ו- 2, שהם המקומות על ציר האורך והרוחב שבהם נמצאת הנקודה. כשמנתקים את הקו ומתחילים לצייר במקום אחר, המחשב עובר להגדיר צורה אחרת. זה החלק העיקרי בתוכנת הציור, אבל יש גם חלק שבודק במערך אחר מה נמצא בכל נקודה על המסך כדי לאזן עם החלק שמוגדר לפי צורות. גורם חשוב בתוכנת PROCCESS זה שהיא יוצרת פונקציות, בכל אחד מחלקיה, והפונקציות מקושרות זו לזו. זה חלק מיצירת הבינה. גם החלק של מעבד התמלילים מיוחד כי הוא מתכנת את עצמו בדרך מקורית בעזרת מקרו מורכב של פעולות שמקשר בין הפעולות והכתיבה עצמה. התוכנה AI, לעומת זאת, מבוססת על המילון האנגלי אנגלי שיוצר כל הגדרה כתנאי ארוך, ומקשרת בין התנאים וכך יוצרת התקדמות חשיבה.
 

BravoMan

Active member
האם אתה יודע שכברירת מחדל מערכים ב-QBASIC מתחילים מ-0 ולא מ-1?
 
אפשר להציב ערך גם בתוך 0 במערך, אבל לא חובה. אפשר לכתוב ערכים בכל מקום שרוצים בתוך המערך, ואפשר גם להשאיר את חלקם ריקים. הסיבה שחשבתי שאפשר להשתמש באותו שם למערך ולמשתנה, היא שאפשר להשתמש באותו שם לערך מספרי ולערך מחרוזת, רק להוסיף $. גם אפשר ליצור שם מורכב מאותיות ומספרים.
 
נערך לאחרונה ב:
התוכנה AI מבוססת על מילון ביסיק אנגלי אנגלי של כחמש מאות מילים, שבו כל מילה מוגדרת בעזרת מילים פשוטות יותר שלפניה, והמילים הראשונים מוגדרות בעזרת ביסיק. היא מגדירה את המילים ויוצרת קובץ ארוך לכל הגדרה של מילה. הקובץ מכיל תנאי אחד ארוך, והיא מסדרת אותו כתנאי ברור. יש גם קובץ אם WW שבו פונקציות כמו לימוד פעולות בעזרת המשפט IF SHOULD והגדרת תכונת דברים בעזרת המלה CHARACTER, כאשר SHOULD זה CAN ONLY IF ו - CHARACTER זה TRUTH IN THING.. יש בו גם ערך מחדל X שמתייחסים אליו בלולאת ניחוש מספרי. את קובץ האם היא מצרפת להגדרות כשהיא מתקשרת בעזרתן. אחר כך יש תוכנת חשיבה שמקשרת בין תנאים בקבצים שונים וכך מתקדמת בהסקת מסקנות, ואחר כך תוכנת רגש פשוטה שמבוססת על הדדיות בתוך מערך, קודים נלחצים שקובעים מה לעשות, וקשר בין קובץ לבין קצה המערך או לפעמים חלק ממנו. יש בה גם פעולות כמו רצון בעזרת שכחה זמנית של חלק מהמערך, שיוצרת ניסיון לקשר חלקים אחרים לקובץ נבחר כמו קובץ המילון.
התוכנה PROCCESS מכילה 4 חלקים: תוכנת ציור שמבוססת על הגדרת צורות נפרדות על המסך, מעבד תמלילים מתוחכם שמתכנת את עצמו בעזרת מקרו מורכבים שמקשרים בין הפעולות והכתיבה, תוכנת חשיבה קצרה ומעבד נתונים. בכל חלק מאלה יש גם פונקציות שמגדירות משתנים ומצבים שונים ואפשר להגדירן כמו שרוצים בזמן ההרצה, והפונקציות בחלקים השונים משפיעות זו על זו ויכולות להשפיע על הבינה המלאכותית.
 

BravoMan

Active member
אתה אולי חושב שזה מה שהקוד שלך עושה, אבל בפועל זה לא באמת קשור למה שהקוד שלך עושה.

למעשה, כל ניסיון להריץ PROCCESS.BAS נגמר עם שגיאה לפני שקורה משהו, וזה משום שכבר בפעם הראשונה אתה מנסה לגשת לאיבר 1- במערך S שלא קיים.
(ספציפית, n1 = 0 ואז אתה עושה n1 - 1 ומקבל 1-)

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

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

זה כמובן לא עזר.

אז בוא נחזור להתחלה רגע:
האם אתה מבין את מבנה הנתונים שהצגתי לך, שמתאר למחשב מה זה קו ומה זאת נקודה?
 
ברור שאני יודע להגדיר למחשב נקודה וקו, אבל השיטה שלי בתוכנה הזאת עובדת על בניית צורות, אף שיש בה גם כמה משתנים שמגדירים את המסך לפי X ו- Y כדי להשלים את התרומה של נתוני הצורות. אני מדלג בעשר כדי שיהיה מקום להכניס עוד שורות במקרה שאגלה שצריך. ככה למדתי שנוהגים וכדאי וככה נוח לי. צריך מספרי שורות במקרה שיש GOTO או GOSUB. יש מערך S, כמו שאני מבין אתה טוען שצריך להגדיר אותו לפני הפונקציה שמתייחסת אליו . אני גם לא חורג בתוכנה מגבול 0. לכל צורה על המסך יש קטע מערך משלה, שתמיד מתחיל מאפס ונמשך עד החלק שהגיעו אליו בציור. בדקתי, השם N1 בתוכנה מתייחס רק לקורה בפונקציה ומתאר מקום היפותטי שיגיע בהמשך לאורך הצורה, ואין לו שום קשר להפחתה מאפס.
 
נערך לאחרונה ב:

BravoMan

Active member
לא שאלתי אם אתה יודע להגדיר למחשב נקודה וקו, שאלתי אם אתה מבין את הקוד הזה:
קוד:
TYPE point
    X as INTEGER
    Y as INTEGER
END TYPE

TYPE line
    DIM p(2) AS point
END TYPE

עכשיו עוד שאלה: למה בדיוק אתה קורא "נתוני צורה"?

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

שים לב שאתה לא חייב מספרי שורה כדי להשתמש ב-GOTO ו-GOSUB.
אתה יכול להשתמש בתוויות, שהן יותר מובנות:

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

לגבי מערך S: הבעיה היא לא אפה הוא מוגדר.
הבעיה היא שאתה מנסה לפנות לאיבר 1- במערך הזה, ואיבר כזה לא קיים, כי המערך הזה מוגדר להתחיל מ-0.
 
אני ממש לא מבין למה טענת שאני מנסה לפנות לאיבר -1. S מערך חשוב של צורות, כל צורה מתחילה מאפס ובנוסף יש כמה פונקציות שמתייחסות אליו בתחילת התוכנית. אני לא מכיר קפיצות בתוכנה שאינן עם GOTO או GOSUB. אני מתכנן בדרך כלל יותר את הרעיון הכללי איך תהיה בנויה ותפעל התוכנה, ואחר כך ניגש לבצע. הסיבה שיש הרבה מספרי שורות בין העשיריות היא שהאלגוריתמים נהיו יותר מסובכים משחשבתי כשנתגלה שצריך להוסיף עוד אלמנטים. כמו שניסיתי להסביר, התוכנה הגרפית ב PROCCESS מבוססת על צורות נפרדות שמצוירות על המסך. כשמציירים צורה בקו בלתי נפרד, נבנית צורה נפרדת בשבילו בזיכרון ומוגדרת כחלק נפרד במערך. התוכנה יכולה כמובן לעבור בין הצורות, אפשר גם לקחת צורה לערך 0 במערך ששם מעצבים אותה לפי פונקציות שונות ומחזירים למקום הקודם או למקום שרוצים, ויש גם כמה משתנים שבודקים בנפרד פרט מאיזו צורה נמצא בכל מקום במסך לפי X ו - Y.
N1 בשביל שתי הפונקציות האלה שבהתחלה הוא בסך הכול מקום מסוים אפשרי על פני קו הצורה. הפקודה TYPE לא ידועה לי, נדמה לי שהכרתי אותה בDOS. אשמח אם תלמד אותי גם איך עושים פונקציות קפיצה בין שורות בלי GOTO, אני מניח שיעזור לי בכמה דברים. ניסיתי עכשיו בביסיק שלי וראיתי שאפשר לתת אותו שם למערך ולערך, אולי בפונקציה לא.
 
נערך לאחרונה ב:

BravoMan

Active member
טענתי שאתה מנסה לפנות לאיבר 1- ב-S כי זה מה שקורה כשאני מריץ את קובץ PROCESS.BAS ששלחת לי פה בפורום בתוכנת QBASIC.
זה מה שהקוד שלך עושה.

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

למשל:
קוד:
IF x < 0 THEN GOSUB NEGATIVE
...
SUB NEGATIVE
    PRINT ASB(X)
END SUB

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

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

הסרטון די קצר, אז אני מקווה שתסתדר איתו.

בהצלחה!
 
אשמח ללמוד עוד פקודות, אבל אני בינתיים משתמש בפקודות הפשוטות בשכל ואמנם לפעמים הן לא עובדות אבל הרעיון מצליח והאלגוריתם קיים. אצפה בסרטון בהזדמנות. בינתיים אשמח אם תנסה לעבור על התוכנות שלי כי אני חושב שהן טובות ויש בהן הרבה פוטנציאל. אני רק מקווה שהסרטון לא באנגלית בלי תרגום. אגב, אם אתה מתכוון שהסברוטינה תת תכנית שנכתבת בנפרד, איך אוכל לחזור אליה כל פעם לראות מה כתבתי בה? אני גם לא בטוח שהפקודה הזאת מתאימה לתוכנה שלי כי התוכנה מבוססת על שיטה של בניית צורות ומעקב אחרי הציור שלהן. אולי אפשר בערך כך:
DIM SHAPE(10,3) 10
REM 10 SHAPES. DATA: 1=Y OF POINTS, 2-X OF POINTS,3=COLOR OF POINTS

20 (DIM SCREEN(24,80)
REM WHAT SHAPE HAS PART IN EVERY PLACE IN SCREEN

30 (DIM P(10
REM CONTINIUING PLACE INSIDE SHAPE

40 LASTCOLOR=COLOR:INPUT COLOR

50 input y1,x1

REM MOVE
60 X=X+X1:Y=Y+Y1

70 IF X1=0 AND Y1=0 THEN GOTO 50

80 IF LASTCOLOR=0 AND COLOR>0 THEN S=S+1
REM S=NUMBER OF SHAPE

90 IF SCREENׂׂ(Y,X)<>S THEN GOSUB PAINT

PAINT

P(s)=P(ֹSּׁׁׂ)+1
shape(p,(s),2)=Y
SHAPE(P(S),1)=X:
SHAPE(P(S,2),3)=COLOR:
SCREENׂ)Y,Xׁׁ)=S

END SUB
 
נערך לאחרונה ב:

BravoMan

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

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

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

לגבי subrutine זה מאוד פשוט:
אתה לוחץ F2, ואתה רואה רשימה מסודרת של כל ה-subrutine שיצרת ויכול לעבור בניהם.
או, אם העכבר, אתה הולך לתפריט View->Subs.

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

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

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

בהצלחה!

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

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

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

לגבי subrutine זה מאוד פשוט:
אתה לוחץ F2, ואתה רואה רשימה מסודרת של כל ה-subrutine שיצרת ויכול לעבור בניהם.
או, אם העכבר, אתה הולך לתפריט View->Subs.

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

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

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

בהצלחה!

נ.ב.:
סתם מתוך סקרנות - אם אינך יודע אנגלית ברמה מספיק טובה להבין סרטון פשוט, איך אתה מצפה ללמד את המחשב אנגלי
לימדתי את המחשב 500 מלים פשוטות ובסיסיות. אנגלית שפה מאד עשירה ויש בה המון מלים שחסרות לי. אני יכול לדבר אנגלית אבל למשל לקרוא אנגלית קשה לי. באמת הבחנתי בשגיאה חמורה: במקום אחד צריך להיות COLOR>0 ולא שווה. חבל אם לא תוכל לעזור לי עוד, אולי נוכל להמשיך לבדוק את התוכנות בהדרגה ולהציע רעיונות. ברור שהקוד קורס לך, כי יש ערך SCREEN וזה שם של פקודה,, המטרה הייתה רק להמחיש שמדובר במסך ואפשר לקרוא לזה SCR.
לצערי, כרגע לא אוכל לעזור לך יותר, כי אני לא מבין את הקוד שלך.
עד כמה שאני יכול לראות, הוא לא באמת עושה את מה שאתה מתאר, והוא גם לא יכול לעבוד כי הוא מלא שגיאות - כל פעם שאני מנסה להריץ אותו, הוא קורס.

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

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

לגבי subrutine זה מאוד פשוט:
אתה לוחץ F2, ואתה רואה רשימה מסודרת של כל ה-subrutine שיצרת ויכול לעבור בניהם.
או, אם העכבר, אתה הולך לתפריט View->Subs.

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

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

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

בהצלחה!

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