מחשביםתכנות

תכנות. יסוד ומבנים אלגוריתמיים

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

אלגוריתם

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

טופס מוקדם של כתיב אומץ - "אלגוריתם". עכשיו הוא משמש רק במקרים מסוימים.

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

סוגים של אלגוריתמים

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

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

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

מאפיינים של אלגוריתמים

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

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

מה מאפיינים חייבים להיות בעל עיצוב אלגוריתמי בסיסי לעבודת דיוק מקסימלית?

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

תיאור של אלגוריתמים

אם אנחנו מדברים על איך לכתוב אלגוריתמים, כדאי להדגיש את התכונות הבאות:

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

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

עיצוב אלגוריתמי

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

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

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

יצירת לולאות והסוגים שלהם

מה נדרש כדי ליצור לולאה?

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

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

האלגוריתם הבסיסי

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

אלגוריתמים ליניארי

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

דוגמא אלגוריתם ליניארי יכולה להיות תהליך של הכנת התה:

  1. יוצקים מים בקומקום.
  2. שים את הקומקום על הכיריים.
  3. קח את הספל.
  4. יוצקים לתוך כוס תה.
  5. מוסיפים את הסוכר.
  6. לאחר הרתיחה מים חמים זרמו לתוך הספל.
  7. קח כפית.
  8. מערבבים סוכר.

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

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

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

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

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

דוגמא אלגוריתם כזה עשויה להיות הפתרון לבעיה הבאה: אם הביטוי ((x + 3) / 1) שווה למספר חיובי, ולאחר מכן להציג את התוצאה על המסך, אם שלילי - ליידע את המשתמש על השגיאה.

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

מחזור דטרמיניסטי או ממחזור מרשם

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

לתוכנית כדי להציג שתי שורות 4 פעמים:

  1. "מה שלומך?"
  2. "ובכן, תודה!"
  3. "מה שלומך?"
  4. "ובכן, תודה!"

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

1. כי אני: = 1 עד 2 לעשות:

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

2. בגין (סוגר מסולסל פתוח לשני המשפטים הוא מחזור הגוף חוזר ביחד.)

3. Writeln ( 'מה שלומך?'):

- פירוש המלה ביטויי מסקנת writeln להיות במרכאות יחידות.

4. Writeln ( 'פיין, תודה').

5. סוף.

6. אני: = i + 1.

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

מחזור עם postcondition

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

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

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

מחזור עם postcondition בנוי בצורה כזאת שהוא מתבצע לפחות פעם אחת בכל מקרה. עם זאת, ישנם מקרים שבם המחזור נדרש במקרה של מצב, ולא צריך להתבצע בהעדר הישן. אחרת, התוצאה תהיה שגויה. זה במקרה זה לולאה עם תנאי. כדי ליצור את העיצוב הכרחי «בעוד לעשות B». הצוות הראשון מתורגם מילולית כמו "ארוך." א '- תנאים, וכן - פעולות זה יחזור על עצמו. העיצוב כולו אומר "עד שהמצב נכון, לבצע פעולה."

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

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

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 iw.birmiss.com. Theme powered by WordPress.