PowerPoint Presentation

מסמכים קשורים
PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

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

מבוא למדעי המחשב

מבוא למדעי המחשב

מבוא למדעי המחשב

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

Slide 1

תרגול 1

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

Slide 1

מהוא לתכנות ב- JAVA מעבדה 3

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

מבוא למדעי המחשב

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

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

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Slide 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

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

סדנת תכנות ב C/C++

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

שאלהIgal : מערכים דו מימדיים רקורסיה:

מצגת של PowerPoint

Microsoft PowerPoint - rec3.ppt

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

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

PowerPoint Presentation

Microsoft PowerPoint - rec1.ppt

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

תרגול 1

Microsoft Word - c_SimA_MoedB2005.doc

מבוא למדעי המחשב

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

PowerPoint Presentation

שאלהIgal : מערכים דו מימדיים רקורסיה:

Microsoft Word - pitaron222Java_2007.doc

Slide 1

תרגול 1

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

Tutorial 11

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

לנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי

HTML - Hipper Text Makeup Language

שקופית 1

PowerPoint Presentation

Microsoft PowerPoint - 10_threads.ppt

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תכנות מונחה עצמים א' – תש"ע

ex1-bash

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

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

תרגיל בית מספר 1#

מבוא למדעי המחשב

Slide 1

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

הגשה תוך שבוע בשעת התרגול

תרגול 3 - מערכים

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

תרגול מס' 7: תרגילים מתקדמים ברקורסיה

Slide 1

Microsoft PowerPoint - Lecture1

Slide 1

Slide 1

איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl

פייתון

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

מבוא למדעי המחשב

Microsoft Word B

PRESENTATION NAME

Microsoft Word - Ass1Bgu2019b_java docx

הגשה תוך שבוע בשעת התרגול

Microsoft Word - דוגמאות ב

Slide 1

תרגול 1

Slide 1

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

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

PowerPoint Presentation

מתכונת עיצוב 3013

שעור 6

Python 2.7 in Hebrew

תמליל:

