רובוטיקה ותכנות שיעור 7.

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
מכונת מצבים תרגול מס' 4 Moshe Malka.
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבני נתונים 1 – מבנה התרגולים
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
מבוא למדעי המחשב תרגול מספר.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מתמטיקה בדידה תרגול 2.
מה היום ? - - חזרה מהירה. - קריאה וכתיבה לקבצים. - בניית תוכנית כתיבה low-level - בניית ערוץ גלובלי והדגמה מול חומרה - low-level DAQ, פולימורפיזם וטריגר.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
בקרה תומר באום ב"הב"ה. סוגי בקרה חוג פתוח Open-loop control : אנו מכוונים את הרובוט למצב הבא שהוא אמור להיות בו לפי מודל מסוים, כמו שעשינו בקינמטיקה הפוכה.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
IF-ELSE כתוב תוכנית הקולטת שלושה מספרים ומדפיסה אותם בסדר עולה(ממיינת אותם)  קלט:7,2,4 ,פלט:2,4,7 .
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
עבודה עם נתונים באמצעות ADO.NET
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
הרצאה 3: משפטים, תנאים ולולאות
מודל חישוב בסיסי שיעור 1.
מבוא כללי למדעי המחשב שיעור 2
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
עקרונות בסיסיים בתכנות Visual Basic
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Computer Architecture and Assembly Language
Presentation transcript:

רובוטיקה ותכנות שיעור 7

נושאי השיעור אלגוריתמיקה Bottom -up תת שגרות ו- לולאות - מתקדם Easy C 1 אלגוריתמיקה Bottom -up 2 תת שגרות ו- לולאות - מתקדם 3 Easy C 4 פקודות מתקדמות דוגמאות 5

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

אלגוריתמיקה אפיית עוגה: (כתהליך פיתוח) חומרים מתכון תנור, כלי אפייה, אופה

אלגוריתמיקה אפיית עוגה: (כתהליך פיתוח) חומרים (קלט) חומרה תוכנה מתכון חומרה תוכנה מתכון אלגוריתם תנור, כלי אפייה, אופה פלט

אלגוריתמיקה קלט תהליך פיתוח: תוכנה אלגוריתם חומרה פלט

אלגוריתמיקה מה המטרה? חשבו! מה הצורך? מה התועלת?

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

אילו אלגוריתמים אתם מכירים? אלגוריתמיקה אלגוריתמים לדוגמא: אילו אלגוריתמים אתם מכירים?

אלגוריתמיקה אלגוריתמים לדוגמא: החלפת גלגל בניית ארון סריגת סוודר חילוק מספרים חיפוש בספר טלפונים

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

אלגוריתמיקה חשוב! שלבי פיתוח תכנן! בצע!

אלגוריתמיקה אלגוריתם פשוט ביותר: חשוב! פתחו אלגוריתם לחישוב סכומם של שני מספרים, A ו- B

אלגוריתמיקה אלגוריתם פשוט ביותר: פתחו אלגוריתם לחישוב סכומם של שני מספרים, A ו- B התשובה ברורה מאליה : C=A+B

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

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

אלגוריתמיקה להוסיף קוד מ איזי C - בצע! זמן חישוב

אלגוריתמיקה אלגוריתם פשוט ביותר: מה מגביל אותנו? מה ההבדל בין חברה עם 3 עובדים לבין חברה עם 100,000 עובדים? זמן חישוב

אלגוריתמיקה סיכום ביניים – תהליך אלגוריתמי: מחשבה: אפיון אוסף הקלטים החוקיים הגדרת הפלטים הרצויים כפונקציה של הקלט

אלגוריתמיקה סיכום ביניים – תהליך אלגוריתמי: תכנון: בניית סכימת בלוקים כללית

אלגוריתמיקה סיכום ביניים – תהליך אלגוריתמי: ביצוע: כתיבת קוד – "תרגום" סכימת הבלוקים

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

נושאי השיעור אלגוריתמיקה Bottom -up תת שגרות ו- לולאות - מתקדם Easy C 1 אלגוריתמיקה Bottom -up 2 תת שגרות ו- לולאות - מתקדם 3 Easy C 4 פקודות מתקדמות דוגמאות 5

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

