פסקל: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
Steeve815 (שיחה | תרומות)
אין תקציר עריכה
שורה 5:
 
==חלק הצהרתי==
כל תוכנית פסקל מתחילה במילה program. מילה זו היא לא חובה, אין לה משמעות מבחינת המחשב והמחשב מתעלם ממנה בפענוח הקוד. מילה זו מגדירה למהדר שתוכנית זאת היא תוכנית פסקל. על מנת להתחיל תוכנית שאיננה תוכנית פסקל, אפשר, להשתמש במילה asm כדי לציין שמדובר בשפת סף - שפת אסמבלי. לאחר המילה יופיע רווח ולאחריו שם התוכנית המתחילה באותיות קטנות או גדולות וקוים תחתונים. בפסקל אין חשיבות לגודל האותיות בשמות '''משתנים''', שמות '''קבועים''', שמות '''פונקציות/פרוצדורות'' וכדומה) (אותן נגדיר בהמשך בערכים ייחודיים להם). בשם התוכנית הופעת מספרים היא חוקית כל עוד היא לא נעשית בתחילת השם. בנוסף לכך, אין להשתמש ברווחים בשם התכנית. לאחר השם יופיע נקודה-פסיק (";"), המכריז שחלק זה נגמר. לחלק של הנקודה פסיק קוראים "סוף- הפקודה" (end of command). בשפות אחרות יכולים להופיע סימנים אחרים. פסקל מתעלם מירידה שורה הנעשית על-ידיעל־ידי כפתור ה-enterה־enter (אנטר). אנחנו משתמשים בכפתור זה לנוחיותנו ולסידור (יישור) הקוד המכונה בשם "הזחה".
 
 
{{ltr
שורה 14 ⟵ 13:
כל תכנית בנויה על הבסיס הבא:
 
<sourcesyntaxhighlight lang="pascal">
Program name;
Var
שורה 25 ⟵ 24:
{.הערות שוליים ניתן לכתוב בתוך סוגריים מסולסלים}
End.
</syntaxhighlight>
</source>
 
ה- variableה־variable הוא שם המשתנה הייחודי וה- variable_type זה סוג המשתנה.
 
סוגי משתנים נפוצים:
*'''integer''' - מספר שלם (מהמספר 32768- עד 32768).
*'''real''' - מספר ממשי (מספרים רציונליים וכן מספרים אי-רציונלייםאי־רציונליים).
*'''char''' - תו (כל תו המופיע על המקלדת).
*'''string''' - מחרוזת (מורכבת מעד 256 תווים).
*'''boolean''' - בוליאני (אמת\/שקר-true\/false)
 
==הצבה==
לשם הצבת ערך בתוך משתנה יש לבצע מספר שלבים:{{ש}}
 
לשם הצבת ערך בתוך משתנה יש לבצע מספר שלבים:{{ש}}
#רושמים את שם המשתנה '''אליו מכניסים ערך'''.
#רושמים נקודותים (:), ולאחריהן שווה (=).
#רושמים את הערך שרוצים להכניס לתוך המשתנה.
#כהרגלנו בקודש, שמים נקודה פסיק (;) בסוף הפקודה.
 
<BR>
''';הערות''':
* משתנה יכול לקבל רק רק ערכים שהם מאותו הסוג שלו! יוצא הדופן היחיד לכלל זה, הוא שמשתנים מסוג ממשי (real) יכולים לקבל גם ערכים שלמים (integer).
* חל איסור מוחלט להכניס ערך למשתנה, כאשר אלו אינם מאותו הסוג. במקרה כזה התוכנית לא תהודר, ויהיה צורך לבצע תיקונים.
* במידה ומשתמש יכניס כקלט ערך לא תקין, התוכנית תיעצר ועל המסך תתקבל שגיאה.
* לגבי ערכים מסוג '''תו''' (char) או '''מחרוזת''' (string): כאשר מציבים ערך מסוים בתוך משתנה מאחד הסוגים הללו, יש לשים בתחילתו ובסופו גרש אחד. דוגמה:<BR>
{{קוד|1=str:='Have a nice day.';}}
 
==קלט ופלט==
הפעולות הבסיסיות ביותר בפסקל הן פלט (הדפסת נתונים על מסך המשתמש) וקלט (קריאת נתון ע"יעל־ידי המשתמש).{{ש}}
 
פלט נעשה באמצעות פקודת write או writeln (ההבדל – writeln יגרום לכך שלאחר שיודפס הערך, הערך הבא יכתב בשורה מתחתיו, כלומר, הוא "יורד שורה").{{ש}}
הפעולות הבסיסיות ביותר בפסקל הן פלט (הדפסת נתונים על מסך המשתמש) וקלט (קריאת נתון ע"י המשתמש).
פלטקלט נעשה באמצעות פקודת writeread או writelnreadln (אותו ההבדל - writeln יגרום לכך שלאחר שיודפס הערך, הערך הבא יכתב בשורה מתחתיו, כלומר, הוא "יורד שורה").{{ש}}
לאחר פקודת קלט או פלט יש להציב סוגריים ולכתוב בתוכן את הערך.{{ש}}
קלט נעשה באמצעות פקודת read או readln (אותו ההבדל).
במידה והערך שמודפס בפלט הוא יישומי בלבד באותה הפקודה (ולא ערך), יש להציבו בתוך גרשיים.{{ש}}
לאחר פקודת קלט או פלט יש להציב סוגריים ולכתוב בתוכן את הערך.
במידה והערך שמודפס בפלט הוא יישומי בלבד באותה הפקודה (ולא ערך), יש להציבו בתוך גרשיים.
בין שני ערכים שמודפסים\נקלטים יש להציב פסיק.
 
לאחר פעולת פלט או קלט, כמו לאחר כל פקודה בפסקל, יש להציב נקודה-פסיקנקודה־פסיק.
 
דוגמה לפעולות קלט\/פלט פשוטות (כקטע מתכנית):
{{קוד|1=
writeln('enter value');
שורה 77 ⟵ 74:
 
==חילוק ושארית במספרים שלמים==
בפסקל אין לחלק מספרים שלמים באמצעות פעולת החילוק הרגילה והיא חלה רק על מספרים ריאליים מתוך יציאה מנקודת מבט שכל חילוק היא פעולה ריאלית שיכולה להסתיים בשבר.{{ש}}
 
לכן, יש להשתמש בחילוק שלם - div (קיצור של division), שמותיר את השארית ומשאיר אותנו עם ערך שלם.{{ש}}
בפסקל אין לחלק מספרים שלמים באמצעות פעולת החילוק הרגילה והיא חלה רק על מספרים ריאליים מתוך יציאה מנקודת מבט שכל חילוק היא פעולה ריאלית שיכולה להסתיים בשבר.
לכן, יש להשתמש בחילוק שלם - div (קיצור של division), שמותיר את השארית ומשאיר אותנו עם ערך שלם.
הפעולה ההפוכה של div היא mod, שנותנת לנו את השארית מפעולת החילוק.
 
דוגמה לשימוש בפעולות חילוק ושארית במספרים שלמים:
{{קוד|1=
שורה 94 ⟵ 91:
end.
}}
במקרה ונקלטשנקלט 4, יוצג
{{קוד|1=
enter a number
שורה 101 ⟵ 98:
0
}}
במקרה ונקלטשנקלט 5 יוצג
{{קוד|1=
enter a number
שורה 110 ⟵ 107:
 
==עיצוב הדפסה==
עיצוב הדפסה משנה את הדרך בה המידע מודפס על המסך, ולכן הוא בשימוש רק בפקודות פלט.{{ש}}
לאחר הערך, ניתן להציב נקודותיים ולקבוע את המספר של הרווחים שתצור התוכנית לאחר הצגת הערך על המסך.{{ש}}
נקודותיים נוספות יתנו אופציה לקבוע (בערך מספרי ריאלי, כמובן) כמה ספרות לאחר הנקודה העשרונית יוצגו. כך שולטים על רמת הדיוק של הפעולות החשבוניות של התכנית מבלי לפגוע בערך עצמו ומבלי לשמור את הערך המתקבל.
 
לדוגמה, קטע מתכניתהתוכנית:
עיצוב הדפסה משנה את הדרך בה המידע מודפס על המסך, ולכן הוא בשימוש רק בפקודות פלט.
לאחר הערך, ניתן להציב נקודותיים ולקבוע את המספר של הרווחים שתצור התוכנית לאחר הצגת הערך על המסך.
נקודותיים נוספות יתנו אופציה לקבוע (בערך מספרי ריאלי, כמובן) כמה ספרות לאחר הנקודה העשרונית יוצגו. כך שולטים על רמת הדיוק של הפעולות החשבוניות של התכנית מבלי לפגוע בערך עצמו ומבלי לשמור את הערך המתקבל.
לדוגמה, קטע מתכנית:
{{קוד|1=
writeln(num/2:2:1, num);
שורה 124 ⟵ 121:
 
==התניה פשוטה==
 
ההתניה בפסקל מתבצעת באמצעות פקודת "if", לאחריה התנאי, שבמקרה שמתבצע יבוצע מה שבא אחרי המילה "then", ואם לא יבוצע (לא חובה) יבוצע else.
בפקודת if לא משתמשים רק בערכים מספריים, כי אחרת הכל ידוע מראש ואין סיבה להשתמש בהתניה (לדוגמה, "אם 0 קטן מ3 אזי בצע..").
שורה 145 ⟵ 141:
1. הסימן <>.
2. המילה NOT, שבאה בנוסף למילים כמו OR ו AND. (פירוט בטבלת אופרטורים במדריך הפקודות בקישורים החיצוניים.)
 
 
==לולאות==
שורה 153 ⟵ 148:
for i 1 to 5 do
}}
כש ה i הכונה למשתנה המגדיר את הלולאה כל פעם ה i יהיה =ל פעם שהלולאה מתבצעת בפעם הראשונה 1 וכן האלה ה for הוא שם הפקודה ה1 הוא התחלת הספירה ה to מיצג את ה"ל" ה 5ה־5 את כמות הפעמים וה doוה־do הכונה בצע יש להגדיר את i בהגדרת התאים כ Iכ־I:integei
אחרי הגדרת ה forה־for יש לפני הפקודות לכתוב את המילה השמורה begin ובסוף הלולאה לכתוב end . חשוב אם ; ולא אם . כמו בסוף תוכנה רגילה.
 
לולאת whilt..do היא לולאה יותר גמישה מי כיון שבאפשרותה להעריך את הביצוע אם נתונים לא מוגדרים לולאה זו תעבוד אין סוף פעמים כל עוד תנאי כל שהוא מתקיים כגון a > b וכדומה הלולאה תיכתב כך
{{קוד|1=
whilt a > b do
שורה 169 ⟵ 164:
until a > b
גם פה חובה להגדיר את שני המשתנים אבל זה לא יפריע לפעם הראשונה של הלולאה להתבצע
 
 
==פונקציות בנויות==
 
פונקציות מחזירות ערכים '''ואינן פקודה'''. כדי להשתמש בפונקציות שבנויות בפסקל, יש לכתוב את שם הפונקציה ואחריה זימון.
הזימון בפוקנציות הבנויות הוא הערך שבו הפונקציה משתמשת כדי להחזיר את הערך המבוקש. אם, לדוגמא, שם הפונקציה המובנית הוא trunc (קיצוץ המספר לשלם), והערך הוא 6.4 יש לזמן כך (כדי שיוצב לתוך NUMBER שלם):
שורה 186 ⟵ 179:
* [http://uploaded.fresh.co.il/2004/04/24/977741.doc] טבלת פקודות בפסקל.
* [http://upload.wikimedia.org/wikibooks/he/b/b2/%D7%A4%D7%A1%D7%A7%D7%9C_-C.pdf] טבלת השוואה בין פקודות פסקל לשפת C.
'''-שכחתי להוסיף שם שלפני הצהרת המשתנים יש להוסיף var. (בטבלת ההשוואה)'''
 
[[קטגוריה:פסקל|*]]
[[קטגוריה:שפות תכנות]]
[[קטגוריה:שפות מהודרות]]
 
[[en:Pascal Programming]]
[[de:GNU-Pascal in Beispielen]]
[[es:Programación en Pascal]]
[[fr:Programmation Pascal]]
[[it:Pascal]]
[[ko:파스칼 프로그래밍]]
[[nl:Programmeren in Pascal]]
[[pl:Object Pascal]]
[[pt:Pascal]]
[[uk:Pascal]]