Download presentation
Presentation is loading. Please wait.
Published byAshlynn Webster Modified over 6 years ago
1
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
יום שני : חדר 302 D, מעבדת מסדרון, בניין 30 קומה שלישית
2
הכרות מטרת הקורס לימוד שפת תכנות מונחית עצמים Java
הקורס מיועד למכנה המשותף הנמוך ביותר. אין צורך בידע מוקדם. אין חובת התייצבות להרצאות. דרישות: 5 תרגילי תכנות – 30% מהציון. מבחן מסכם, (מינימום 50) – 70% מהציון. אתר הקורס: דואר אלקטרוני: טלפון: שעות קבלה: בין 19:00 עד 20:30 לאחר הרצאת הערב ביום ד. מטרת הקורס: מפגש ראשון עם עקרונות בסיסיים בעולם מדעי המחשב. מושג האלגוריתם, תכנון האלגוריתם, תכנות ב- Java, רקורסיה, מבנה נתונים, ועוד רקע במחשבים ו.או במתמטיקה – לפעמים עוזר, אבל לא נדרש לחלק להם את הסילבוס ולהסביר ביותר פירוט את נושא הדרישות וספרי עזר.
3
ספרות עזר Lewis John and William Loftus, "Java software solutions : foundations of program design" Boston, MA, Addison Wesley, 2003. JAVA עכשיו, יישומי Web עם שפת התכנות JAVA, הוצאת הוד עמי. "The Java Tutorial", סדנת לימוד. הראשון הוא הספר הראשי איתו אנחנו נעבוד.
4
האני מאמין שלי ביצוע והבנה של תרגילי הבית לבד יעזרו מאוד במעבר הבחינה.
חשוב מאוד לדעת את החומר לפני ההגעה להרצאה. חשוב מאוד לתעד את התוכנה. אי תיעוד התוכנה יגרום להורדה בציון התרגילים (הבדיקה תהיה אקראית) ובבחינה. אין להתחיל לפתור תרגיל כלשהוא לפני הבנת הבעייה עד תום. שמירה על הסדר עוזרת תמיד (במיוחד בבחינה). מומלץ לקרא וללמוד אף מעבר למה שנלמד בהרצאות (למרות שלפעמים קיימת דחייה בביצוע סעיף זה). מה זה מחשב? הגדרה נפוצה: A programmable electronic device designed for storing, retrieving, and processing data. חומרה (ברזלים): זיכרון,מעבד, קלט, פלט,... תוכנה: מערכת הפעלה, קומפיילר, סביבת הרצה,... בעיה – שרוצים לפתור בעזרת מחשב אלגוריתם – "מתכון" לפתירת הבעיה תוכנית – אמצעי להביע את האלגוריתם בפני המחשב שפות מחשב (סוגים, הידור, ... ) דוגמה: בעיה – למצוא מספר טלפון של ישראל ישראלי. האם זו הבעיה הנכונה? עדיף " למצוא מספר טלפון" אלגוריתם – א. נשאל אותו (את מי?). ב. ליניארי ג. בינארי. (מבנה הנתונים – ממוין?)
5
מושגים בסיסיים מה זה מחשב? בעיה של עיבוד (נתונים)
חומרה תוכנה בעיה של עיבוד (נתונים) אלגוריתם ותרשימי זרימה מה זה מחשב? הגדרה נפוצה: A programmable electronic device designed for storing, retrieving, and processing data. חומרה (ברזלים): זיכרון,מעבד, קלט, פלט,... תוכנה: מערכת הפעלה, קומפיילר, סביבת הרצה,... בעיה – שרוצים לפתור בעזרת מחשב אלגוריתם – "מתכון" לפתירת הבעיה תוכנית – אמצעי להביע את האלגוריתם בפני המחשב שפות מחשב (סוגים, הידור, ... ) דוגמה: בעיה – למצוא מספר טלפון של ישראל ישראלי. האם זו הבעיה הנכונה? עדיף " למצוא מספר טלפון" אלגוריתם – א. נשאל אותו (את מי?). ב. ליניארי ג. בינארי. (מבנה הנתונים – ממוין?)
6
תאור סכמתי – מחשב (חומרה)
כשאומרים חומרה מתכוונים לכל הרכיבים האלקטרונים מהם בנוי המחשב הנשלטים באמצעות תוכנה זיכרון מחשב CPU אמצעי קלט פלט זיכרון משני בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל
7
תאור סכמתי – מחשב (תוכנה)
תוכנה הינה תוצר של כותב תוכנה אחר. ניתן להתייחס לתוכנה משני היבטים תוכנות מנקודת המבט של המשתמש תוכנות מנקודת המבט של המפתח. דוגמאות: Word Excel IDE – Integrated Development Environment Eclipes – סביבת העבודה לפיתוח תוכנה בשפת ג'ווה שאיתה נפתח בקורס זה. בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל
8
תאור סכמתי – מחשב (תוכנה)
שפות תכנות כלליים שפת מכונה – תלויית מעבד. שפת אסמבלר – תלויית מעבד. שפת דור שלישי – לרב אינה תלויית מעבד. מחוללי ישומים – לרב אינה תלויים במעבד דוגמה: אקסס, מג'יק פרדוקס ועוד..... בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל
9
תאור סכמתי – מחשב (תוכנה)
שפות שפות דור שלישי פורטרן, בייסיק, פסקל, אלגול, PLM, C C++, קובול ג'ווה ועוד..... יתרונה של ג'ווה – אי תלות בפלטפורמה בה מריצים את התוכנה PC SUN MAC. ניתן להריץ יישומים שנכתבו בג'ווה ע"י האקפלורר. שפת ג'ווה היא שפה מונחית אובייקטים (יובהר בהמשך הקורס). בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל
10
אלגוריתם סידרת פעולות לביצוע המובילה לפתרון הבעיה
תיאור סופי (אין תחום אפור). לא מתייחס לנתונים עצמם אבל מצריך חשיבה ומעבר על כל אפשרויות הנתונים. רצוי מאוד שאלגוריתם יהיה יעיל במיוחד כאשר אותה הבעייה הנפתרת מבוצעת אין ספור פעמים ו/או בקצב מהיר. "מתכון" לפתירת בעיה (של עיבוד נתונים) A formal set of instructions that can be followed to perform a specific task המחשב אמור לפתור את הבעיה על סמך האלגוריתם דוגמה: הבעיה – למצוא ערך מינימאלי מבין אוסף הנתונים (נניח תעודות זהות) לא אלגוריתם: אם יש שני איברים באוסף אז ... ואם שלושה אז ... ואם ארבעה אז ... וכו. (או שהתאור אינו סןפי או שהוא מסתמך על ידיעה לגבי גודל האוסף.)
11
5 תכונות לאלגוריתם על-פי Knuth:
סופיות (עצירה) מוגדרות (כל פעולה צריכה להיות מובנת למבצע באופן חד משמעי) קלט (אפס או יותר) פלט (לפחות אחד) אפקטיביות. קלט כולל בעצם ספספיקציה פלט כולל נכונות אפקטיביות של הפעולות באלגוריתם הדגם על האלגוריתם הקודם
12
תרשים זרימה – הוראות המוגדרים כבלוקים
הסתעפות פעולה לביצוע התחלה סיום קלט פלט הערות: פעולה לביצוע הינה פעולה שחייבת להיות ברת ביצוע במחשב. במידה ופעולה זו לא ניתנת לביצוע בפעולה אחת, ניתן לשרטט תרשים זרימה נפרד המתאר כיצד מבוצעת הפעולה. קלט או פלט יכול להיות מקלדת מסך או קובץ. כל הבלוקים למעט התחלה וסיום יכולים להופיע מספר בלתי מוגבל של פעמים. בלוק התחלה וסיום חייבים להופיע בדיוק פעם אחת בלבד. בלוק ההסתעפות חייב להכיל שאלה שהתשובה עליה היא אמת (כן) או שקר (לא) (אין אולי).
13
דוגמא לבעיה: GCD Greatest Common Divisor
תאור הבעייה: מציאת מחלק המשותף (גדול מ-1) המקסימלי של שני מספרים שלמים חיוביים. דוגמאות: למספרים 48 ו-18 יש מחלק משותף 6. למספרים 49 ו-18 אין מחלק משותף. פורמלית: קלט: שני מספרים שלמים, חיוביים פלט: GCD(m,n) מה זה GCD ? דוגמה 48 :: 1,2,3,4,8,12,16,24,48 30 :: 1,2,3,5,6,10,15,30 משותפים:: משותף מקסימאלי לכל שני מספרים שלמים חיוביים, קיים GCD
14
איך מוצאים GCD? פתרון נאיבי
קלט: m, n אם m > n החלף בין המספרים. I m אם I מחלק את m ואת n פלוט את I ועבור ל-7 I I-1 אם I גדול מ-1 חזור ל- 4 פלוט אין מחלק משותף עצור קודם לתאר את הרעיון במילים התאור הוא סופי קלט m,n חיוביים שלמים אין התיחסות לערכים ספציפיים של m,n (עובד לכל הערכים האפשריים) האם זה עוצר? מדוע? כן – כי יש מחלק משותף ולא נפספס אותו (דיון) האם זה נכון? מדוע? כן – כי שנעצור I מחלק משותף ואין אחר גדול ממנו (דיון) אפשר להחליף את 2 ב: I = min(m,n)
15
הצגת האלגוריתם GDC כתרשים זרימה
קלוט m, n התחלה כן m>n לא I n I m כן m % I = 0 n % I = 0 לא לא I פלוט I = 1 לא I I - 1 כן סיום פלוט אין מחלק משותף
16
הצגת האלגוריתם למציאת מינימום של 2 מספרים נתונים m,n
התחלה כן החזר n הקטן m > n לא החזר m הקטן סיום
17
GCD על פי אוקלידס קלט: m,n r m%n אם r=0 פלוט n וסיים. m n n r
התחלה n פלוט כן לא קלוט m, n סיום r = 0 m n n r קלט: m,n r m%n אם r=0 פלוט n וסיים. m n n r חזור ל- 2 להסביר % דוגמת הרצה N M 30 48 18 30 12 18 6 12 ואם נחליף את m,n? בדיקת 5 התכונות נראה כי אלגוריתם זה יצטרך לבצע פחות "סיבובים" לפני שימצא את התשובה מאשר האלגוריתם הנאיבי
18
מציאת מספר מקסימלי מבין שלושה מספרים
קלוט שלושה מספרים a,b,c. השווה בין a,b. אם a>b עבור ל-7. השווה בין b ל-c. אם c הוא הגדול פלוט המספר הגדול הינו C וסיים. פלוט המספר הגדול הינו b וסיים. השווה בין a ל-c. אם a הגדול ביותר פלוט המספר הגדול הינו a וסיים. פלוט המספר הגדול הינו c וסיים.
19
תרגיל למחשבה: מציאת מספר מקסימלי מבין N מספרים
20
מציאת סכום של תחום מספרים – פתרון נאיבי
קלוט תחום תחתון ותחום עליון up,down Idown, Sum0 SumSum+I II+1 אם I = up + 1 פלוט Sum וסיים. חזור ל-3.
21
מציאת סכום של תחום מספרים – פתרון יעיל יותר
קלוט תחום תחתון ותחום עליון up,down Sum(up+down)/(up-down+1)/2
22
מציאת האם מספר הוא ראשוני או לא – פתרון נאיבי
קלוט מספר לבדיקה N I2 אם N % I = 0 פלוט המספר אינו ראשוני וסיים. II+1 אם I=N-1 הצג המספר ראשוני וסיים. חזור ל-3. פלוט המספר ראשוני.
23
מציאת האם מספר הוא ראשוני או לא – פתרונות נוספים
כמו בהליך הקודם רק בודקים עד השורש של המספר הנבדק. שמירת המספרים הראשוניים והורדת כל המספרים המתחלקים במספרים הראשוניים עד כה.
24
בעיות שניתן לפתור באמצעות מחשב
ניתן לאמר כי לא קיים תחום שבו לא ניתן לרתום את המחשב לייעול תהליך העבודה. מערכת יקיצה אוטומטית. מערכת למעקב וניטור עומסים בתחנות האוטובוסים. מעקב אחר מיקומי האוטובוסים. מערכת בקרת רמזורים מעקב ושמירה על ההישגים של הסטודנטים. מעקב ושליטה על תשלומי הסטודנטים. קביעה של כמות הסטודנטים הנוכחית בכל כיתה. מעקב אחרי מאמץ בחדר כושר. ועוד
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.