תת שגרות ותכנון BOTTOM-UP הגדרת החלקים הפרטיים של המערכת צירופם לרכיב גדול יותר צירוף נוסף ליצירת המערכת הכוללת המערכת מבוססת על חלקיה היסודיים

תת שגרות ותכנון BOTTOM-UP תכנון נכון נעשה בשלבים – הרובוט שלנו: BOTTOM – UP: נתכנן כל בלוק בנפרד החל מהאלמנטים הקטנים ביותר בלוק זיהוי נר בלוק תיאור מכשול בלוק תיאור תנועה

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

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

תת שגרות ותכנון BOTTOM-UP תכנון נכון נעשה בשלבים – הרובוט שלנו: עבור כל דרישה, יש לכתוב רצף פקודות נפרד, בלוק נפרד. לבסוף, נקשר ונשלב בין כל התהליכים ליצירת התוכנית.

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

נושאי השיעור אלגוריתמיקה Bottom -up תת שגרות ו- לולאות - מתקדם Easy C 1 אלגוריתמיקה Bottom -up 2 תת שגרות ו- לולאות - מתקדם 3 Easy C 4 פקודות מתקדמות דוגמאות 5

לולאות - מתקדם BREAK, CONTINUE, RETURN

לולאות - מתקדם דוגמא: בנינו זרוע לרובוט. טווח התנועה של הזרוע, היושבת על גלגל שיניים הוא 360 מעלות. מה יקרה אם הזרוע תיתקל במרכב של הרובוט? המנוע של הזרוע יישרף? הזרוע תינזק? המרכב יינזק? יש להימנע מכך בכל מחיר!!! כיצד?

לולאות - מתקדם מרכיבים חיישן מפסק גבול (הזכור לנו משיעור חיישנים) בקצה הטווח המותר. תוכנה: כותבים קוד, אשר מקבל כפלט את נתוני החיישן. בהינתן שהמפסק נלחץ, דהיינו הגיעה הזרוע לקצה הטווח המותר – פעל בהתאם! מהי הפעולה? כרצוננו, למשל, החזר את הזרוע למצב התחלתי, מצב שיווי משקל.

לולאות - מתקדם להוסיף תמונה לגבי השקף הקודם

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

לולאות - מתקדם CONTINUE שימוש בפקודה זו בתוך לולאה מקפיץ את הלולאה לאיטרציה הבאה.

לולאות - מתקדם CONTINUE

לולאות - מתקדם

לולאות - מתקדם CONTINUE התוכנה שראינו מבצעת: יצירת לולאה שתתבצע 10 פעמים מדפיסה “loops begins” ואת הערך של X מקבלת ערך ממפסק הגבול אם המפסק לא נלחץ – מדלגת על פקודת continue, מאפשרת הפעלת זרוע אם המפסק נלחץ, פקודת continue מתבצעת והתוכנה קופצת מיידית לאיטרציה הבאה של הלולאה. בכך מדלגת על הפעלת הזרוע. להדגיש את ההבדל - מאיזו שורה קופצים ולאיפה.

לולאות - מתקדם דוגמא נוספת לפקודת continue

לולאות - מתקדם לשורה הזו לא נגיע

לולאות - מתקדם BREAK שימוש בפקודה זו בתוך הלולאה מסיים את כל האיטרציות של הלולאה – "הורג" את הלולאה.

לולאות - מתקדם BREAK

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

לולאות - מתקדם

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

לולאות - מתקדם RETURN תוכנית זו קוראת לפונקציה Sample_return ודוחפת את הערך שלה למשתנה result מדפיסה את הערך שבתוך result מהי הפונקציה sample_return?

לולאות - מתקדם RETURN

לולאות - מתקדם RETURN sample_return יוצרת לולאה אינסופית דוחפת את הערך 18 למשתנה change מחזירה את הערך של change לפונקציה שקוראת לה פקודת ה return "הורגת" את לולאת ה while

לולאות - מתקדם RETURN מה יהיה הערך שיקבל result? Change

