ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

Similar documents
Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

מבוא לתכנות ב- JAVA תרגול 7

מבוא למחשב בשפת פייתון

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

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

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

Practical Session No. 13 Amortized Analysis, Union/Find

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

תרגול 8. Hash Tables

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

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

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

2 יחידות לימוד הוראות לנבחן רשו ם "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

מבוא לשפת C מבוא לשפת סי - תירגול 1

למבחן ביסודות מדעי המחשב דוגמא

מבוא לשפת C תירגול 1: מבוא מבוא לשפת סי - תירגול 1

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

Redirection The Input Buffer

בוחן בתכנות בשפת C בצלחה

המבנה הגאומטרי של מידה

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

SPSS 10.0 FOR WINDOWS

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

מבוא למחשב בשפת Matlab

אנגלית (MODULE E) בהצלחה!

ASP.Net MVC + Entity Framework Code First.

שנה"ל תשע"ד,סמסטר א',מועד א שאלון בחינה בקורס: מבוא למדעי המחשב לתעו"נ מספר : בחלק א' 11 שאלות, יש לענות על 11 מתוכן )כל שאלה מזכה ב 7 נקודות(

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

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

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

יסודות מבני נתונים. תרגול :9 ערימה - Heap

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

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

תורת הקומפילציה

מדריך למשתמש התקנה עצמית

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

מדריך למשתמש בשירות. yes MultiRoom

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

תרגיל בית מספר - 1 להגשה עד 9 בנובמבר בשעה 23:55

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

משימה מסכמת במדעי המחשב - מודול צד לקוח תשע"ז,2017

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

תרגול מס' 2 הכרות, הכנת תכנית בשפת C והרצתה במערכת Visual C

יחידה ארגון המחשב ושפת סף: שאלות תרגול

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות


הבסיס כתיבת התכנית הראשונה שימוש במשתנים. הטיפוס הבסיסי object. הטיפוס הבסיסי string משפטי בקרה. שימוש ב- Enumerations. שימוש ב- Namespaces

Patents Basics. Yehuda Binder. (For copies contact:

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

5.1 הוראה לביצוע-בתנאי

יסודות התכנות ב- VBA לתוכנת Microsoft Excel

פרק 7 ביצוע-חוזר 7.1 ביצוע-חוזר מספר פעמים ידוע מראש 1 בעיה הביצוע-החוזר.

A R E Y O U R E A L L Y A W A K E?

מבנה התכנית יסודות מדעי המחשב התכנית הראשונה שלי

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

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

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

זה. Nir Adar

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

Reflection Session: Sustainability and Me

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

Genetic Tests for Partners of CF patients

דוגמה 1: הדרקון המשתנה שינוי גודל דמות

State Pattern מימוש מכונת מצבים (FSM) מבוא בעיה תמיכה ועדכונים עדכון מס' 48 מאי 2002

שאלון ו' הוראות לנבחן

interface Student {tag: Student, name: string; age: number;} const makestudent = ( name: string, age: number ) : Student =>

לשרטוט חשמלי בתוכנת OrCad-Capture

התכנית הראשונה שלי

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

תרגול 11 תור עץ חיפוש בינארי

הבינגמה הדובע תביבסב תונכתל ריהמ ךירדמ

מדדי מרכז הגדרה: מדדים סטטיסטיים המשקפים את הנטייה המרכזית של ההתפלגות מדדי מרכז מרכז ההתפלגות

(MODULE E) ב ה צ ל ח ה!

NTFS ADS Magic Tricks

תכניות סטנדרטיות ב UNIX שרשור פקודות באמצעות Pipeline עבודה ב- bash

שאלון ד' הוראות לנבחן

מדעי המחשב פתרון בחינת הבגרות פרק ראשון

מושגים בסיסיים תלמידים והורים יקרים,

מדריך למשתמש התקנה עצמית

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

שאלון ו' הוראות לנבחן

חוברת זו כוללת חומר תמיכה לנלמד בתרגולים בנושא שימוש בתוכנת

Relationships: Everything Else is Commentary

Theories of Justice

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

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

Transcription:

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ בדף העבודה יש תירגול בסביבת העבודה לשפת #C לסביבות עבודה אחרות. )2015 )Visual Studio אך היא מתאימה גם לשפת Java וגם

o 1. ריצה של כל התוכנית ועצירה בסוף יש לבחור אחת מהאפשרויות: <Ctrl> + <F5> לחיצה על שני המקשים: o Debug->Start Without Debugging מריץ את כל התוכנית, ועוצר בסופה. כך ניתן לבדוק אם הפלט של התוכנית נכון. int x,y; Console.WriteLine("Please enter number"); x = int.parse(console.readline()); y = x + 1; Console.WriteLine("x= " + x + " y= " + y); תרגול: העתיקו את התוכנית לסביבת העבודה, הריצו אותה הכניסו קלט ובידקו את הפלט בחלון ה Console )מסך הקלט/פלט(. טיפ: לאן מסך ה Console )מסך הקלט/פלט( נעלם? אם מריצים את התוכנית ע"י אחת האפשרויות: <F5> לחיצה על מקש: o o לחיצה על Debug->Start Debugging o התוכנית לא עוצרת בסיום ההרצת התוכנית, ולכן אם בסיום התוכנית יש פלט, מכיוון שהתוכנית נסגרת הוא "נעלם", ובדקו Console תרגול: הריצו שוב את התוכנית, הפעם עם אחת האפשרויות הנ"ל, הכניסו את הקלט בחלון ה שחלון ה Console נסגר. 2

פתרון ביניים הוסיפו לתוכנית שורת קלט בסיום התוכנית, כדי שהתוכנית תעצור בסופה int x,y; Console.WriteLine("Please enter number"); x = int.parse(console.readline()); y = x + 1; Console.WriteLine("x= " + x + " y= " + y); Console.WriteLine("Please press on <ENTER> key"); Console.ReadLine(); תרגול: הריצו שוב את התוכנית, עם אחת האפשרויות: <F5> לחיצה על מקש: o לחיצה על Debug->Start Debugging o o הפעם התוכנית תעצור בשורת הקלט ותחכה להקלדת <ENTER> 3

2. עצירה לאחר ביצוע כל שורה בלי כניסה לפעולות Over( )Step מצב ניפוי שגיאות זה, משמש לריצה על כל אחת משורות התוכנית, כאשר המחשב עוצר לאחר ביצוע של כל שורה, במצב זה אם בשורת הפקודה יש קריאה לפעולה, הקריאה לפעולה מתבצעת אך המחשב לא "נכנס" לפעולה אלא ממשיך לשורה הבאה. יש לבחור אחת מהאפשרויות: <F10> לחיצה על מקש: o Debug->Step Over o מבצע שורה בתוכנית ועוצר. טיפ: השורה בוצעה רק לאחר שהמחשב הגיע לשורה הבאה int x,y; Console.WriteLine("Please enter number"); x = int.parse(console.readline()); y = x + 1; Console.WriteLine("x= " + x + " y= " + y); Console.ReadLine(); לדוגמה: בתוכנית הנ"ל עדייו לא בוצעה שורת הפלט של number" "Please enter 4

3. עצירה לאחר ביצוע כל שורה עם כניסה לפעולות Into( )Step מצב ניפוי שגיאות זה, משמש לריצה על כל אחת משורות התוכנית, כאשר המחשב עוצר לאחר ביצוע של כל שורה, במצב זה אם בשורת הפקודה יש קריאה לפעולה, הקריאה לפעולה מתבצעת והמחשב "נכנס" לפעולה, בסיום הפעולה המחשב ממשיך לשורה שלאחר הקריאה לפעולה. יש לבחור אחת מהאפשרויות: <F11> לחיצה על מקש: o Debug->Step Over o מבצע שורה בתוכנית ועוצר. טיפ: השורה בוצעה רק לאחר שהמחשב הגיע לשורה הבאה public static int Pow(int i) i = i * i; return i; static void Main(string[] args) for (int i = 2; i <= 10; i++) Console.WriteLine(Pow(i)); ט.כ הפעולה מקבלת מספר שלם ט.י הפעולה מחזירה את הערך בריבוע // // הריצו את התוכנית הנ"ל תוך שימוש ב Step Into האם הפלט זהה? ותוך שימוש ב Step Over מה היתרון בשימוש בכל אחת מההרצות? 5

Locals.4 חלונית Locals בזמן שמתחילים את ההרצה )שורה אחר שורה( נפתח חלון בשם המשתנים המקומיים. כתבו טבלת מעקב לתוכנית הבאה: אשר מראה את הערכים של public static int Pow(int i) i = i * i; return i; static void Main(string[] args) for (int i = 2; i <= 10; i++) Console.WriteLine(Pow(i)); ט.כ הפעולה מקבלת מספר שלם ט.י הפעולה מחזירה את הערך בריבוע // // שאלה: האם הערכים של משתנה i בתוכנית הראשית זהים לערכים של משתנה i בפעולה? 6

i בחלונית בתוכנית יש 2 משתנים שונים שלשניהם קוראים i הריצו שוב את התוכנית תוך שימוש ב Step Into ועקבו בכל פעם אחרי הערך של המשתנה,Locals התוכנית תראה בכל פעם את הערך של המשתנה המקומי i שנמצא בטווח ההכרה. הערה: כדי לבדוק את הקוד בזמן ריצה )ולבדוק תיקון אפשרי( ניתן בחלונית Locals לשנות את ערכי המשתנים. שגיאת קומפילציה: המחשב לפני או בזמן ביצוע הידור )קומפילציה(, יציין שגיאה כאשר משתנה לא נמצא בטווח ההכרה public static int Pow(int i) x = 3; // ILLEGAL i = i * i; return i; static void Main(string[] args) for (int i = 2; i <= 10; i++) Console.WriteLine(Pow(i)); Console.WriteLine(i); // ILLEGAL ט.כ הפעולה מקבלת מספר שלם ט.י הפעולה מחזירה את הערך בריבוע // // 7

.5 חלונית Watch נתון קטע תוכנית: הקלט הינו של 3 מספרים שלמים שונים Console.WriteLine("Enter 3 DIFFERENT numbers"); int A = int.parse(console.readline()); int B = int.parse(console.readline()); int C = int.parse(console.readline()); if (A < B) if (B < C) Console.WriteLine("2"); else if (A < C) Console.WriteLine("3"); else Console.WriteLine("1"); else if (B > C) Console.WriteLine("II"); else if (A > C) Console.WriteLine("III"); else Console.WriteLine("I"); בצעו מעקב אחרי הקוד עם טבלת מעקב ידנית )ללא :)Debugger צריך עמודה לכל אחד מהמשתנים, לכל אחד מהתנאים הבוליאנים ולפלט יש להכניס את הקלט 15,5,10 משמאל לימין. A B C A < B B < C A < C B>C A>C פלט 15 5 10 8

