slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
כמה כללים לגבי החוברת : PowerPoint Presentation
Download Presentation
כמה כללים לגבי החוברת :

Loading in 2 Seconds...

play fullscreen
1 / 59

כמה כללים לגבי החוברת : - PowerPoint PPT Presentation


  • 130 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'כמה כללים לגבי החוברת :' - deiondre


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

כמה כללים לגבי החוברת :

  • כל תרגילי והסברי החוברת ושימושם הם על אחריות המשתמש בלבד, אינני אחראי לכל תוצאה בגין שימוש בחוברת.
  • כל החפץ להעתיק, לצלם או לשכפל חוברת זו יוכל לפנות אלי במייל ולקבל אישור.
  • החוברת פתוחה לשיפורים ואשמח לקבל הערות/הארות לשיפורים, תיקון טעויות או תוספות. לדואר : doribd@yahoo.com בנושא : חוברת PROLOG.
  • החוברת נבנתה על SWI-PROLOG גרסה 5.2.1, התרגילים הורצו על WINDOWS XP.
  • בחוברת נכללים תרגילים כשחלקם בוצעו במסגרת שעורי לוגיקה של ד"ר גיורא דולה במכללה האקדמית נתניה.
  • בכל מערך שיעור נקודת ההנחה היא כי המשתמש הפעיל מחדש את הפרולוג ולא המשיך בעבודתו, מטרת ההפעלה מחדש – ניקוי ושחרור הזיכרון שנתפס במהלך העבודה. כמו כן יכול המשתמש להמשיך בעבודה מבלי לסגור ולהפעיל את הפרולוג.
  • בממשק הפועל על מחשב – תוכן העניינים מכיל לינקים למיקומים + בכל ע"מ יש הקפצה לתוכן בחזרה.

התחלה

slide2
תוכן עניינים

שיעור מס' 1 : חוקי פרולוג הבסיסים.

שיעור מס' 2 : הפעלה והכרת תפריטי ה Prolog

שיעור מס' 3 : כתיבת תוכנית צאצא

שיעור מס' 4 : עריכת קובץ קיים

שיעור מס' 5 : החלק המעשי

שיעור מס' 6 : הכרת הממשק הגראפי

התחלה

slide3

שיעור מס' 1 נושא השיעור:חוקי פרולוג בסיסים

התחלה

slide4

חוקי הפרולוג

  • "קבוע" יוגדר כאשר האות השמאלית ביותר תהיה אות לטינית קטנה.
  • "משתנה" יוגדר כאשר האות השמאלית ביותר תהיה אות לטינית גדולה.
  • "יחס" יוגדר כמחרוזת המכילה סוגרים ונקודה בסוף, למשל parent(a,b).
  • "arity" יקרא, מספר הפסיקים בתוך סוגרי היחס ועוד אחד.
  • "פסוק" יחס אחד או יותר המסתיים בנקודה.
  • אחד מהקריטריונים להבדל בין יחסים הוא ה arity שלהם.
  • בפרולוג, הקוד אומנם קצר בדרך כלל אך המעקב יכול להיות קשה היות ומדובר בעקרון הרקורסיה.

התחלה

slide5

שיעור מס' 2 נושא השיעור:הפעלה והכרת תפריטי הפרולוג

התחלה

slide7

זהו מסך הפתיחה והמסך בו נעבוד

גרסה:

הפרולוג ממתינה לפקודה מאיתנו

הסימן 1 מציין כי זו שורה מספר 1.

התחלה

slide8

טעינת קובץ

עריכת קובץ קיים

יצירת קובץ חדש

אם ערכנו קובץ ונרצה לטעון אותו שוב

כמו הסייר של חלונות (מראה את התוכניות שלנו )

התחלה

slide9

העתקת תוכן שסומן

הדבקת תוכן שסומן

התחלה

slide10

שינוי גופן כללי בתוכנה

הצגת קובץ קונפיגורציות מערכת

הצגה/שינוי גדלי מחסניות

התחלה

slide11

הפסקת תוכנית שרצה

פתיחת חלון נוסף לעבודה במקביל

התחלה

slide12

צור נקודות מעקב

יםTHREAD הצגת סטאטוס כרגע של ה