תוכנה 1 תרגול מס 3 JVM עבודה עם מחרוזות כתיבת העברת פרמטרים קוד עם מתודות )Strings( )Methods(

שלבי הפיתוח - חזרה קצרה ישנם שני שלבים נפרדים: שלב פיתוח התוכנית בשלב זה אנו משתמשים במהדר )קומפיילר( כדי להמיר קבצי.java )קבצי טקסט הקריאים למתכנת( לקבצי.class שנועדו עבור המפרש )אינטרפרטר(. קומפילציה Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 2

שלבי הפיתוח - חזרה קצרה ישנם שני שלבים נפרדים: שלב הרצת התוכנית בשלב זה אנו משתמשים במפרש כדי להריץ את קבצי ה- class שיצרנו. ב- Java אותו קובץ class יכול לרוץ בסביבות שונות אם קיים עבורן מפרש. הרצה Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 3

שלבי הפיתוח חזרה קצרה )Java Development Kit( קומפיילר ה JDK- הפיתוח ה JRE- )Jave Runtime Environment( להרצת תוכניות )Java Virtual Machine( JVM הספריות הסטנדרטיות נדרש לתהליך נדרש Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 4

Java Virtual Machine ה JVM- היא Java יודעת לטעון תוכניות "מכונה וירטואלית" המריצה תוכניות יודעת לוודא את תקינות הקבצים הנטענים מכילה את המפרש )Interpreter( Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 5

העברת פרמטרים Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 6

מה יהיה פלט התכנית הבאה? תשובה: 3 3 למה?? Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 7

By value, By reference העברת פרמטרים :by value הפרמטר למעשה מועתק, נשלח למתודה. משתנים מועברים by value נוצר עותק נוסף שלו אשר שינוי פרמטר מטיפוס פרימיטיבי בתוך המתודה לא יראה מחוץ למתודה. אנלוגיה: שליחת מסמך word במייל, אם המקבל משנה את העותק שלו, העותק הנוכחי לא מושפע מכך. Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 8

מה יהיה פלט התכנית הבאה? תשובה: ]1,2,3[ ]2,3,4[ למה?? 9

By value עבור אובייקטים עדיין מועבר עותק,by value אבל הפעם זה עותק של הרפרנס לאובייקט שנמצא ב-.heap כך שגם הרפרנס המקורי וגם העותק מצביעים לאותו האובייקט. שינוי הפרמטר בתוך המתודה נשמר גם מחוץ למתודה אנלוגיה: שליחת כתובת של גוגל דוק, כל שינוי שצד אחד עושה במסמך, נראה גם אצל הצד השני. Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 10

מה יהיה פלט התכנית הבאה? תשובה: ]1,2,3[ ]1,2,3[ למה?? 11

By value כאשר מעבירים משתנה מטיפוס הפניה, הכתובת עצמה מועתקת.by value נחזור לדוגמת הגוגל דוק: נניח ששלחנו למישהו כתובת של מסמך גוגל דוק, והוא מחק את הכתובת. האם אצלנו הכתובת נמחקה גם?? 12

מחרוזות )STRINGS( Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 13

מחרוזות - חזרה מחרוזות הן אובייקטים המכילים רצף של תווים. String s = Hello ; index 0 1 2 3 4 character H e l l o כל אלמנט במחרוזת הוא מסוג.char האינדקס של התו הראשון הוא 0. אורך המחרוזת מוחזר ע"י הפונקציה length() שרשור מחרוזות נעשה ע"י האופרטור + String s2 = s + World + 5 // Hello World5 14

מחרוזות - השוואה נניח ונרצה להשוות שתי מחרוזות )לבדוק האם הן שוות(. public static void main(string[] args) { String s1 = new String("hello"); String s2 = new String ("hello"); מה יודפס למסך? למה? System.out.println(s1.equals(s2)); System.out.println(s1 == s2); false true כדי להשוות שתי מחרוזות מבחינת תוכנן יש להשמש בפונקצייה equals() באופרטור == שבודק אם מדובר באותו אובייקט ולא 15

מחרוזות פונקציות בדיקה Method equals(str) equalsignorecase(str) startswith(str) endswith(str) contains(str) Description whether two strings contain the same characters whether two strings contain the same characters, ignoring upper vs. lower case whether one contains other's characters at start whether one contains other's characters at end whether the given string is found within this one 16

מחרוזות פונקציות שימושיות indexof(str) Method name substring(index1, index2) or substring(index1) tolowercase() touppercase() Description index where the start of the given string appears in this string (-1 if not found) the characters in this string from index1 (inclusive) to index2 (exclusive); if index2 is omitted, grabs till end of string a new string with all lowercase letters a new string with all uppercase letters המימוש של הפונקציות לעיבוד מחרוזות יחזיר תמיד מחרוזת חדשה ולא יבצע שינויים על המחרוזת המקורית שעליה נקראה הפונקציה ( are Strings.!!)immutable in Java 17

מחרוזות פיצול לחלקים Method name split(delimiterstring) Description Splits the string into tokens using the given delimiter string. Returns an array of Strings. String str= Another useful example"; String[] tokens = str.split( ); //tokens = { Another, useful, example 18

הדפסת מחרוזות ומספרים int a=1805; double d=123.456789; System.out.println ("a=" + a); //"a=1805"; System.out.format ("a=%d\n",a); //"a=1805"; System.out.format ("d=%.2f%n",d); //"d=123.46" System.out.format ("d=%20.10f%n",d); //"d= 123.4567890000" %n - platform-specific line separator %d decimanl %f float http://docs.oracle.com/javase/tutorial/java/data/numberformat.html 19

בניית תוכנית תוך שימוש ראוי במתודות מתודות )METHODS) Javaתכנות מתקדם בשפת אוניברסיטת תל אביב 20