כדי שהמחשב יעזור לנו לעקוב אחר הקוד, נרצה לראות את הערך של כל אחד מהתנאים הבוליאנים, לשם כך ניתן להשתמש ב Watch כדי לבצע זאת צריך לסמן תנאי בוליאני מסויים, ואז ע"י לחיצה על המקש הימני בעכבר לבחור Watch' 'Add A < B לדוגמה: סומן התנאי : הערה 1: ניתן להשתמש בדרך זו בסימון התנאי רק לאחר תחילת הרצת התוכנית )לדוגמה להריץ שורה בודד ב )Step Over( ראו בחלונית Watch את הערך הבוליאני של התנאי הבוליאני A. < B הערה 2: ניתן לרשום תנאי בוליאני או כל חישוב אחר )לדוגמה 10+A( ישירות בתא פנוי בחלונית ה Watch 9

1( בצעו שוב מעקב אחרי הקוד עם טבלת מעקב, הפעם ניתן להעזר ב debugger ובחלונית watch מה הפלט עבור סדרה 10=C 15=A? 5=B A פלט B C A < B B < C A < C B>C A>C האם הפתרון זהה לטבלת המעקב הידנית? אם לא מה הייתה השגיאה? A =, B =,C = A =, B =,C = A =, B =,C = A =, B =,C = A =, B =,C = A =, B =,C = תנו דוגמה לקלט אשר עבורו יהיה הפלט: '1' תנו דוגמה לקלט אשר עבורו יהיה הפלט: 'I' תנו דוגמה לקלט אשר עבורו יהיה הפלט: '2' תנו דוגמה לקלט אשר עבורו יהיה הפלט: 'II' תנו דוגמה לקלט אשר עבורו יהיה הפלט: '3' תנו דוגמה לקלט אשר עבורו יהיה הפלט: 'III' )2 )3 )4 )5 )6 )7 10

