/ / טורבו פסקל. בעוד ... לעשות - לולאה מראש

טורבו פסקל. בעוד ... לעשות - לולאה מראש

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

פסקל בזמן

מושג המחזור והווריאציות שלו

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

  • עם הפרמטר (ל ... ל ... לעשות);
  • עם תנאי מוקדם (בעוד ... לעשות);
  • עם מצב תנאי (חזור ... עד).

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

מבנה מחזור

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

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

הלולאה הבאה נראית כך. פסקל ABC ותוכניות דומות מחייבות כתיבת קוד כזה:

  • בזמן מַצָב לַעֲשׂוֹת;
  • התחל
  • גוף המחזור;
  • סוֹף.

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

תרשים בלוק מחזור

הטורבו פסקל אמנם כולל את התכונות הבאות:

  • ניתן להשתמש בתנאים קשים בתוך המבנה;
  • לא אמור להיות פסיק אחרי המילה do (זה נחשב לשגיאה בטורבו פסקל ופסקל ABC);
  • משתנה, קבוע או ביטוי, שכאשר מתקבלת תגובה כוזבת, היא הפלט של תת-הרוטינה שלהם, הוא חייב להיות מסוג הגיוני, כלומר בוליאני.

להלן תרשים חסימת מחזור מסוג זה. זה מראה את רצף הפעולות.

abascal abc בזמן

אלגוריתם פעולת לולאה

בסביבות התכנות הפשוטות ביותר, כולל Pascal ABC, בעוד המחזור פועל על פי העיקרון הבא:

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

זהו הבדל משמעותי בין תוך כדי חזור, כלומר מחזור עם תנאי מקודם ממערכת post-conditioning.

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

איך לצאת מהתוכנית במהלך לולאה?

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

  • ואילו 2> 1 עושים;
  • כתוב (1).

במקרה זה, כדי להפריע למשימה, פשוט לחץ על CTRL + F2.

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

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

ואילו מפעיל פסקל

פתרון בעיות

שקול את לולאת While בפעולה.פסקל מציע לפתור את הבעיות המגוונות ביותר. בואו להתעכב על הפשוטים ביותר בכדי להבין את עקרון העבודה. נפתרו משימות בתוכנית Pascal ABC. אולם גם תמונות של סביבת הטורבו פסקל הקלאסית יוצגו להשוואה.

תרגיל 1: בהינתן הפונקציה Y = 5-X ^ 2/2. צור טבלת ערכים במרווחים של sh = 0.5 במרווח [-5; 5].

אלגוריתם של פעולות:

  • הגדר את המשתנה X לערך התחלתי של -5 (כלומר, תחילת המרווח);
  • לחשב את הערך של Y עד שהמשתנה x יגיע לסוף הקטע שצוין;
  • להציג את ערכי הפונקציה ואת האבסיסות (X);
  • הגדל את X בשלב מסוים.

כך נראה הקוד בפסקל ABC.

תוך כדי משימות פסקליות

איך נראה הקוד בטורבו פסקל. התמונה למטה ממחישה זאת.

תוך כדי משימות פסקליות

משימה 2: מערך נתון A, המורכב ממספר חיובי שלם ו-מספרים שליליים. הוא מכיל 10 אלמנטים. יש צורך ליצור מטריצה ​​B בה יוצגו האלמנטים החיוביים במערך A עם אינדקס אחיד. הצג את סכום המשבצות במספר מהמטריצה ​​החדשה.

אלגוריתם של פעולות:

  • יש צורך לכתוב תת-שיבוץ אשר "יעבוד" רק עם אלמנטים של מערך A עם אינדקס שווה. בלולאה, ערך המשתנה האחראי על שוויון המדד יגדל ב -2.
  • אם מספר עם אינדקס שווה ממטריצה ​​Aעומד בתנאי x> 0, ואז מונה האלמנטים של המערך גדל ב- 1. הערך הנוכחי של משתנה הדלפק יהיה האינדקס של המספר שיועתק במערך B.
  • בתחילה, מוקצה הסומה המשתנה, האחראית על מציאת סכום המשבצות של מספרים חיוביים, 0. לאחר מכן יבוצע הפעולה: ערך נוסף בריבוע יתווסף לסכום הקודם.
  • אל תפחד אם לא הכל חיוביהמספרים עברו ממטריצה ​​אחת לאחרת. אתה צריך להיות זהיר. מתכנתים רבים מתחילים משכתב קוד בבהלה. יש ללמוד את התנאי בקפידה: מספרים חיוביים שנמצאים אפילו "במקומות", כלומר שיש להם מדדים שהם כפולות של 2.

בעוד לולאת abc פזלית

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

בעוד לולאת abc פזלית

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