מעקב גרפי

התחלה

slide15

נכנס בתפריט לאופציה "חדש"

עתה נכתוב תוכנית פשוטה שנכתבה בהרצאה, התוכנית מתארת יחס של צאצא ואב.

אחרי כתיבת התוכנית נסביר כיצד טוענים אותה לזיכרון

התחלה

slide16

החלון הבא נפתח. נרשום למטה את שם הקובץ :

relations

את הסיומת הוא מקבל בצורה

אוטומטית מהפרולוג

לאישור נלחץ על "שמור"

התחלה

slide17

נקבל מסך חדש, הכולל את העורך :

NOTEPAD

נקבל מסך אזהרה שהקובץ אינו קיים ויש ליצור אותו.

נאשר ב "כן"

התחלה

slide18

נרשום את הקובץ, מההרצאה

נלחץ על תפריט "קובץ" (על מנת לשמור אותו)

נבצע "שמור" (לשמירת הקובץ)

נצא ע"י לחיצה על "יציאה" ונחזור לפרולוג.שימו לב לסימן האחוז ולאחריו המספר . הסימן אחוזמסמן הערה, כלומר כל מה שאחרי האחוז הוא הערה. המלצתי, כתבו את מספרי השורות כדי שיהיה נוח לבצע את המעקב.

התחלה

slide19

עתה ניטען את הקובץ לזיכרון הפרולוג.

כפי שהוסבר בהתחלה, נלחץ על

התחלה

slide20

נגיע לספריה בה שמרנו את הקובץ מקודם, נסמן אותו ונלחץ על

פתח

התחלה

slide21

הקובץ ניטען כפי שניתן לראות בשורה זו.

נקבל מידע על זמן הטעינה וגודל הקובץ שנטען לזיכרון והמיקום בו הוא מאוכסן.

התחלה

slide23

עתה נעלה תוכנית פשוטה (מתוך הרצאה)

תוכנית של קשרי משפחה

לשם כך נלחץ על התפריט קובץ ובתוכו עריכה

התחלה

slide24

נגיע לספריה המתאימה בה נמצא הקובץ הדרוש אותו אנו רוצים לערוך.

נסמן אותו ונלחץ על "פתח"

ניתן גם להקיש עליו פעמיים עם העכבר – הפעולה זהה.

התחלה

slide25

לאחר שנסיים, נבצע שמירה ב:

NOTEPAD

ונצא ממנו בחזרה לפרולוג.

כאשר ברגע שנצא, התוכנית תיטען לפרולוג בתצורתה החדשה.

(המלצה שלי – לטעון אותה בצורה ידנית מחדש ולא להסתמך על מנגנון זה.)

התחלה

slide27

FILE->CONSULTנטען ע"י :

כפי שלמדנו בשקפים הקודמים את הקובץ "צאצא"

תוכנו הוא :

ish(a,x).%1

ish(b,a).%2

ish(c,a).%3

ish(d,b).%4

ish(e,b).%5

ish(f,c).%6

ish(g,c).%7

ish(h,d).%8

ish(i,d).%9

ish(j,e).%10

ish(k,e).%11

tz(X,Y):-ish(X,Y).%12

tz(X,Y):-ish(Z,Y),tz(X,Z).%13

שורות אלו מתארות יחס בין אבא לבן. למשל x הוא אבא של a

ו a הוא אבא של b ושל c.

הפורמט של צאצא : (צאצא של, האם אני)tz

התחלה

slide28

עתה נריץ מספר שאילתות על מנת לקבל רושם מה בעצם

פרולוג עושה:

לפני כן נדגיש כי בפרולוג בכל משפט שנרשם יש לרשום נקודה בסוף.

1 ?- tz(x,a). שאילתה ראשונה שהרצתי

No

למה קיבלתי תשובה שלילית. בעצם מה שאלתי פה ?

שאלתי האם a הוא צאצא של x, לפי בסיס הנתונים זו היא שגיאה ולכן

קבלנו תשובה שלילית.

2 ?- tz(b,x). שאילתה שנייה שהרצתי

Yes

למה קיבלתי תשובה חיובית. בעצם מה שאלתי פה ?