6. ריצה של התוכנית ועצירה בסמן כדי להגדיר לתוכנית לרוץ עד הסמן, יש לעמוד עם הסמן על השורה שבה רוצים שהתוכנית תעצור, ניתן להגיע למיקום על ידי החיצים, או על ידי לחיצה על מקש עכבר שמאלי יש לבחור אחת מהאפשרויות: <Ctrl> + <F10> לחיצה על שני המקשים: o Run To Cursor לחיצה על מקש עכבר ימני, ואז לבחור בתפריט: o המחשב מריץ את התוכנית, ועוצר במיקום של הסמן. דוגמה לבדיקת פתרון: התוכנית הבאה אמורה להגריל מספר בין 0 ל 99 כולל ולשחק את המשחק 7 בום, כלומר היא אמורה ולהדפיס את המספר שמקיים את החוקים )אחת הספרות שווה 7 או המספר מתחלק ב 7( ואז לסיים את התוכנית. Random rnd = new Random(); int x; bool flag = true; while (flag) x = rnd.next(0,100); if ((x % 10 == 7) && (x / 10 == 7) && (x % 7 == 0)) Console.WriteLine("BOOM x= " + x); flag = false; יש בתוכנית שגיאה... if הריצו את התוכנית עד שתגיע לשורה המסומנת בצהוב וגלו את השגיאה. אם עדיין התשובה לא ברורה, עצרו את התוכנית בשורת התנאי: ((x % 10 == 7) && (x / 10 == 7) && (x % 7 == 0)) שנו את הערך של משתנה x )בחלונית ) Local ובדקו כל אחד מהתנאים הבוליאנים )בחלונית )Watch 11

7. ריצה של התוכנית ועצירה במספר נקודות עצירה )BreakPoint( כדי להגדיר נקודות עצירה, יש לעמוד עם הסמן על השורה שבה רוצים להוסיף את נקודת העצירה. ואז יש לבחור אחת מהאפשרויות: <F9> לחיצה על מקש: o Debug->Toggle BreakPoint o Breakpoint <- Insert Breakpoint לחיצה על עכבר ימני, ואז לבחור o כדי להריץ את התוכנית עד לנקודת העצירה, יש לבחור אחת מהאפשרויות: <F5> לחיצה על מקש: o Debug->Start Debugging o מריץ את כל התוכנית, ועוצר )כאשר המחשב מגיע( באחת מנקודות העצירה. 12