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

מסמכים קשורים
מבוא למדעי המחשב

PowerPoint Presentation

Slide 1

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

תרגול 1

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

PowerPoint Presentation

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

תרגול 1

Slide 1

תרגול 1

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

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

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

Slide 1

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

PowerPoint Presentation

Microsoft Word - pitaron222Java_2007.doc

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

PowerPoint Presentation

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

PowerPoint Presentation

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

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

PowerPoint Presentation

PowerPoint Presentation

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

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

תרגול 1

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

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

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

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft PowerPoint - rec3.ppt

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

שקופית 1

Slide 1

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

PowerPoint Presentation

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

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

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

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

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

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

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

Slide 1

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

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

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

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

HTML - Hipper Text Makeup Language

Microsoft PowerPoint - 10_threads.ppt

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

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

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

Slide 1

Microsoft Word B

Microsoft Word - דוגמאות ב

Slide 1

Slide 1

PowerPoint Presentation

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

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

PowerPoint Presentation

מס' סידורי: ת.ז.: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך ה

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - lec10.ppt

PRESENTATION NAME

Tutorial 11

1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle ב

Microsoft Word - c_SimA_MoedA2006.doc

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1

PowerPoint Presentation

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

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

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

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

Microsoft PowerPoint - lec9.ppt

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

Slide 1

Slide 1

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

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

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

מקביליות

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

מצגת של PowerPoint

Microsoft PowerPoint - lec9.ppt

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

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

פייתון

ex1-bash

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

Slide 1

Slide 1

תמליל:

מבוא למדעי המחשב תכנות מונחה אובייקטים

תוכן עניינים טיפוסי נתונים מורכבים

המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals( Good bye ); המחלקה String מעשירה את שפת Java היא מוסיפה לשפה טיפוס נתונים חדש רצף של תווים בהכרח לא טיפוס נתונים פרימיטיבי