- הגדרה Span בהינתן מערך של מספרים וערך כלשהו נגדיר את ה- span של הערך כמספר האברים )כולל( בין שני המופעים הקיצוניים של הערך במערך. [1,2,1,1,3] והערך 1 ה span הוא 4 [1,4,2,1,1,4,1,4] והערך 1 ה span הוא 7 [1,4,2,1,1,4,1,4] והערך 2 ה span הוא 1 דוגמאות: המערך המערך המערך 21

Max Span Max-Span יהיה ה span המקסימלי על פני כל הערכים במערך מסוים נרצה לממש פונקציה שבהינתן מערך של מספרים שלמים תחזיר את ה Max-Span שלו [1,2,1,1,3] ה maxspan- הוא 4 [1,4,2,1,1,4,1,4] ה maxspan- הוא 7 דוגמאות: המערך המערך 22

נתחיל לעבוד נפתח פרויקט חדש בשם MaxSpan נתחיל לכתוב תכנית בדיקה לפתרון שלנו 23

תכנית בדיקה נגדיר מחלקה חדשה עבור הבדיקות החלק הראשון il.ac.tau.cs.sw1.maxspan.tests.testmaxspan - חבילה (package) http://en.wikipedia.org/wiki/java_package כעת נכתוב את המקרים שנרצה לבדוק: 24

25 תכנית בדיקה

ועכשיו לפתרון public static int maxspan(int[] array) { int max = 0; for (int i = 0; i < array.length; i++) { int j = array.length - 1; for ( ; j >= i; j--) { if (array[i] == array[j]) { break; int span = j - i + 1; if (max < span) { i j j max = span; return max; break! 26

)?( בדיקה, Refactor ושדרוג הקוד נבדוק שתכנית הבדיקה עובדת בואו נכתוב את הפונקציה בצורה יותר "נכונה" דיון: כתיבת הפונקציה בצורה יעילות מודולריות, פתרון Top-down הבנת הקוד אפשרות לשינויים עתידיים "נכונה" 27

הפונקציה הראשית public static int maxspan(int[] nums) { int max = 0; for (int value: values(nums)) { return max; נרצה לעבור על כל ערך פעם אחת בלבד )יעילות( max = Math.max(max, span(value, nums)); 28

וחלק מפונקציות העזר private static int span(int value, int[] nums) { return lastindexof(value, nums) - firstindexof(value, nums) + 1; private static int[] values(int[] nums) { int[] values = new int[nums.length]; int nextindex = 0; for (int i = 0; i < nums.length; i++) { if (!contains(values, nextindex, nums[i])) { add(values, nextindex++, nums[i]); return Arrays.copyOf(values, nextindex); 29

והשאר private static int lastindexof(int value, int[] nums) { for (int i = nums.length - 1; i >=0; i--) { if (nums[i] == value) { return i; // should never get here return -1; private static int firstindexof(int value, int[] nums) { int index = -1; for (int i = 0; i < nums.length; i++) { if (nums[i] == value) { index = i; break; return index; 30

והשאר private static void add(int[] values, int position, int value) { values[position] = value; private static boolean contains(int[] temp, int templength, int value) { for (int i = 0; i < templength; i++) { if (temp[i] == value) { return true; return false; 31

תכנון "top-down" int maxspan(int[]){ For each value in the array Compute its span in the array Return the largest span found int[] values(int[]){ int span(int, int[]){ Create an empty output array For every element in the input array If the output array does not already contain the current value, add it to the output array Find the first occurrence of value int firstindexof (int, int[]){ Find the last occurrence of value int lastindexof (int, int[]){ Span = last - first +1 boolean contains(int[], int, int) void add(int[], int, int){ We also need to adjust the output array size 32

סיכום מה ההבדל העיקרי בין שני הפתרונות לבעיית ה-?maxSpan מדוע הפיתרון השני, עדיף? על אף היותו ארוך יותר, הוא דרך העבודה על תכנית צריכה להיות.top-down נתחיל מבדיקות: נגדיר מהי התנהגות נכונה של התכנית. רק לאחר מכן נעבור למימוש עצמו. נחלק לפונקציות בצורה בה כל פונקציה אחראית על פעולה אחת בלבד. נבנה תכנית מודולרית ככל הניתן. 33

הסוף... 34