GIGO (ראשי התיבות של: Garbage In, Garbage Out, בתרגום חופשי: "קלט זבל, פלט זבל") מונח מעולם מדעי המחשב המתייחס למצב בו קלט שגוי שהוזן לתוכנית מחשב או לפונקציה מבלי לוודא את נכונותו יוביל לפלט שגוי.
המונח משמש בהשאלה גם לתיאור של קבלת החלטות שגויות על בסיס מידע שגוי או חסר.
בתחום התוכנה, על מנת להימנע מהתופעה מקובל לבצע בדיקות תקינות והגבלות על נתוני הקלט בכניסה לפונקציה.
אטימולוגיה
המונח מבוסס על משקל של מונחים מוכרים.
מתחום מדעי המחשב:
מתחום הבקרה:
דוגמאות
- סוג המשתנה – פונקציית חיבור שמקבלת כקלט שני איברים וסוכמת אותם. לדוגמה עבור קלט 1 ו-2 תחזיר 3. אם תקבל כקלט ספרה ותו – היא תספק פתרון מספרי בהתאם להמרת ASCII על אף שאין לזה משמעות מתמטית. למשל עבור 1+a תחזיר 98.
- סימן – פונקציית העברת כסף מחשבון בנק של לקוח לחשבון בנק של פלוני – מקבלת כקלט את סכום העברה ואישור הלקוח על העברה. בהתאם מחסירה את הסכום מחשבון הלקוח ומוסיפה לפלוני. במידה והייתה מקבלת כקלט סכום בסימן שלילי, דוגמת (100-), הייתה הפונקציה מחסירה סכום שלילי מחשבונו כלומר מוסיפה לו כסף ומוסיפה סכום שלילי לפלוני כלומר מחסירה לחשבון פלוני כסף וללא רשותו.
- יחידות מידה – התרסקות החללית מקפת האקלים של מאדים (Mars Climate Orbiter) ב-1998[1] – מחשבי המקפת קיבלו נתוני דחף ביחידות ליברה בעוד היא תוכנתה לקבל נתוני דחף ביחידות ניוטון. זה גרם למקפת להיכנס למסלול נמוך מהמתוכנן וכתוצאה מכך היא נשרפה מהחיכוך באטמוספירה.
הערות שוליים