String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals( Good bye ); המבנה של המחלקה String המחלקה מאפשרת String <array of char> ליצור (באמצעות הפעולה (new מחרוזות חדשות ו- לאתחל אותן במהלך היצירה לפעול על המחרוזות שנוצרו המחלקה מגדירה לשם כך שלושה חלקים: שדות המחלקה String() String(<string>) String(<array of char>) tostring() charat(<index>) equals(<string>) חשוב: מבני נתונים (שדות) המקום שצריך להקצות כדי שיהיה אפשר לאכסן את רצף התווים של המחרוזת החדשה פרוצדורות אתחול (בנאים) פרוצדורות (מעין פונקציות) שמאתחלות את מבנה הנתונים במחרוזת הנחוצה שיטות שיטות (פונקציות לא סטטיות) לפעולה על המחרוזת שנוצרו (למען האמת יכול להיות לה גם חלק נוסף (סטטי) שאינו קשור לענייננו) בנאים שיטות המחלקה (על חלקיה) אינה אלא תבנית של טיפוס הנתונים המוגדר

String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals( Good bye ); יצירה של מחרוזת חדשה String <array of char> יצירה של מחרוזת חדשה נעשית באמצעות הפעולה new String( ) היצירה מתבצעת בשלבים: מוקצה מקום למבנה הנתונים שדות המחלקה בהתאם למה שרשום במחלקה השדות מאופסים בנאים String() String(<string>) String(<array of char>) בהתאם לטיפוס שלהם מופעל בנאי המאתחל את מבנה הנתונים במחרוזת הרצויה tostring() charat(<index>) equals(<string>) בהתאם לערך שמועבר בזמן היצירה מוחזרת הפניה אותה אפשר לשמור במשתנה לשימוש עתידי להפעיל שיטות על המחרוזת שנוצרה ערך שם טיפוס שיטות String str Hello

String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals( Good bye ); פעולה על מחרוזת קיימת (שכבר נוצרה) רושמים,str.method( ) כאשר String str הוא המשתנה בו שמורה ההפניה למחרוזת (שהתקבלה בתהליך היצירה) המחלקה <array of char> String היא שם של אחת השיטות שמוגדרות במחלקה method ו- הם הערכים שיש להעביר לשיטה בהתאם לפרמטרים שלה שדות String() String(<string>) String(<array of char>) לדוגמה str.tostring() מחזירה את רצף התווים ששמור במבנה הנתונים של המחרוזת (בדוגמה שלנו ( Hello str.charat(4) מחזיר את התו הרביעי של רצף התווים ששמור במבנה הנתונים (בדוגמה שלנו התו o ) בנאים tostring() charat(<index>) equals(<string>) bye ) str.equals( Good משווה את רצף התווים ששמור במבנה הנתונים של המחרוזת לרצף התווים מהפרמטר ומחזיר true אם ורק אם הם זהים (בדוגמה שלנו (false ערך שם טיפוס שיטות String str Hello

תוכן עניינים טיפוסי נתונים מורכבים מערך דינאמי

הטיפוס Object Object לפני שנתחיל בתיאור המערך הדינאמי, נסתכל על הטיפוס מחלקה ב- Java לענייננו, לעת עתה (עוד נחזור אל Object בהמשך) ניתן להגדיר משתנים מסוג Object במשתנה מסוג Object ניתן לתלות כל אובייקט של Java כדי לפעול על האובייקט שתלינו יש "להגיד" לקומפיילר מה תלינו באמצעות המרה Object x = new String( 123 Dag Makoach ); s.o.p(((string) x).substring(4,7)); // Dag

שדות בנאים שיטות Object[] data; int size; int incrementsize; DynamicIntArray DynamicIntArray(int initialcapacity) DynamicIntArray() int size() boolean isempty() void add(object element) void add(int index, Object element) Object get(int index) Object set(int index, Object element) Object remove(int index) String tostring() boolean equals(object x) מערך דינאמי לפעמים יש צורך במערך שהגודל שלו משתנה עם הזמן (מערך דינאמי) המערך הרגיל של Java לא מאפשר זאת נגדיר בעצמנו מחלקה בשם DynamicArray שתשמש תבנית לטיפוס חדש של מערך דינאמי ההתנהגות של המערך תוגדר כלהלן: נבדיל בין ה- capacity של המערך (מספר התאים במערך) לבין ה- size הלוגי של המערך (מספר התאים התפוסים במערך) המערך יתחיל עם capacity ראשוני (גדול מאפס), ובכל פעם שהתאים כולם של המערך יתמלאו נוסיף למערך תאים כמספר התאים של ה- capacity הראשוני. אם מספר התאים הפנויים יהיה כפליים מה- capacity הראשוני, נצמצם אותם במספר התאים של ה- capacity הראשוני. נגדיר את הפעולות (שיטות) הבאות על המערך: קבלת הגודל הלוגי (size) של המערך האם המערך ריק (isempty) הוספה (add) של ערך חדש בסוף המערך או במקום מסוים במערך (בתחום (size-1)].. ([0 קבלה (get) של ערך ממקום מסוים במערך (בתחום (size-1)].. 0]) החלפה (set) של ערך מסוים במערך (בתחום (size-1)].. 0]) מחיקה (remove) של ערך מסוים במערך (בתחום (size-1)].. 0]) תיאור התוכן של המערך באמצעות מחרוזת (tostring) השוואה (equals) של המערך עם מערך אחר נעיר ש- Java מגיע עם מחלקה בשם ArrayList שעושה מה שאנחנו עושים (ויותר) ערך שם טיפוס DynamicIntArray da data size incrementsize

מערך דינאמי public class DynamicIntArray { מסגרת ההגדרה השימוש יכול להיעשות בכל מחלקה public class MyClass { public static void main(string[] args) { בדף הבא // public static DynamicIntArray primesdarray(int n) { DynamicArray primes = new DynamicArray(); בדף הבא //

דוגמה לשימוש אפשרי public static DynamicArray primesdarray(int n) { DynamicArray primes = new DynamicArray(); for (int number = 2; number <= n; number = number + 1) { boolean isprime = true; for (int i = 0; i < primes.size() && (int) primes.get(i) * (int) primes.get(i) <= number && isprime; i = i + 1) if (number % (int) primes.get(i) == 0) isprime = false; if (isprime) primes.add(number); return primes; public static void main(string[] args) { Scanner myscanner = new Scanner(System.in); int n = myscanner.nextint(); DynamicArray primes = primesdarray(n); System.out.println(primes.toString());

private static final int DEFAULT_CAPACITY = 16; שדות ובנאים private Object[] data; private int size; private int incrementsize; // constructs an empty dynamic array with the specified initial capacity public DynamicArray(int initialcapacity) { if (initialcapacity <= 0) throw new IllegalArgumentException("non-positive initial capacity"); data = new Object[initialCapacity]; incrementsize = initialcapacity; size = 0; // constructs an empty dynamic array with an initial capacity of DEFAULT_CAPACITY public DynamicArray() { this(default_capacity);

השיטות size ו- isempty private Object[] data; private int size; private int incrementsize; // returns the number of elements in this dynamic array public int size() { return size; // returns true if the dynamic array contains no elements public boolean isempty() { return size == 0;

private Object[] data; private int size; private int incrementsize; השיטה add // inserts the specified element at the specified position public void add(int index, Object element) { בדף הבא // rangecheck(index); for (int i = size; i > index; i = i - 1) data[i] = data[i - 1]; data[index] = element; size = size + 1; ensurecapacity(); // increases the capacity of the dynamic array, if necessary, // to ensure that it can hold more elements private void ensurecapacity() { if (size == data.length) { Object[] newdata = new Object[data.length + incrementsize]; for (int i = 0; i < size; i = i + 1) newdata[i] = data[i]; data = newdata; // Adds the specified element to the end public void add(object element) { data[size] = element; size = size + 1; ensurecapacity();

השיטה get private Object[] data; private int size; private int incrementsize; // returns the element at the specified position public Object get(int index) { rangecheck(index); return data[index]; // check if a given index is in rang private void rangecheck(int index) { if (index < 0 index >= size) throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);

השיטה set private Object[] data; private int size; private int incrementsize; // replaces the element at the specified position with the specified element public Object set(int index, Object element) { rangecheck(index); Object prev = data[index]; data[index] = element; return prev;

private Object[] data; private int size; private int incrementsize; השיטה remove // removes the element at the specified position public Object remove(int index) { rangecheck(index); Object x = data[index]; for (int i = index + 1; i < size; i = i + 1) data[i - 1] = data[i]; ensurecompaction(); return x; // decrease the capacity of the array, if necessary, // to ensure that there is no too much free space private void ensurecompaction() { if (size == data.length - 2 * DEFAULT_CAPACITY) { Object[] newdata = new Object[data.length - incrementsize]; for (int i = 0; i < size; i = i + 1) newdata[i] = data[i]; data = newdata;

השיטה tostring private Object[] data; private int size; private int incrementsize; // returns a string representing the dynamic array public String tostring() { String output = "{"; for (int i = 0; i < size; i = i + 1) { Object x = data[i]; if (x == null) output = output + "(null)"; else output = output + "(" + x.tostring() + ")"; output = output + ""; return output;

השיטה equals private Object[] data; private int size; private int incrementsize; // compares the dynamic array for equality public boolean equals(object x) { if (!(x instanceof DynamicArray)) return false; DynamicArray other = (DynamicArray) x; boolean isequals = this.size == other.size; for (int i = 0; i < size && isequals; i = i + 1) if (this.data[i]!= other.data[i]) isequals = false; return isequals;