לולאות - מתקדם פקודות שימושיות בשפות תכנות: בעיה: מערכת המקבלת כקלט מספר בינארי בן 3 סיביות (חשבו – כמה קלטים שונים אפשריים?) ומוציאה פלט בדמות הודעה כתובה המציינת את היום המתאים בשבוע בהנחה שהקלט מסמן את הימים, איזה קלט אינו חוקי?

לולאות - מתקדם פקודת SWITCH CASE: קיימת שיטה נוחה לענות על כל סוגי הקלטים האפשריים כאמור, סוגי הקלט האפשריים: 1

לולאות - מתקדם פקודת SWITCH CASE: קיימת שיטה נוחה לענות על כל סוגי הקלטים האפשריים כאמור, סוגי הקלט החוקיים (מדוע?): 1

לולאות - מתקדם שיטה שכבר למדנו: day: -- משתנה בינארי if day == '001' then printf ('today is sunday'); elsif day == '010' then printf ('today is monday'); elsif day == '011' then printf ('today is tuesday'); elsif day == '100' then printf ('today is wendsday'); elsif day == '101' then printf ('today is thursday'); elsif day == '110 then printf ('today is friday'); elsif day == '111 then printf ('today is saturday');

לולאות - מתקדם פקודת SWITCH CASE: שיטה זו נוחה בהרבה... day: קלט פקודת SWITCH CASE: day: Switch day is: case '001' printf ('today is sunday'); case '010' printf ('today is monday'); case '011' printf ('today is tuesday'); case '100' printf ('today is wendsday'); case '101' printf ('today is thursday'); case '110' printf ('today is friday'); case '111' printf ('today is saturday'); שיטה זו נוחה בהרבה... פלטים

לולאות - מתקדם ברוב שפות התוכנה הפקודה הזו קיימת. ב Easy C, לדאבוננו, עדיין לא...

נושאי השיעור אלגוריתמיקה Bottom -up תת שגרות ו- לולאות - מתקדם Easy C 1 אלגוריתמיקה Bottom -up 2 תת שגרות ו- לולאות - מתקדם 3 Easy C 4 פקודות מתקדמות דוגמאות 5

פקודות מתקדמות Easy C ראינו בשיעור הקודם אפשרויות ניהוג ושליטה Arcade Tank אלו הם בלוקים מוכנים נשתמש בהם לפעולות הכלליות – כגון הסעת הרובוט. פעולות כלליות – משותפות

פקודות מתקדמות Easy C קיימות פקודות ספציפיות, המאפשרות שליטה על מנוע / סרבו (servo) יחיד: Motor RX Servo RX ואפשרות לקבל מהם מידע RX input

פקודות מתקדמות Easy C Motor RX באמצעות הפקודה הזו ניתן לשלוט על מנוע הזרוע דרך השלט גם פקודה זו תימצא בתוך לולאה, לשם קיומה התמידי

פקודות מתקדמות Easy C Motor RX בבחירת הפקודה ייפתח החלון הבא: בחירת ערוץ התקשורת מהבקר בחירת לחצני התקשורת מהשלט בחירת המנוע המבוקש הערות

פקודות מתקדמות Easy C Motor RX הערה: משדר יחיד: היה ולא הגדרנו ערוץ תקשורת – ברירת המחדל היא הערוץ שמחובר. שני משדרים: ברירת המחדל היא ערוץ RX1

פקודות מתקדמות Easy C Servo RX זהה ל - Motor RX, שולט במנועי סרבו אותן הגדרות

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

פקודות מתקדמות Easy C RX Input בחירת הערוץ בחירת צ'אנל הערה

נושאי השיעור אלגוריתמיקה Bottom -up תת שגרות ו- לולאות - מתקדם Easy C 1 אלגוריתמיקה Bottom -up 2 תת שגרות ו- לולאות - מתקדם 3 Easy C 4 פקודות מתקדמות דוגמאות 5

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

שלבי פיתוח אלגוריתמיקה חשוב! תכנן! בצע! הציעו דרך לחשב את המחלק המשותף המקסימלי בצע!

אלגוריתמיקה - דוגמאות חשוב! מהם הקלטים המתקבלים? מהו הפלט הדרוש? איזה חישוב יש לבצע? כל קבוצה בעצמה

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