שאלתי האם b הוא צאצא של x, לפי בסיס הנתונים a הוא אבא של b ו a הוא הבן של x ולכן b הוא הצאצא של x.

התחלה

slide29

3 ?- tz(_,x). שאילתה שלישית

Yes

למה קיבלתי תשובה חיובית. בעצם מה שאלתי פה ?

הקו התחתון אומר לפרולוג לבדוק האם הקשר קיים. השאלה היא בעצם – האם ל x יש צאצאים.

1 ?- tz(WHO,x). שאילתה רביעית

WHO = a ;

WHO = b ;

WHO = c ;

WHO = d ;

WHO = e ;

WHO = h ;

WHO = i ;

WHO = j ;

WHO = k ;

WHO = f ;

WHO = g ;

No

מה שאלתי פה ? שאלתי מי הם הצאצאים של x. המשתנה WHO מקבל כל פעם את אחד מהצאצאים. כשאלחץ על נקודה פסיק הפרולוג תבדוק האם יש עוד צאצא, במידה וכן – אקבל אותו, אחרת אקבל NO.

התחלה

slide30

2 ?- tz(b,WHO).שאילתה חמישית

WHO = a ;

WHO = x ;

No

מה שאלתי פה ?

שאלתי של מי b הוא צאצא. במילים אחרות, מי הם האבא, סבא, אבא של סבא של b.

קיבלתי אכן כי a ו x ברשימה. וזה נכון היות ו a הוא אכן האבא של b וכמו כן x הוא האבא של a מה שהופך אותו להיות הסבא של b.

3 ?- tz(_,_).

Yes

מה שאלתי פה ?

שאלתי האם קיים קשר צאצא בבסיס הנתונים בכלל. כמובן שקיים קשר כזה ולכן התשובה היא

כן.

התחלה

slide31

שיעור מס' 6 נושא השיעור:הכרת הממשק הגראפי

התחלה

slide32

בעזרת מקש CTRL+C נקבל את השורה הבאה :

Action (h for help) ?

נלחץ על h על מנת לקבל את תפריט העזרה :

Action (h for help) ? Options:

a: abort b: break

c: continue e: exit

g: goals t: trace

h (?): help

התחלה

slide33

נטען כפי שלמדנו קודם את קובץ ה tz - צאצא

נפעיל את ה graphical debugger דרך תפריט debug.

נלחץ CTRL+C ולאחר מכן hנקבל את דף האופציות הזה –

עתה נלחץ על t לביצוע מעקב גרפי ונקבל בעצם שורה ריקה עם הסמן בה , נלחץ אנטר פעם אחת כדי לקבל את הסימן הזה – נרשום tz(a,c) כלומר נשאל האם a הוא צאצא של c ונלחץ על אנטר לאחר מכן.

התחלה

slide34

קבלנו את החלון של ה graphical debugger

לתוכנת המעקב יש מספר רב של פונקציות, אסביר רק את הפונקציה הרלבנטית לצורך המעקב.

להתקדם במעקב

זוכרים מה רשמנו לבדיקה ? tz(a,c)

עומק העץ

ניתן לראות בחלון זה את תוכן הקובץ שהרצנו (tz) ואת הסימן הירוק המצביע על השורה בה אנו נמצאים כרגע

הפרולוג חפשה בקובץ את הביטוי tz ומצאה אותו בשורה זו. כדי להתקדם במעקב נלחץ על סימן החץ שהוזכר קודם.

התחלה

slide35

לחצנו וזה המסך שקיבלנו

העץ ממשיך לגדול

הסימון הירוק עובר לאיבר הבא אותו הפרולוג תבדוקהאיבר הוא איש ish(x,y) כאשר נרוץ עם איבר

זה על המאגר שלנו ונבדוק את היחסים.

בפועל נרוץ עם ish(a,c)נלחץ שוב על חץ ההתקדמות ב DEBUGGER

התחלה

slide36

הסימון הירוק עובר לאיבר הבא אותו הפרולוג תבדוקהאיבר הוא איש ish(x,y) כאשר נרוץ עם איבר

זה על המאגר שלנו ונבדוק את היחסים.

בפועל נרוץ עם ish(a,c)נלחץ שוב על חץ ההתקדמות ב DEBUGGER

