- מָקוֹר
- מאפיינים
- תורת תכנות מובנית
- מבני בקרה
- רצף או מבנה ליניארי
- מבנה החלטה או חלופות
- לולאה או מבנה חוזר בשאלה ראשונית
- לא תלוי בשפת התכנות
- דוגמאות תכנות מובנות
- סדר פעולות
- חזרה
- בְּחִירָה
- תכנות מובנית ב- Visual Basic
- סדר פעולות
- חזרה
- בְּחִירָה
- יתרון
- תוכניות ברורות יותר
- הבנה נוחה
- חסרונות
- אותו קוד חזר על עצמו
- זה מסורבל לשנות סוגי נתונים
- יישומים
- טיפול בחפצים
- הפניות
תכנות מובנה הוא הוראה בעיצוב ובנייה של התוכנה, על מנת לנהל את המורכבות יותר, לוקח בחשבון את הייחוד של המחשבה האנושית. כל תוכנית מבוססת על אלגוריתם ויכולה להיות מיוצגת על ידי סכמת לוגיקה.
זה נבע מהמורכבות הגוברת של תוכניות ממוחשבות. זה הפך לתכנת תכנות חדשה שיצרה טכניקות חדשות בכדי להיות מסוגלות להפיק תוכניות שבטוחות להפעלה לאורך זמן.
מבנה ההחלטה ומבנה הרצף בתכנות מובנית. מקור: I.hidekazu CC BY-SA (httpscreativecommons.orglicensesby-sa4.0)
בזכות ההתפתחות המהירה של עיבוד נתונים ממוחשב, בסוף שנות השישים ניתן היה לפתור בעיות מורכבות יותר ויותר. עם זאת, הבנה, ניפוי ושינוי של תוכניות אלה הציגו קשיים שהפכו אותם לא אמינים.
לתוכנות המחשבים הגדולות שנעשו לבעיות אלה היו קודי מקור כל כך ארוכים ולא מובנים עד שהפכו מורכבים למדי לגישה וניווט עם הגיון כלשהו, אפילו עבור המחברים שלהם.
מָקוֹר
מתכנתים השתמשו בפקודה "goto" בשפות תכנות כדי לבצע הסתעפות מותנית, מה שהוביל לעתים קרובות לקריאות והקשר הגיוני לא נשמר.
באותו משבר תוכנה, התחלנו לשקול האם ניתן לפתח שיטתית כללית וממושמעת המאפשרת תוכניות מעודנות יותר. כתגובה לגישה זו נולדה שיטת התכנות המובנית.
בשנת 1968 פרסם דיקסטרה את המאמר "Goto, הפיקוד נחשב כמזיק", שם ציין כי השימוש חסר הבחנה בפקודה זו השפיע לרעה על הקריאות וההבנה של תוכנות מחשב.
ניקלאוס וירט עיצב שפת תכנות חדשה, בשם פסקל, שיצא בשנת 1970. מאז נעשה בה שימוש נרחב בכדי ללמד את העיצוב של תכנות מובנית.
מאפיינים
מצב תכנות זה מאופיין בכך שמתכנתים יכולים לפצל את קוד המקור של התוכניות שלהם לבלוקים בעלי מבנה לוגי, המורכבים מלולאות, בלוקים לוגיים ופקודות מותנות.
המטרה של תכנות מובנית היא ליצור תוכניות שקל לכתוב, לבצע ניפוי באגים ושינוי. התוכניות המתקבלות ברורות, מסודרות, מובנות, ללא קפיצות.
תורת תכנות מובנית
דיקסטרה המציא תיאוריה שקשורה לתכנות מובנית, שהצביעה כי בעת תכנון של תוכנית כלשהי, נוח לקחת בחשבון את היסודות הבאים:
משפט המשפט המבני, הקובע כי ניתן להרכיב כל תוכנית באמצעות שלושה מבני בקרה חיוניים בלבד: מבנה רצף, מבנה חלופי ומבנה חוזר.
- כאשר מתארים את התוכניות, הוא מוזמן ליישם את הטכניקה היורדת, הנקראת גם מלמעלה למטה.
- יש להגביל את טווחי התוקף והנראות של משתנים ומבני נתונים.
מבני בקרה
משפט המבנה מציין כי כל אלגוריתם עם נקודת התחלה וסיום יחידה יכול להרכיב כהרכב של שלושה מבני בקרה.
על ידי תכנות בצורה הגיונית וברורה של מבני בקרה נתמכים אלה, תכנות מובנית מאפשרת גישה יעילה לפונקציות עם כל דרגת קושי.
רצף או מבנה ליניארי
מבנה זה הוא פשוט רצף או רצף של שתי פעולות או יותר פקודות או יותר.
מבנה החלטה או חלופות
זוהי בחירה של פקודה בין שתי חלופות אפשריות. מותר גם לבחור בין יותר משתי אלטרנטיבות.
לולאה או מבנה חוזר בשאלה ראשונית
פקודות מסוימות חוזרות על עצמן כל עוד מתקיים תנאי מסוים. ניתן לבצע את המחזור גם עם מונה.
לא תלוי בשפת התכנות
תכנות מובנית מבוססת על מודולים פונקציונליים מוגדרים היטב, המדורגים בהתאם לאופי הספציפי של הבעיה. תכנות זו היא שיטה עצמאית של שפת התכנות, והיא פועלת יותר כמו סגנון תכנות.
זוהי דרך לתכנן תוכניות העוקבות אחר כללים מבוססים, תוך שימוש בסט מסוים של מבני בקרה לשם כך.
תכנות מובנית מאפשרת לכתוב תוכניות בפאודוקוד, ללא קשר לשפת המכונה, קרוב לטבעי, ניתן להמרה לשפת תכנות כלשהי.
דוגמאות תכנות מובנות
כמעט כל קטע קוד לדוגמה בכל שפת תכנות מודרנית יהיה דוגמה לתכנות מובנית.
תכנות זו משתמשת בלולאות, בתנאי מזג אוויר ובשכנות משנה בכדי לשלוט על זרימה ומודולריות בכדי להקל על הקריאה ובשימוש חוזר בקוד.
סדר פעולות
ניתן לבצע רשימה של הצהרות לפי הסדר, מלמעלה למטה. במקרה זה, דוגמא היא תוכנית בשפה טבעית לאפיית לחם:
- להוסיף קמח.
- הוסף שמרים.
- תוסיף מלח.
- לערבב.
- להוסיף מים.
- ללוש.
- נותנים לבצק להתפחה.
- לאפות.
חזרה
גוש התבטאויות חוזר על עצמו כל עוד מצב נכון. לדוגמא: שטיפת כלים.
בְּחִירָה
לכל היותר פעולה אחת נבחרת מכמה תנאים חלופיים. לדוגמא: הזמינו את הדואר.
תכנות מובנית ב- Visual Basic
סדר פעולות
קווים או בלוקים של קוד נכתבים ומבוצעים לפי סדר רצף. לדוגמה, יש לך:
x = 6
y = 12
z = x + y
WritLine (z)
חזרה
חסימה קוד חוזרת בזמן שהתנאי מתקיים. אין הגבלה למספר הפעמים שניתן לבצע את החסימה. דוגמא:
x = 2
כל עוד x <100
WritLine (x)
x = x * x
סוֹף
בְּחִירָה
גוש קוד מבוצע אם התנאי הוא נכון. חסימת הקוד פועלת לכל היותר פעם אחת. דוגמא:
x = ReadLine ()
אם x Mod 2 = 0
WriteLine ("המספר שווה")
סוף כן
יתרון
- מדובר בתוכניות העונות על צרכי הלקוחות.
- למרות שלוקח זמן רב יותר לייצר את הקוד בהתחלה, הוא גורם לעתים קרובות לקוד שפועל ללא שגיאות כשהוא מופעל לראשונה.
- זה דומה לאוצר המילים של מילים וסמלים באנגלית.
- קל לטפל בעתיד בשינויים בתוכנית עם מפרטים חדשים בעתיד.
- קל יותר לתחזק אותם.
- קל לשימוש ולהבנה. בסופו של דבר נדרש פחות זמן לכתיבת הקוד. קל יותר ללמוד.
- ניתן לתרגם תוכנית שנכתבת בשפה ברמה גבוהה לשפות מכונה רבות. לכן ניתן להריץ אותו בכל מחשב שיש בו מתרגם או מהדר מתאים.
- הם בעיקר מכוונים לבעיות ולא מכוונות מכונה.
- זה לא תלוי במחשב בו הוא משמש. במילים אחרות, ניתן להפעיל תוכנות שפותחו בשפות ברמה גבוהה בכל מחשב.
תוכניות ברורות יותר
תכנות מובנית מצמצמת את האפשרות שפונקציה אחת תשפיע על פונקציה אחרת. זה מבהיר את התוכניות, מכיוון שמשתנים גלובליים מוסרים כדי להחליף אותם במשתנים מקומיים.
עקב שינוי זה, ניתן לשמור את שטח הקצאת הזיכרון שמשתנה גלובלי תופס.
הבנה נוחה
הארגון עוזר להבין בקלות את היגיון התכנות, בכדי להבין את ההיגיון שמאחורי התוכניות.
זה גם מסייע למצטרפים חדשים מכל חברת טכנולוגיה להבין תוכניות שנוצרו על ידי עובדים אחרים בתעשייה, ובכך מאפשרים ניפוי שגיאות קוד פוטנציאלי.
חסרונות
- על המתרגם או המהדר לתרגם את השפה ברמה גבוהה לשפת מכונה. לכן יש לשלם מחיר בשימוש בזמן מחשב.
- קוד האובייקט שנוצר על ידי המהדר יכול להיות לא יעיל בהשוואה לתוכנית שפת הרכבה שווה ערך.
אותו קוד חזר על עצמו
הקוד שנכתב יכול להופיע בחלקים שונים של התוכנית. זה יכול להיות פגיע לבעיות שונות בגלל מיקומו. לתוכניות משתנים, מה שאומר שהם יכולים לקחת ערכים שונים בחלקים שונים של התוכנית.
זה מסורבל לשנות סוגי נתונים
סוג הנתונים מגיע מפונקציות רבות. לפיכך, כאשר מתרחשים שינויים בסוג נתונים זה, יש לבצע את השינוי המתאים בכל מיקום הפועל על סוג נתונים זה בתוכנית. זוהי משימה ממש זמן רב אם התוכנית גדולה מאוד.
ניתן לשקול מקרה של פיתוח תוכנה, בו מספר מתכנתים עובדים כצוות באפליקציה. בתוכנית מובנית, כל מתכנת יוטל לבנות קבוצה ספציפית של פונקציות וסוגי נתונים.
לכן מתכנתים שונים יטפלו בנפרד בפונקציות שונות שיש להם סוגי נתונים המשותפים זה לזה.
המתכנתים האחרים בצוות צריכים לשקף את השינויים בסוגי הנתונים שביצע מתכנת, בסוגי הנתונים בהם טיפלו. אחרת, יש לכתוב מחדש מספר פונקציות.
יישומים
תכנות מובנית עבדה היטב עבור מיליוני תוכניות ומיליארדי שורות קוד. אין שום סיבה לבטל את זה.
בפרט, זה עבד טוב מאוד עבור תוכניות שמעבדות נתונים ועיבוד מספרים, ששניהם מופעלים פעם אחת כדי לייצר תגובה.
שני מאפיינים נוטים להגדיר היטב את הבעיות שניתן לפנות אליהם בצורה מובנית לחלוטין:
- הנתונים שיש לטפל בהם תואמים את סוג הנתונים המשתלבים בשפה, בדרך כלל הם מספרים ומיתרי תווים.
- התוכנית עוקבת אחר זרימת בקרה מוגדרת היטב לייצור תוצאה יחידה המבוססת על קלט כלשהו.
תוכנות מחשב עם מאפיינים אלה כוללות יישומים מדעיים, הנדסיים ועיבוד תמלילים רבים, בנוסף לרבים מהדוגמאות בספרי הלימוד של קורסים מדעי המחשב המסורתיים.
באופן לא מפתיע, אלה בדיוק סוגי התוכניות שהאנשים הראשונים שהמציאו שפות תכנות רצו לפתור.
טיפול בחפצים
רוב שפות התכנות המודרניות בנויות כך: מה שיש בתוכנית שלך הם אובייקטים, ורוב הקוד מורכב משיטות שונות לשימוש בנתונים המאוחסנים באותם אובייקטים.
לתכנית מובנית יש בדרך כלל שליטה על מה שקורה ומתי זה קורה, ואילו תוכנית מבוססת אירועים חייבת להיות מסוגלת להגיב לאירועים בזמנים בלתי צפויים.
הפניות
- MVPS (2020). תכנות מובנית. לקוח מ: mvps.net.
- אלכסיי (2019). פרדיגמת תכנות מובנית. בינוני. נלקח מ: medium.com.
- כלול עזרה (2020). תכנות מובנית, היתרונות והחסרונות שלה. נלקח מ: includehelp.com.
- טים טרוט (2019). שפות תכנות מובנות. Lonewolf Online. נלקח מ: lonewolfonline.net.
- פורטל OO (2020). שימושים ויתרונות של תכנות מסורתית מובנית. נלקח מ: ooportal.com.
- Studeer Snel (2020). סקירה סופית - סיכומי יישומי תכנות מובנים. נלקח מ: studeersnel.nl.