פורסם 2005 בספטמבר 220 שנים כנראה אני אלמד בבצפר פסקל השנה אז החלטתי להקדים.. בכל אופן כשאני מריץ את הקובץ המהודר של הקוד הבא אני מקבל Syntax Error.זה הקוד:Var Xxx: integer;Begin For Xxx:=0 to 10 do Begin WriteLn('Loop number ',Xxx); End;End.מה הבעיה בקוד?
פורסם 2005 בספטמבר 220 שנים מהי בדיוק ההודעה שאתה מקבל? באיזו שורה?כתבת לפני קטע הקוד הזה Program SomeName; ?
פורסם 2005 בספטמבר 220 שנים מחבר מהי בדיוק ההודעה שאתה מקבל? באיזו שורה?כתבת לפני קטע הקוד הזה Program SomeName; ?לא רשום לי שורה. וכן רשמתי את זה ולא עזר.אני פשוט מקבל: Syntax Error.מוזר... כששיניתי את השם של הקובץ זה עבד. יש למישהו מושג למה?
פורסם 2005 בספטמבר 220 שנים הקודProgram MyProg;Var Xxx: integer;Begin For Xxx:=0 to 10 do Begin WriteLn('Loop number ',Xxx); End;End.מתקמפל ורץ ללא שום שגיאה. תבדוק שאתה מעתיק אותו בדיוק.
פורסם 2005 בספטמבר 220 שנים אם אני לא טועה וסיימתי עם השפה הזאת לפני כמה חודשים אז For xxx=0 to 10 doאני חושב שבFOR לא צריך להיות נקודותיים..
פורסם 2005 בספטמבר 220 שנים מה זאת אומרת לשמור כ exe?את קובץ המקור תשמור בכונן C למשל כקובץ pas (למשל MyProg.pas). אותו אתה מקמפל לקובץ exe.עם איזה קומפיילר אתה עובד?
פורסם 2005 בספטמבר 220 שנים מחבר מה זאת אומרת לשמור כ exe?את קובץ המקור תשמור בכונן C למשל כקובץ pas (למשל MyProg.pas). אותו אתה מקמפל לקובץ exe.עם איזה קומפיילר אתה עובד?טורבו פסקל 7... אני מתכוון שאם אני מקמפל בתור שם של if או for הוא לא מריץ את הקובץ.ויש לי עוד בעיה בקוד הבא:Program ClearScreen;Uses Crt;Var LastKey: Char;Begin WriteLn('Click ''c'' button to clear the screen, Or ''x'' to exit.'); ReadLn(LastKey); Repeat If (LastKey='c') Or (LastKey='C') Then Begin ClrScr; ReadLn(LastKey); End Else Begin WriteLn('You pressed: ', LastKey); End; Until (LastKey='x') OR (LastKey='X');End.אני רוצה שאם אני לוחץ על כפתור אחר שהוא לא x או c אז זה ירשום אותו פעם אחת ולא מיליון פעם כמו עכשיו. איך אני עושה את זה?
פורסם 2005 בספטמבר 220 שנים בקשר לקטע האחרון:א. בקשר לשגיאה, אתה צריך לתחום כל תנאי בסוגריים.ב. במקרה ולא הוקש c (או C) הדפסת הודעה מתאימה אבל לא קלטת מחדש תו, ככה שהייתה נוצרת לולאה אינסופית. אתה צריך לקלוט בתחילת כל איטרציה (סבב) של הלולאה. אין גם צורך בהוראת ReadLn נוספת לפני הלולאה.ג. שכחת את משפט ה Until שמסיים את הלולאה ומציין את הלולאה. לא היה לך תנאי לסיום הלולאה ככה שהיא הייתה אינסופית. הוספתי בדוגמה שמתחת תנאי שכאשר תוכנס האות q הלולאה תסתיים.ד. כעת כאשר יש הוראה אחת בתוך בלוק ה If וה Else אין צורך ב Begin ו End נוספים. כאשר ישנה שורה אחת בתוך ה If ואחריו בא Else לא צריך גם ;הקוד הבא מתקמפל ועובד:Program ClearScreen;Uses Crt;Var LastKey: Char;Begin WriteLn('Click ''c'' button to clear the screen or ''q'' to quit'); Repeat ReadLn(LastKey); If (LastKey='c') or (LastKey='C') Then ClrScr Else WriteLn('You pressed: ', LastKey); Until LastKey='q';End.
פורסם 2005 בספטמבר 220 שנים מחבר תודה רבה! אבל יש לי שאלה, למה בתנאי לא שמת Begin ו-End? ואני צריך עזרה בעוד משהו.. לפי מה שהבנתי הקוד הבא אמור למחוק את התיקיה אבל אני מקבל שגיאה. זה הקוד: Program DelDir;Begin RemoveDir('C:\Just'); WriteLn('C:\Just has been deleted.');End. זאת השגיאה שאני מקבל כשאני מנסה להדר: Required Parameter missing. השורה מדברת על שורת המחיקה.
פורסם 2005 בספטמבר 320 שנים לא צריך Begin ו End כאשר יש לך שורה אחת בבלוק קוד. זה נכון לתנאים ולולאות למשל. אם בהוראות לביצוע (למשל בגוף הלולאה) ישנה רק שורה אחת, אין צורך ב Begin ו End.בקשר למחיקה של התקייה, תנסה להשתמש בפרוצדורה RmDir במקום ב RemoveDir.
פורסם 2005 בספטמבר 420 שנים אם אני לא טועה וסיימתי עם השפה הזאת לפני כמה חודשים אז For xxx=0 to 10 doאני חושב שבFOR לא צריך להיות נקודותיים..לולאת FOR מציבה מספר במשתנה לפי הקוד.כמו שניתן לראות הקוד (לדוגמא) for i:=1 to 10 do, ה i:=1 היא פעולת הצבהאשר בה התוכנה מציבה את הספרה 1 במשתנה I.אם תפעיל את הWATCH בפסקל, ותעבור פקודה פקודה בF7 תשים לב שכאשר תעבוראת שורת הFOR, במשתנה I יוצב הערך 1.לכן בכתיבת הקוד ב-FOR כן יש נקודתיים.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.