התחלה

slide37

כצפוי, היות ולא נמצא ה ish(a,c)תנסה הפרולוג את שורה 13ניתן לראות לפי הסימון הצהוב

נלחץ שוב על חץ ההתקדמות

התחלה

slide38

עתה תבדוק הפרולוג את ish(X,c) כלומר האם יש צאצאים ל c. ניתן לראות את הסימון הירוק

נלחץ שוב על חץ ההתקדמות

התחלה

slide39

צאצא ראשון של c הוא f

מציאתו תחזירנו לשורה 13

נלחץ שוב על חץ ההתקדמות

התחלה

slide40

הפרולוג תנסה להפעיל את חלקה השני של שורה 13 ותכשל

נלחץ שוב על חץ ההתקדמות

התחלה

slide41

חוזרים לשורה 12

נלחץ שוב על חץ ההתקדמות

התחלה

slide42

שוב מתבצעת סריקה

מחפשים אחר ish(a,f) לא מוצאים

נלחץ שוב על חץ ההתקדמות

התחלה

slide43

אנו בשורה 13 הפרולוג תכנס פנימה

נלחץ שוב על חץ ההתקדמות

התחלה

slide44

שוב תשאל את השאילתה של אישאבל הפעם עם ish(X,f) כלומר האם יש ל f צאצאים.

נלחץ שוב על חץ ההתקדמות

התחלה

slide45

אין לו ולכן השורה נצבעת בצבע זה

נלחץ שוב על חץ ההתקדמות

התחלה

slide46

סיימנו עם שורה 12 ו 13 עתה כזכור לנו, ל c יש 2 צאצאים שגילינו קודם לכן והם f ו g. עבור f בצענו את השאילתות הדרושות לחקור האם גם לו יש צאצאים ולא מצאנו כאלו.

עתה על אותו בסיס נבצע את "עבודת המחקר" עבור צאצא g.

נלחץ שוב על חץ ההתקדמות

התחלה

slide47

חוזרים בסריקת המאגר לשורה 7

נלחץ שוב על חץ ההתקדמות

התחלה

slide48

חוזרים בסריקת המאגר לשורה 7

נלחץ שוב על חץ ההתקדמות

התחלה

slide49

אחרי מציאת היחס תעבור הפרולוג בשורה 13 לחלק המסומן בירוק מודגש

נלחץ שוב על חץ ההתקדמות

התחלה

slide50

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

נלחץ שוב על חץ ההתקדמות

התחלה

slide51

היחס אינו נמצא והוא נכשל.

נלחץ שוב על חץ ההתקדמות

התחלה

slide52

הפרולוג תנסה את שורה 13

נלחץ שוב על חץ ההתקדמות

התחלה

slide53

הפרולוג נכנסת פנימה בשורה 13 ומנסה להפעיל את היחס ish(X,g) כלומר חיפוש אחר צאצאי g.כמובן שהיא תיכשל

נלחץ שוב על חץ ההתקדמות

התחלה

slide54

מתבצעת סריקה וכישלון צפוי

נשים לב כיצד העץ בריבוע call stack חוזר אחורה ברקורסיה.

נלחץ שוב על חץ ההתקדמות

התחלה

slide55

הכישלון של שורה 13 מחזירנו לשורה 12 שגם היא נכשלת כתוצאה מכך

נלחץ שוב על חץ ההתקדמות

התחלה

slide56

מתבצעת סריקה וכישלון צפוי

נלחץ שוב על חץ ההתקדמות

התחלה

slide57

שלבי החזרה ברקורסיה , ניתן לשים לב בשלבים אלו לעץ הרקורסיה המתואר בריבוע הימני העליון.

נלחץ שוב על חץ ההתקדמות

התחלה

slide58

נסגרה התוכנית והסתיים המעקב.

בשלב זה נצבע החלון השמאלי העליון באפור ואינו מאפשר התקדמות נוספת. עתה נחזור לקוד הפרולוג.

נלחץ שוב על חץ ההתקדמות

התחלה

slide59

קיבלנו תוצאה שלילית וצפויה שמשמעותה – אין ל c צאצא בשם a.

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

התחלה