אלגוריתמים
כעת, נפגש עם האלגוריתם הראשון שננתח בקורס. יתכן ויש לנו הבנה אינטואטיבית של המושג, אבל לשלמות רצוי שנגדיר אותו על מנת שכולנו נדבר את אותה השפה:
הגדרה: אלגוריתם הוא סדרת פעולות מדויקות לביצוע משימה או פתרון בעיה כלשהי המתחשב בכל המקרים האפשריים.
כלומר, בהנתן בעיה מסוימת, אלגוריתם הוא סדר פעולות שיש לבצע על מנת לקבל פתרון לבעיה.
הגדרה מדויקת של הבעיה היא קריטית לחלוטין על מנת למצוא לה פתרון. בדרך כלל בקורס נתאר בעיות בצורה של קלט ופלט - כלומר, בהנתן קלט מסוים, נרצה להפעיל אלגוריתם כלשהו על מנת לקבל פלט מסוים. כמה דוגמאות לבעיות:
- בהנתן מספר חיובי
n, יש לקבוע האם הוא ראשוני או לא. הקלט הוא מספר חיובי והפלט הוא משתנה בוליאני שערכוtrueאם הקלט ראשוני ו-falseאחרת. - בהנתן מערך של ציונים במבחן, יש לחשב את הממוצע. הקלט הוא מערך הציונים והפלט הוא משתנה שמכיל את הממוצע שלהם.
- בהנתן מערך כלשהו של מספרים
arrומספר כלשהוx, יש לקבוע האםxנמצא במערך או לא. הקלט הוא מערך ומספר והפלט הוא משתנה בוליאני שערכוtrueאםxנמצא במערך ו-falseאחרת.