אלגוריתם: מציאת המחלק המשותף הגדול ביותר אלגוריתמיקה - דוגמאות אלגוריתם: מציאת המחלק המשותף הגדול ביותר תכנן: רמה פנימית: בצע פעולת מודולו על שני המספרים, A>B אם השארית שווה לאפס החזר את המספר הקטן כGCD אחרת –המספר הגדול יהיה המספר הקטן מאיטרציה קודמת, (A=B) והמספר הקטן החדש יהיה השארית מאיטרציה קודמת (B=A%B) זוהי רמת התכנון הבסיסית.

אלגוריתמיקה - דוגמאות תכנן: כל קבוצה בעצמה

דוגמאות בצע! /* a & b are the numbers whose GCD is to be found. Given a > b */ int gcd(int a,int b) { int temp; while(1) --- הלולאה אינסופית temp = a%b; --- השארית של חלוקת המספר הגדול בקטן if(temp==0) return b; --- אם אין שארית סיימנו* a = b; ---חשבו מה תפקיד שורה זו? b = temp;--- חשבו מה תפקיד שורה זו? * החזר את המחלק המשותף המקסימלי, הממוקם במשתנה b, פקודת return קוטעת את הלולאה האינסופית.

אלגוריתם: מציאת המחלק המשותף הגדול ביותר אלגוריתמיקה - דוגמאות אלגוריתם: מציאת המחלק המשותף הגדול ביותר דוגמה: a=80, b=32 a%b=16 16 שונה מ - 0 כל קבוצה בעצמה a=32; B=16 בצע לולאה שוב

אלגוריתם: מציאת המחלק המשותף הגדול ביותר אלגוריתמיקה - דוגמאות אלגוריתם: מציאת המחלק המשותף הגדול ביותר דוגמה: a=80, b=32 GCD=16 a%b=0 השארית שווה ל 0 כל קבוצה בעצמה GCD=b b=16

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

אלגוריתמיקה – חיפוש מרחבי חשוב! הציעו דרכים לחיפוש במרחב: הקצה 5 דקות למטלה זו. כל קבוצה תציג את הרעיון.

אלגוריתמיקה – חיפוש מרחבי חשוב! הציעו דרכים לחיפוש במרחב: חיפוש שורה אחר שורה חיפוש מעגלי חיפוש מדגמי

אלגוריתמיקה – חיפוש מרחבי חשוב! הציעו דרכים לחיפוש במרחב: חיפוש שורה אחר שורה

אלגוריתמיקה – חיפוש מרחבי חשוב! הציעו דרכים לחיפוש במרחב: חיפוש מעגלי

אלגוריתמיקה – חיפוש מרחבי חשוב! הציעו דרכים לחיפוש במרחב: חיפוש מדגמי (אקראי)

אלגוריתמיקה – חיפוש מרחבי חשוב! מדדים: מהי הדרך המהירה ביותר? איך לא נחפש באותו מקום פעמיים? כיצד נכסה את כל המרחב?

אלגוריתמיקה – חיפוש מרחבי סריקה של המרחב תכנן! רמה עליונה: לא מצאתי את החפץ? כן הפסק חיפוש

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

אלגוריתמיקה – חיפוש מרחבי room width = W (x axis) room lenth = L (y axis) room edges: (0,0), (W-1,0), (0,L-1), (W-1, L-1) robot start at (0,0) line by line (most simple): /* after reaching end of line i want the robot to go up and the back - so i won't go over a line 2 times */ for (k=0; k<L; k++) {    if (k % 2 == 0) { /*even line */         for (i=0; i<W; i++) {            advance(i,k);            if (candle_is_here() == 1) return "found"          }     } else { /* odd line */         for (i=W-1; i>=0; i--) {   }}} return "no candle" ביצוע:

אלגוריתמיקה – חיפוש מרחבי קישורים ללמידה עצמית – אלגוריתמי מיון: http://www.youtube.com/watch?v=P00xJgWzz2c http://www.youtube.com/watch?v=c4BRHC7kTaQ&feature=relmfu http://www.youtube.com/watch?v=GCae1WNvnZM&feature=relmfu http://www.youtube.com/watch?v=y_G9BkAm6B8&feature=relmfu