חיפוש באתר

סוגים בסיסיים ודוגמה של אלגוריתמים מחזוריים

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

הרעיון של אלגוריתם

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

אלגוריתמים מחזוריים

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

סוגי אלגוריתמים מחזוריים

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

מחזור עם תנאים מוקדמים

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

שקול את התפוקה של מספרים מ -5 עד 0 כדוגמה של אלגוריתמים מחזוריים עם תנאי מוקדם:

דוגמה של אלגוריתמים מחזוריים
אלמנטים של האלגוריתם:

  1. הגדר את הערך ההתחלתי של משתנה הבסיס j ל -5.
  2. אנו בודקים את מצב המחזור. המצב הוא חיובי, ואת הגוף לולאה מבוצע בפעם הראשונה.
  3. לאחר מכן אנו מוסיפים 1 למשתנה j, אנו בודקים שוב את מצב המחזור.
  4. לולאה ממשיכה לרוץ כל עוד הערך של j הוא פחות או שווה לאפס, אחרת אנחנו יוצאים לולאה על ענף FALSE

מחזור עם פוסטקונדייון

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

ננתח את החישוב של הסכום בין 1 למספר n כדוגמה של אלגוריתמים מחזוריים שבהם נעשה שימוש בתרמיל הבא:

אלגוריתם הוא אמר להיות מחזורי אם

  1. אנו נכנסים למספר סופי של חישוב הסכום n ומציבים אפס ערכים ראשוניים של הסכום הכולל ואת הדלפק של המחזור i.
  2. הלולאה מבוצעת לפני בדיקת התנאי הראשונה.
  3. אנו בודקים את מצב הלולאה, כלומר הערך של הדלפק i קטן או שווה ל - n.
  4. אם התוצאה של המצב היא חיובית, אנו מבצעים את הלולאה שוב, אחרת אנחנו מסיימים את הלולאה ומדפיסים את הסכום על המסך או על ההדפסה.

מחזור ללא תנאי

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

אלגוריתם כזה מכיל שלושה מרכיבים מחייבים:

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

מהו אלגוריתם מחזורי

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

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

חישוב העובדתי

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

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

דוגמה של אלגוריתמים מחזוריים
שקול את האלגוריתם בצעדים הבאים:

  1. האלגוריתם קיבל את נתוני המספר, אשר יש צורך לחשב את המצע.
  2. המשתנה המשתנה, שבו התוצאה הסופית מאוחסנת, מוקצה לערך אחד.
  3. אנו מארגנים את הלולאה עם הפרמטר i והערך ההתחלתי 1. הערך הסופי הוא נתוני המספר הראשוני. כאשר הערך של i הוא גדול יותר, הלולאה מסתיימת.
  4. מעגל חישוב החישוב מבוצע - הערכים הנוכחיים של הפקטורלי והכונתי הם מוכפלים.
  5. לערך הדלפק יש להוסיף יחידה, לבדוק את מצב הלולאה, ואם התוצאה חיובית, אנו מסיימים אותה.
  6. לאחר האיטרציה האחרונה של הלולאה, הערך של הנתונים העובדתיים! נשארת מעובדת ומוצגת או מודפסת.
</ p>
  • דירוג: