PowerPoint Presentation
|
|
- סאלח בוחבוט
- לפני5 שנים
- צפיות:
תמליל
1 מבוא ל-++ C משתנים מיוחסים הקצאת זיכרון דינאמית קלט/פלט ב-++ C מחלקות namespaces const
2 2
3 C היא שפת תכנות שנבנתה מעל ++C ++C מוסיפה מגוון רב של תכונות מתקדמות #include <iostream> using namespace std; בעיקר עבור תכנות מונחה עצמים int main(int argc, char** argv) { cout << "Hello world" << endl; return 0; השלד הבסיסי של הקוד בשפה זהה ל- C רוב הקוד של C ניתן לקמפול ישירות כ-++ C נהוג ב-++ C לבצע דברים אחרת תוך שימוש ביתרונות השפה לא כותבים ב-++ C קוד בסגנון C! - void* לא נהוג להשתמש ב- printf,,file* ועוד ב-++ C יש תחליפים עדיפים 3
4 כדי לקמפל קוד ++C נשתמש בקומפיילר ++g אופן השימוש זהה ל- gcc, למעשה gcc הוא ++g. קבצי ה- header הסטנדרטיים של ++C הם ללא סיומת, למשל iostream קבצים הנכתבים על ידי משתמשים הם בעלי סיומת h כמו ב- C קבצי ה- source ב-++ C קרויים הם בעלי סיומת cc,cpp או C )גדולה( כדי לכלול קבצי header של C מוסיפים c בתחילת שמם, אשר מוסיף תכונות פופולריות מ-++ C : C הוא סטנדרט חדש של C99 אתחול משתנים באמצע בלוק )ובתוך לולאת for או משפט )if ערכים קבועים - const שימוש בהערות של שורה אחת // למשל: #include <cstdio> כל התכונות האלה קיימות ב-++ C ובדרך כלל חשיבותן גבוהה לסגנון השפה 4
5 new delete 5
6 הקצאות זיכרון דינאמיות ב-++ C מתבצעות בעזרת האופרטורים new ו- delete ניתן להקצות משתנה חדש )ולאתחלו( על ידי :new int* ptr = new int; // No explicit initialization int* ptr = new int(7); // The new integer is initialized to 7 :new[size_t] ניתן להקצות מערך של משתנים על ידי int* array = new int[n]; שחרור של עצם שהוקצה על ידי new מתבצע בעזרת :delete delete ptr; :delete[] שחרור של עצם שהוקצה על ידי new[size_t] מתבצע בעזרת delete[] array; 6
7 int* ptr = new int(5); int* array = new int[*ptr]; // No need to check for NULLs C++ C int* ptr = malloc(sizeof(int)); *ptr = 5; if (!ptr) { // handle errors... int* array = malloc(sizeof(*array)* *ptr); if (!array) { // handle errors... delete ptr; delete[] array; )תרגול 10( free(ptr); free(array); אסור להתבלבל בין delete ו-[] delete אסור לערבב את new ו- delete עם malloc ו- free למשל להקצות עם new ולשחרר עם free אין צורך לבדוק את ערך המצביע המוחזר מ- new NULL אינה מחזירה new טיפול בשגיאות ב-++ C מתבצע בעזרת מנגנון החריגות 7
8 ב-++ C משתמשים ב- new ו-[ new[size_t כדי להקצות זיכרון חדש האופטור new מחזיר מצביע מהטיפוס המתאים אין צורך לבדוק את הצלחת ההקצאה כמו ב- C ב-++ C משתמשים ב- delete ו-[] delete כדי לשחרר זיכרון delete[] עם ו-[ new[size_t delete משחררים עם new לא משתמשים ב- malloc ו- free )מלבד המקרה של חיבור קוד C ישן( 8
9 9
10 ב-++ C ניתן לאגד מספר פונקציות וטיפוסים בצורה לוגית תחת namespace בדומה לארגון קבצים בתיקיות namespace math { double power(double base, double exp); double sqrt(double number); double log(double number); לכל פונקציה )או טיפוס או משתנה( המוגדרת ב- namespace יש שם מלא מהצורה <namespace>::<item> אורפטור :: )קרוי )scope משמש להפרדה בין שמות namespace כאשר מציינים שמות מלאים כדי לגשת לפונקציה שאינה ב- namespace הנוכחי יש לרשום את שמה המלא, למשל: double root = math::sqrt(10.0); 10
11 ניתן להשתמש בהוראת using כדי לחסוך את כתיבת השם המלא בכל פעם הוראת using "תעתיק" את הגדרת הפונקציה ל- namespace הנוכחי using math::power; using namespace math; ניתן להשתמש בהוראות <name> using namespace כדי לבצע using לכל תוכן ה- namespace בבת אחת ניתן לקנן namespace אחד בתוך השני: namespace mtm { namespace ex4 { int f(int n); כל ההגדרות מהספריה הסטנדרטית מופיעות תחת ה- namespace הסטנדרטי הקרוי std מומלץ לא לבצע using namespace std אלא להשתמש רק בחלקים מהספריה הסטנדרטית הדרושים ה- namespace הראשי מצוין על ידי :: מה ההבדל בין f ל- f ::? 11
12 יתרונות: ניתן לקבץ בצורה לוגית נוחה פונקציות דומות ניתן להשתמש בשמות קצרים וברורים יותר ללא חשש להתנגשויות מאפשר החלפה, מימוש ומיזוג של מימושים שונים בקלות typedef enum { MTM_OUT_OF_MEMORY, /*...*/ MtmErrorCode; C void mtmprinterrormessage(mtmerrorcode error); namespace mtm { enum ErrorCode { OUT_OF_MEMORY, /*...*/ ; C++ void printerrormessage(errorcode error); 12
13 ניתן לקבץ קוד בצורה לוגית בעזרת חלוקתו ל- namespace שונים ניתן להשתמש ב- using כדי להימנע מכתיבת שמות מלאים בקוד בזכות namespace ניתן לשמור על שמות קצרים וברורים ללא צורך בתחיליות כמו ב- C הקוד מהספריה הסטנדרטית מופיע תחת ::std 13
14 הגדרת משתנים קבועים מצביעים קבועים 14
15 בהכרזה על משתנה ניתן להוסיף לשם הטיפוס את המילה השמורה const לא ניתן לשנות את ערכו של משתנה אשר מוגדר כ- const )קבוע( לאחר אתחולו לכן חובה לאתחל משתנים קבועים const int n = 5; n = 7; // error: assignment of read-only variable `n' const int m; // error: uninitialized const `m' ניתן להכריז על פרמטרים וערכי חזרה של פונקציה כ- const : char* strcpy(char* destination, const char* source); כותב הפונקציה מתחייב לא לשנות את ערך הארגומנט const char* studentgetname(student s); ניתן להחזיר משתנה פרטי ללא חשש לגרימת נזק מצד המשתמש נכונות השימוש במשתנים קבועים נאכפת על ידי הקומפיילר 15
16 כאשר מוסיפים const להגדרת מצביע ייתכנו מספר אפשרויות: הכתובת הנשמרת במצביע קבועה הערך הנשמר במשתנה המוצבע קבוע ניתן למקם את המילה const במיקום שונה בהגדרת הטיפוס כדי לקבל כל אחת מהתוצאות הרצויות const int* cptr; int const* cptr2; אם ה- const מופיע ראשון הוא מתייחס לשם הטיפוס הבא אחריו בכל שאר המקרים const מתייחס לשמאלו int* const ptr = NULL; // Must be initialized, why? const int* const ptr = NULL; ניתן לרשום יותר מ- const אחד 16
17 1) int i = 7; 2) const int ci = 17; 3) const int* pci = &ci; 4) *pci = 7; 5) pci = &i; 6) int* pi = &ci; 7) pci = pi; 8) pi = pci; 9) int* const cpi = &i; 10) *cpi = 17; 11) cpi = &i; 12) int* const cpi2 = &ci; 13) const int* const ccpi = &ci; 14) ccpi = &ci; אילו מהשורות הבאות יגרמו לשגיאת קומפילציה? 17
18 void h() { X val; // val can be modified g(&val); משתנה אשר קבוע בהקשר אחד אינו בהכרח קבוע: void g(const X* p) { // can't modify *p here ב-++ C מגדירים קבועים בעזרת משתנים קבועים )גלובליים אם צריך( במקום בעזרת #define מאפשר את בדיקת הטיפוס על יד הקומפיילר מאפשר הגדרת קבועים מטיפוסים מורכבים const int MAX_SIZE = 100; const Rational ZERO = rationalcreate(0,1); static const char* const MONTHS[] = {"JAN","FEB","MAR","APR","MAY","JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"; חשוב להקפיד על שימוש נכון בקבועים correctness( )const כאשר ניתן ב-++ C הקפידו על const מההתחלה, הוספה מאוחרת של const יוצרת כדור שלג של שינויים 18
19 ניתן להגדיר משתנים ב-++ C כקבועים כך שלא ניתן לשנות את ערכם ניתן להגדיר פרמטרים וערכי חזרה של פונקציות כקבועים עבור מצביעים ניתן להגדיר את הערך המוצבע כקבוע ואת ערך המצביע כקבוע יש להשתמש ב- const כאשר ניתן כדי למנוע באגים הגדרת קבועים ב-++ C מתבצעת בעזרת משתנים קבועים 19
20 משתנים מיוחסים משתנים מיוחסים קבועים 20
21 int n = 1; int& r = n; // r and n now refer to the same int r = 2; // n = 2 משתנה מיוחס (reference) הוא שם נוסף לעצם קיים עבור שם טיפוס &X X, הוא רפרנס ל- X העצם אליו מתייחס הרפרנס נקבע בהכרזה, לכן חובה לאתחל רפרנס int& r; // error: initializer missing אתחול הרפרנס שונה מהשמה אליו r = n; // a normal assignment between two ints לאחר אתחול הרפרנס לא ניתן להפעיל פעולות "על הרפרנס" אלא רק על העצם אליו הוא מתייחס int nn = 0; int& rr = nn; rr++; // nn is incremented to 1 לא ניתן לשנות את העצם אליו מתייחסים לאחר האתחול 21
22 אתחול של רפרנס יכול להתבצע רק על ידי lvalue int& x = 1; // error: invalid initialization from temporary value int& y = a+b; // same thing const int& cx = 1; const int& cy = a+b; עבור טיפוס X ניתן להגדיר רפרנס לקבוע - &X const ניתן לאתחל רפרנס לקבוע גם על ידי ערכים זמניים פרמטרים )וערכי חזרה( של פונקציה יכולים להיות רפרנס הרפרנס יאותחל כך שיתייחס לעצם המועבר לפונקציה )מוחזר מהפונקציה( void swap(int& a, int& b) { int temp = a; a = b; b = temp; 22
23 הפונקציה הבאה מחזירה את האיבר המקסימלי במערך כרפרנס: int& getmax(int* array, int size) { int max = 0; for (int i = 0; i < size; ++i) { if (array[i] > array[max]) { max = i; return array[max]; רפרנס הוא lvalue בעצמו, לכן ניתן למשל לרשום קוד מהצורה הבאה int array[5] = { 1, 2, 3, 4, 5 ; getmax(array,5) = 0 ; // array[4] = 0 אמנם הקוד הזה נראה מוזר, אך בהמשך נראה שימושים טבעיים עבור החזרת רפרנסים אסור להחזיר רפרנס למשתנה מקומי מה יקרה אם נשנה את getmax כך שתחזיר את?max 23
24 קיים דמיון רב בין &X ל- const *X, עם זאת קיימים גם הבדלים חשובים: מצביע יכול להצביע ל- NULL בעוד משתנה מיוחס תמיד מתייחס לעצם חוקי עבור מצביעים יש צורך להשתמש ב-* ו-& כדי לבצע פעולות ניתן להשתמש בחשבון מצביעים כדי להסתכל על הזיכרון "ליד" המצביע by מומלץ לשלוח פרמטרים כ-& X const כל עוד זה מתאים עבור משתנים פרימיטיביים float( int, וכו'...( אין הבדל ולכן אפשר להעביר value )יותר קצר וקריא( 24
25 :const X int x = 1; שימו לב כי עבור ערכים שאינם const &X,lvalue מתנהג כמו const int& y = x; //y is referred to a lvalue const int& z = x + 1; //z is referred to a non-lvalue x++; printf( x=%d,x); // x = 2 printf( y=%d,y); // y refer to x printf( z=%d,z); // z refer to 2 25
26 עבור טיפוס X ניתן הטיפוס &X מאפשר נתינת שם חדש לעצם לאחר האתחול של &X לא ניתן לשנות את העצם אליו הוא מתייחס &X const יכול להתייחס לערכים זמניים )&X לא יכול( ניתן להעביר פרמטרים ולהחזיר ערכים מפונקציות כרפרנסים אסור להחזיר רפרנס למשתנה מקומי מומלץ להעביר פרמטרים שאינם פרימיטיביים לפונקציות כ-& X const 26
27 העמסת פונקציות בחירת פונקציה מתאימה ערכי ברירת מחדל 27
28 ב-++ C פונקציה מזוהה על ידי שמה וגם על ידי מספר וסוג הפרמטרים שלה בניגוד ל- C בה פונקציה מזוהה על ידי שמה בלבד מבחינת ++C הפונקציות print(int) void ו-( print(double void שונות ניתן ב-++ C לכתוב מספר פונקציות בעלות אותו שם ו"להעמיס" על אותו שם פונקציות שונות עבור טיפוסים שונים הקומפיילר יבחר את הפונקציה המתאימה לפי הארגומנטים בקריאה לה C++ void print(int); void print(double); void print(const char*); //... print(5); // print(int) called print(3.14); // print(double) called print("hello"); // print(const char*) void print_int(int); void print_double(double); void print_string(const char*); //... print_int(5); print_double(3.14); print_string("hello"); C 28
29 כדי לבחור את הפונקציה המתאימה הקומפיילר מחפש פונקציה בעלת שם מתאים המקבלת את מספר הפרמטרים המתאים מבין כל הפונקציות המתאימות הקומפיילר מחפש את הפונקציה שהפרמטרים שלה הם המתאימים ביותר לפי הדירוג הבא 1. התאמה מדויקת או המרות טריוויאליות )T,const T מערך למצביע(.2 התאמה בעזרת קידום bool( double float,int char,int וכו'...(.3 התאמה בעזרת המרות מובנות int( void* T*,int double,double 4. התאמה בעזרת המרות שהוגדרו על ידי המשתמש )תרגול הבא( 5. התאמה לפונקציה עם מספר ארגומנטים משתנה ellipsis(...( )למשל )printf עבור יותר מפרמטר אחד הקומפיילר מחפש פונקציה שיש לה את ההתאמה הטובה ביותר עבור פרמטר אחד והתאמה שווה או טובה יותר לשאר הפרמטרים אם קיימות שתי התאמות ברמה הגבוהה ביותר בה נמצאו התאמות אז הקריאה מכילה דו-משמעות והיא לא תתקמפל בחירת הפונקציה אינה תלויה בערך ההחזרה, לא ניתן לכתוב שתי פונקציות השונות רק בערך ההחזרה שלהן 29
30 אילו מהפונקציות הבאות תיקרא בכל אחת מהקריאות? void print(int); void print(double); void print(const char*); void print(char); במקרה של דו-משמעות יש להוסיף המרות מפורשות כדי להבהיר לקומפיילר באיזו פונקציה לבחור, למשל: void h(char c, int i, float f, double d, long l) { print(c); print(f); print(d); print(i); print(l); print('a'); print(49); print(0); print("hello"); print(int(l)); print(double(l)); העמסות יכולות לסבך את הקוד, השתמשו בהן רק אם קורא הקוד יוכל להבין בקלות מה קורה מהסתכלות על הקריאה לפונקציה 30
31 קיימות פונקציות אשר אחד הארגומנטים שלהן הוא ברוב המקרים אותו ערך void print(int n, int base); נוכל לנצל את מנגנון העמסת הפונקציות כדי לפתור בעיה זו: print(6, 10); print(5, 10); print(5, 8); // Print in octal print(17,10); print(14,2); // binary void print(int n) { print(n, 10); לשם הקלה על מטלה זו ניתן להגדיר ערך ברירת מחדל לפרמטרים עבור פונקציה, ולכן נוכל להגדיר רק פונקציה אחת: void print(int n, int base = 10); 31
32 ניתן לתת ערך ברירת מחדל רק לפרמטרים האחרונים של הפונקציה: int f(int n, int m = 0, char* str = 0); // ok int g(int n = 0, int m = 0, char* str); // error int h(int n = 0, int m, char* str = NULL); // error את ערך ברירת המחדל יש לכתוב פעם אחת בלבד בהכרזת הפונקציה int f(int n = 8); //... int f(int n) { // writing n = 8 again (or any other value) is an error return n; 32
33 ב-++ C פונקציה מזוהה לפי שמה והפרמטרים אותם היא מקבלת הקומפיילר אחראי לבחירת הפונקציה המתאימה מבין כל הפונקצוית המועמסות על אותו שם אם אין פונקציה "מנצחת" מתאימה צריך לפתור את דו-המשמעות ידנית ניתן להגדיר ערך ברירת מחדל פרמטרים האחרונים של פונקציה הקפידו להשתמש בהעמסת פונקציות רק כאשר היא קלה להבנה על ידי קורא הקוד 33
34 האופרטורים << ו->> הערוצים הסטנדרטיים ב-++ C 34
35 ערוצי הקלט ופלט הסטנדרטיים מיוצגים ב-++ C על ידי המשתנים הגלובליים הבאים )מוגדרים בקובץ :)iostream :cout ערוץ הפלט הסטנדרטי :cin ערוץ הקלט הסטנדרטי :cerr ערוץ השגיאות הסטנדרטי כדי להדפיס משתנה כלשהו לערוץ פלט משתמשים באופרטור << ניתן להדפיס ירידת שורה ולבצע flush לחוצץ על ידי הדפסת endl כדי לקלוט ערך למשתנה מערוץ קלט משתמשים באופרטור >> ניתן לשרשר מספר הדפסות/קריאות בבת אחת int main() { int n; cin >> n; // Reads an int from user cout << "You entered " << n << endl; return 0; 35
36 יתרונות: לא צריך לזכור קודים מוזרים כדי להדפיס לא ניתן להתבלבל בסוג הטיפוס המודפס עבור טיפוסים שיצרנו ניתן להרחיב את השימוש בקלט/פלט )בתרגול הבא( #include <iostream> using std::cout; using std::cerr; using std::cin; using std::endl; C++ #include <stdio.h> C int main() { int n; const char* str = "Hello"; int* ptr = &n; cin >> n; cout << str << endl; cerr << n << " at "<< ptr << endl; return 0; int main() { int n; const char* str = "Hello"; int* ptr = &n; fscanf(stdin, "%d", &n); fprintf(stdout, "%s\n", str); fprintf(stderr, "%d at %x\n", n, ptr); return 0; 36
37 הערוצים הסטנדרטיים מיוצגים ב-++ C על ידי המשתנים cout, cin ו- cerr מדפיסים לערוצי פלט בעזרת אופרטור << קולטים ערכים מערוצי קלט בעזרת >> ההדפסה או הקריאה נקבעים לפי סוג הטיפוס ניתן להרחיב את שיטה זו עבור טיפוסים שיצרנו בעצמנו )תרגול הבא( 37
38 מתודות משתנים ופונקציות סטטיות מחלקות this ו- private מחלקת מחסנית public בנאים והורסים 38
39 struct Point { int x, y; יצירת טיפוסי נתונים הוטמעה בשפת ++C ; double distance(const Point& p) { int dx = this->x - p.x; int dy = this->y - p.y; return sqrt(dx*dx+dy*dy); int main() { Point p = { 3, 4 ; Point p2 = { 2, 8 ; double d = p.distance(p2); ב-++ C ניתן להגדיר את הפונקציות עבור טיפוס הנתונים ישירות בתוך המבנה פונקציות המוגדרות כחלק מהמבנה נקראות מתודות (methods) או פונקציות חברות functions) (member כדי להפעיל מתודה יש צורך בעצם מהטיפוס המתאים להפעיל אותה עליו return 0; לכל מתודה יש פרמטר נסתר בשם this והוא מצביע לעצם עליו היא הופעלה 39
40 struct Point { int x, y; double distance(const Point& p); ; double Point::distance(const Point& p) { int dx = this->x - p.x; int dy = this->y - p.y; return sqrt(dx*dx+dy*dy); מתודות ניתן לממש ישירות בתוך המבנה )כמו בשקף הקודם( או להכריז עליהן במבנה ולממשן מחוץ לו: הגדרות טיפוסים ב-++ C יופיעו בדרך כלל בקבצי h אם מימוש הפונקציה נעשה בתוך המבנה אז הוא יופיע בקובץ ה- h אם מימוש הפונקציה חיצוני נשים אותו בקובץ ה- C/cc/cpp המתאים 40
41 struct Point { int x, y; double distance(const Point& p) const; void set(int x, int y); ; void Point::set(int x, int y) { this->x = x; this->y = y; לכל מתודה של עצם מטיפוס X נשלח מצביע מטיפוס *X const ששמו this ניתן להשמיט את ה- this כל עוד אין דו-משמעות ניתן להגדיר מתודה כך שתפעל על עצמים שהינם const על ידי הוספת const בסוף חתימת הפונקציה עבור מתודה לעצם קבוע this יהיה מטיפוס const X* const אם this קבוע עבור מתודה מסוימת גם כל השדות שלו קבועים מדוע לא ניתן להגדיר את set כ- const? double Point::distance(const Point& p) const { int dx = x - p.x; int dy = y - p.y; return sqrt(dx*dx+dy*dy); 41
42 struct Point { private: int x, y; public: double distance(const Point& p); void set(int x, int y); ; //... int main() { Point p; p.x = 5; // error: 'int Point::x' // is private p.set(3, 4); double d = p.distance(p); return 0; כדי לשמור על הסתרת המימוש מהמשתמש ניתן להגדיר חלקים פרטיים וחלקים פומביים קוד אשר כתוב בתוך ה- namespace של הטיפוס רשאי לגשת לחלקים פרטיים קוד אשר כתוב מחוץ למבנה אינו יכול לגשת לחלקים אלו ניתן להגדיר פונקציות, שדות וטיפוסים כפרטיים או פומביים למשל, פונקציות עזר של הטיפוס יוגדרו כ- private 42
43 בדרך כלל מגדירים טיפוסים ב-++ C עם המילה השמורה class ההבדל בין class ל- struct הוא בברירת המחדל עבור בקרת הגישה - public עבור class עבור ו- private struct נהוג להשתמש ב- struct עבור טיפוסים פשוטים שכל שדותיהם הינם public class Point { int x, y; public: double distance(const Point& p) const; void set(int x, int y); ; struct Point { private: int x, y; public: double distance(const Point& p) const; void set(int x, int y); ; 43
44 class Point { int x, y; public: Point(int x, int y); double distance(const Point& p) const; ; Point::Point(int x, int y) { this->x = x; this->y = y; int main() { Point p1(3, 4); const Point p2(2, 8); cout << p1.distance(p2) << endl; return 0; לכל מחלקה ניתן להגדיר סוג מיוחד של מתודות הנקראות בנאים Constructors( או C tor בקיצור( ששמן כשם המחלקה בנאים משמשים לאתחול של עצם חדש מהמחלקה 44
45 class Array { int* data; int size; public: Array(int size); ~Array(); // More methods... ; Array::Array(int size) { data = new int[size]; this->size = size; Array::~Array() { delete[] data; int main() { Array array(50); // code... return 0; // d'tor called לכל מחלקה ניתן להגדיר סוג נוסף של מתודה הקרויה הורס Destructor( או )D tor ושמה כשם המחלקה ותחילית ~ ההורס של המחלקה נקרא אוטומטית בזמן שחרור עצם של המחלקה עוד על בנאים והורסים בתרגולים הבאים 45
46 class Point { int x, y; static Point origin; public: Point(int x, int y); double distancefromorigin() const; static void setorigin(int x, int y); ; Point Point::origin(0,0); double Point::distanceFromOrigin() const { int dx = x - origin.x; int dy = y - origin.y; return sqrt(dx*dx + dy*dy); void Point::setOrigin(int x, int y) { origin.x = x; origin.y = y; ניתן להגדיר משתנים סטטיים במחלקה, משתנים אלו אינם שייכים לעצם ספציפי ניתן להגדיר מתודות סטטיות, מתודה סטטית אינה מקבלת this ולא דרוש עצם כדי להפעילה מתודה סטטית רשאית לגשת לחלקים פרטיים של המחלקה משתנים ומתודות סטטיים מצייתים לחוקי בקרת הגישה אם למשל נגדיר משתנה סטטי כפרטי הוא יהיה נגיש רק מתוך המחלקה 46
47 class Stack { int* data; int size; int nextindex; public: Stack(int size = 100); ~Stack(); int getsize() const; void push(int n); void pop(); int& top(); const int& top() const; ; נמיר כעת את המחסנית שלנו מתרגול 5 למחלקה ב-++ C ב-++ C ערכי שגיאה מטופלים על ידי חריגות )תרגול 10( ולכן לא נהוג להחזיר קודי שגיאה כדי לכתוב קוד גנרי ב-++ C משתמשים בתבניות )תרגול 10( ולכן נסתפק במחסנית של מספרים שלמים בינתיים nextindex 47
48 Stack::Stack(int size) { data = new int[size]; this->size = size; nextindex = 0; Stack::~Stack() { delete[] data; void Stack::push(int n) { if (nextindex >= size) { error("stack full"); data[nextindex++] = n; int Stack::getSize() const { return nextindex; void Stack::pop() { if (nextindex <= 0) { error("stack empty"); nextindex--; int& Stack::top() { if (nextindex <= 0) { error("stack empty"); return data[nextindex - 1]; const int& Stack::top() const { if (nextindex <= 0) { error("stack empty"); return data[nextindex - 1]; מה ההבדל? 48
49 #include "stack.h" #include <iostream> using std::cout; using std::endl; C++ #include "stack.h" #include <stdio.h> C int main() { Stack stack; Stack stack2(50); stack.push(1); stack.push(213); stack.pop(); cout << stack.top() << endl; return 0; int main() { Stack stack = stackcreate(100); Stack stack2 = stackcreate(50); stackpush(stack, 1); stackpush(stack, 213); stackpop(stack); printf("%d\n",stacktop(stack)); stackdestroy(stack); stackdestroy(stack2); return 0; 49
50 ב-++ C ניתן להגדיר מתודות כחלק מהטיפוסים מתודות מקבלות פרמטר נסתר,,this אשר מאותחל להצביע לעצם עליו הופעלה המתודה כדי למנוע גישה מהמשתמש למימוש ניתן להגדיר חלקים מהמחלקה כפרטיים ואת המנשק כפומבי ניתן להגיד לכל מחלקה בנאים אשר ישמשו לאתחול משתנים חדשים ניתן להגדיר לכל מחלקה הורס אשר ישמש לשחרור משתנה ניתן להגדיר משתנים ומתודות סטטיים אשר אינם שייכים לעצם ספציפי 50
Microsoft PowerPoint - rec3.ppt
תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם
קרא עודMicrosoft PowerPoint - rec1.ppt
תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout
קרא עודPowerPoint Presentation
מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל
קרא עודתכנות מונחה עצמים א' – תש"ע
1 תכנות מונחה עצמים והנדסת תוכנה תשע"ו 2 בנאי העתקה בניית העתק של אובייקט קיים. בניית העתק בעת העברת אובייקט לפונקציה. בניית העתק בעת החזרת אובייקט מפונקציה. ניתן להגדיר בנאי העתקה. אם לא מגדירים, אז הקומפיילר
קרא עודSlide 1
מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן
קרא עודסדנת תכנות ב C/C++
פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:
קרא עודמבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו
מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן
קרא עודSlide 1
מבוא לשפת C תירגול 3: טיפוסים והמרות 1 מה היה שבוע שעבר? משתנים קלט/פלט scanf( ו- printf ( Redirection The Input Buffer 2 תוכנייה טיפוסי משתנים קלט/פלט מעוצב המרה בין טיפוסים קבועים 3 חישוב ממוצע בין שני
קרא עודSlide 1
1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים
קרא עודPowerPoint Presentation
תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,
קרא עודSlide 1
מבוא למדעי המחשב תירגול 7: פונקציות 1 מה היה שבוע שעבר? לולאות מערכים מערכים דו-ממדיים 2 תוכנייה )call by value( פונקציות העברת פרמטרים ע"י ערך תחום הגדרה של משתנה מחסנית הקריאות 3 פונקציות 4 הגדרה של
קרא עודMicrosoft PowerPoint - lec2.ppt
מרחב הש מות (namespace) אוהד ברזילי אוניברסיטת תל אביב מה בתו כנית? לקוח וס פק במערכת תוכנה ממשקים הכרת מרחב השמות מניעת תלות פוטנציאלית בין רכיבים במערכת ע"י עיצוב חלופי של מבנה הממשקים 2 א ונ י ב רס
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות
קרא עודמספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה
עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(
קרא עודSlide 1
מבוא לשפת C תירגול 8: פונקציות שבוע שעבר... מערכים מיזוג מערכים ממויינים מערכים דו-ממדיים מבוא לשפת סי - תירגול 8 2 תוכנייה פונקציות ברמת התקשורת הבין-אישית חלוקה לתתי בעיות בדומה למפתח של ספר קריאות גבוהה
קרא עודמהוא לתכנות ב- JAVA מעבדה 3
מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100
קרא עודMicrosoft Word B
מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב
קרא עודפתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.
פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. הדפסה ראשונה: מתבצעת לולאה שרצה מאפס עד אורך המחרוזת.
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך
קרא עודPowerPoint Presentation
מבוא למדעי המחשב תירגול 2: מבוא לתיכנות ב- C 1 תוכנייה משתנים קלט/פלט משפטי תנאי מבוא למדעי המחשב מ' - תירגול 3 2 משתנים 3 משתנים- תמונת הזיכרון הזיכרון כתובת התא #1000 10-4 לא מאותחל 67 לכל תא בזיכרון
קרא עודמבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב
מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן שלוש שעות (180
קרא עודPowerPoint Presentation
מצביעים הקצאת זיכרון דינאמית מבנים - Structures טיפוסי נתונים - types Data העברת פרמטרים ל- main טענות נכונות שימוש בסיסי אריתמטיקת מצביעים void* מצביע למצביע 2 כתובת ערך הבית int התופס 4 בתים 7 0 0 0
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ
אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך
קרא עודMicrosoft Word - c_SimA_MoedB2005.doc
מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד ב', סמסטר א' תשס"ה,.2.2005 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות:. ודאו כי בטופס שבידיכם עמודים. יש לכתוב
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך
קרא עודPowerPoint Presentation
המחלקה String עבודה עם קבצים תבניות חריגות שימוש בבנאים, הורסים והעמסת אופרטורים 2 השימוש במחלקות, בנאים, הורסים והעמסת אופרטורים מאפשר לנו להגדיר מחלקה עבור String כך שייחסכו מאיתנו החסרונות של השימוש
קרא עודSlide 1
בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף
קרא עודSlide 1
מבוא לשפת C תירגול 10: מצביעים, מערכים ומחרוזות שבוע שעבר... מצביעים Call by reference 2 תוכנייה קשר מצביע-מערך )אריתמטיקה של מצביעים( העברת מערכים לפונקציה מחרוזות דוגמה 3 קשר מצביע-מערך 4 תזכורת: תמונת
קרא עודהגשה תוך שבוע בשעת התרגול
מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד א', סמסטר א' תשס"ה, 6..5 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב
קרא עודאוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו
אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', 31.1.2017 מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבוני, דולב שרון הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה
קרא עודPowerPoint Presentation
תוכנה 1 3 תרגול מס' מתודות ותיכון לפי חוזים חוזה בין ספק ללקוח חוזה בין ספק ללקוח מגדיר עבור כל שרות: תנאי ללקוח - "תנאי קדם" precondition - - תנאי לספק "תנאי אחר".postcondition לקוח ספק 2 תנאי קדם )preconditions(
קרא עודתורת הקומפילציה
תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר
קרא עודמצגת של PowerPoint
מבוא כללי לתכנות ולמדעי המחשב תרגול מס' 1 דין שמואל dshmuel110@gmail.com 1 1. מנהלות מרצה: אמיר רובינשטיין, amirr@tau.ac.il שעות קבלה: לשאלות קצרות - מייד לאחר השיעור. ניתן לתאם במייל שעות אחרות. מתרגל:
קרא עודיוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן
יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן מתרגלים: הנחיות: השאלות. כל על לענות עליכם משקל. שוות
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד
אוניברסיטת בן גוריון בנגב תאריך המבחן: 29.01.19 שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות 202.1.9031 מס' הקורס : מיועד לתלמידי : הנדסת תעשיה וניהול שנה תשע"ט א' סמ' א' מועד 3 שעות משך
קרא עודMicrosoft Word - דוגמאות ב
הפקולטה למדעי המחשב פרופ' חיים גוטסמן, מר רן רובינשטיין עומר סטרולוביץ, כרמי גרושקו, אלכסנדר ליבוב, מיכאל בלטקסה, ראידה נעאמנה, שי מרקנטי, גיא שקד הטכניון - מכון טכנולוגי לישראל 3.10.2011 מבוא לתכנות מערכות
קרא עודמבוא למדעי המחשב - חובלים
אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב סמסטר ב' תשע"ב בחינת סיום, מועד ב',.02..9.7 מרצה: אורן וימן מתרגלים: נעמה טוויטו ועדו ניסנבוים מדריכי מעבדה: מחמוד שריף ומיקה עמית משך המבחן: שעתיים חומר
קרא עודהגשה תוך שבוע בשעת התרגול
מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב את
קרא עודSlide 1
מבוא למחשב בשפת C צעדים הרצאה 2: ראשונים בשפת C מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י
קרא עודPRESENTATION NAME
נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו
קרא עודמבוא לאסמבלי
1 ברק גונן תוכנית שבנויה מחלקי קוד נפרדים המשולבים זה בזה מאפיינים: נקודת כניסה אחת נקודת יציאה אחת מבצעים פעולה מוגדרת נקראים פרוצדורות ברק גונן 2 קוד קצר יותר לא צריך לחזור על חלקי קוד שאלה למחשבה: האם
קרא עודPowerPoint Presentation
1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a
קרא עודמבוא לתכנות ב- JAVA תרגול 7
מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה
קרא עודמתכונת עיצוב 3013
מדעי המחשב פרק ראשון Java שאלה 1 שאלה 1 נכתב ע"י ראמי ג'באלי C# Java 2 א. שאלה ב. הערה: במבחן כתוב שיש שלשה אחת בלבד של פנסים כאלו. ולמרות זאת נשאיר את המשתנה הבוליאני כך שאם נמצאו הפנסים בתחילת המערך
קרא עודמשימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק
משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות 2 הפשטה שאלות כצעד ראשון נפתור בעיה הרבה יותר פשוטה האם כבר
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי
אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך
קרא עודמבוא למדעי המחשב - חובלים
החוג למדעי המחשב אוניברסיטת חיפה מבוא למדעי המחשב סמסטר א' תשע"ג בחינת סיום, מועד ב', 20.02.2013 מרצה: ריטה אוסדצ'י מתרגלת: נעמה טוויטו מדריך מעבדה: מחמוד שריף משך המבחן: שעתיים חומר עזר: ספר של Kernighan
קרא עודמבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי
מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5
קרא עודúåëðä 1 - çæøä
Arrays and Strings מערך - אוסף משתנים בעלי שם משותף. הפנייה לכל איבר נעשית ע י אינדקס. ב- C מערך מוגדר בזיכרון רציף. האיבר הראשון נמצא בכתובת הנמוכה. לדוגמא, אם a מוגדר החל מכתובת :1000 char a[7]; Element
קרא עודSlide 1
מבוא למחשב בשפת C : מערכים חד ודו-ממדיים מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור.
קרא עודתשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(
תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv
קרא עודSlide 1
מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות
קרא עודשקופית 1
Computer Programming Summer 2017 תרגול 5 מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1] - יושב
קרא עודMicrosoft PowerPoint - lec9.ppt
ת כנ ות מונ ח ה עצמי ם בשפת + +C ירוש ה אוהד ברזילי אונ יברסיטת תל אביב ירוש ה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand
קרא עוד2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ
מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מספיק עמדות לכולם ולכן מומלץ לעבוד ביחידים). במהלך המעבדה יהיה עליכם לבצע משימות. אם תצטרכו עזרה בשלב
קרא עודMicrosoft PowerPoint - lec9.ppt
תכ נות מונח ה עצמים בשפת ++C ירו שה אוה ד ברזילי אוני ברסיטת תל אביב ירו שה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer
קרא עודמספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי
מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בינסקי הנחיות: יש לענות על כל השאלות. יש לענות על כל
קרא עודמבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2
מבוא למדעי המחשב תרגול מס' 2 נושאים משתנים טיפוסים אופרטורים פונקציות מתמטיות מהמחלקה Math המרת טיפוסים תנאים ולולאות 1 2 תזכורת משיעור קודם תזכורת... תכנית מחשב נכתבת כטקסט בקובץ. הטקסט כתוב בשפת תכנות
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי
אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך
קרא עודPowerPoint Presentation
תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם
אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג,.6.013 משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם 8 עמודי שאלון )כולל עמוד זה(. עליכם לכתוב את התשובות על
קרא עודMicrosoft Word - pitaron222Java_2007.doc
1 מדעי המחשב 2 יחידות לימוד פתרון בחינת הבגרות פרק א a mul k k a פלט b זוגי? b :1 Ï 3 1 5 1 5 F קלט: 3, 5, 8, 4 20 2 8 40 40 3 4 4 F :2 Ï m x x 0 פלט 70 x 50 0 א. 10 F 1 64 2 2 51 30 F -4 F ב. ג. 1- (כל
קרא עודPowerPoint Presentation
תוכנה 1 Generics תרגול - 1 תכנות גנרי תמיכה בתכנות גנרי נוספה בגרסה 5 ניתן להגדיר מחלקות ושירותים גנריים מונע שכפול קוד )מוכללים( ניתן לכתוב תוכניות שאינן תלויות בטיפוסי המשתנים מאפשר בטיחות טיפוסים מנגנון
קרא עודSlide 1
מבוא למדעי המחשב משפחות של מחלקות ומחלקות מופשטות תזכורת בשיעור הקודם ראינו מחלקה של Student והרחבה שלה למחלקה של Milgae למעשה Student יכול לעמוד בראש היררכיה שלמה של מחלקות שונות של סטודנטים למשל, בנוסף
קרא עודתרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש
תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש המתרגם משימה: תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם 2 שאלות האם כבר יש
קרא עודPowerPoint Presentation
חלוקה למודולים Abstract data types טיפוסי נתונים מופשטים ADT של מבני נתונים בחירת מבני נתונים תכנות מודולארי מודולים ב- C דוגמה: מודול תאריך 2 אורך החיים של קוד יכול להיות עשרות שנים, לאורך תקופה זו יש
קרא עודעוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ
עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכמה אופנים. בואו ניקח מחלקת צעצוע. אנחנו מעונינים להגדיר
קרא עודPowerPoint Presentation
== vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על
קרא עודלנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי
לנץ קרן מרצה: תכנותמונחהעצמים) 027622 ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחיות:.1.2.3.4.5.6.7 השאלות. כל על לענות עליכם משקל. שוות
קרא עודMicrosoft PowerPoint - T-10.ppt [Compatibility Mode]
מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,
קרא עוד234114
)234117 )234114 \ סמסטר חורף תשע"ז 2017 מבחן מסכם מועד א', 21 לפברואר 2 3 4 1 1 מספר סטודנט: רשום/ה לקורס: משך המבחן: 3 שעות. חומר עזר: אין להשתמש בכל חומר עזר. הנחיות כלליות: מלאו את הפרטים בראש דף זה
קרא עודמבוא לתכנות ב- JAVA תרגול 11
מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה
קרא עודמערכות הפעלה
מערכות הפעלה תרגול 2 קריאות מערכת ב- Linux תוכן התרגול קריאה לפונקציות ב- Linux קריאה לשירותי מערכת ב- Linux 2 תזכורת - תכנית Linux ראשונה hello.c #include int main() { char *str= Hello ; printf)
קרא עודSlide 1
Introduction to Programming in C תרגול 7 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאת זיכרון דינאמית Malloc free תאור הזיכרון של המחשב: מצביעים ניתן לחשוב על זיכרון המחשב
קרא עודפתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (
פתרון 000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : num = 3, sif = r האם ספרת האחדות של sif שווה ל- num num 3 sif (1)-() (3) () אמת ) = ( 3 3 יודפס: 3. ב. פתרון שאלה 11 עבור הערכים: עבור סעיף
קרא עודתרגיל בית מספר 1#
ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות
קרא עודPowerPoint Presentation
רשימות מקושרות עבודה קבצים דוגמה מבנים המצביעים לעצמם רשימות מקושרות 2 נסתכל על המבנה הבא: typedef struct node { int data; struct node* next; *Node; איך נראים המבנים בזיכרון לאחר ביצוע הקוד הבא: Node node1
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 12 מחסנית )Stack( memoization ראינו בהרצאה מחסנית Infix/Postfix Notations בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי מימוש תור באמצעות מחסנית memoization דוגמאות
קרא עודMicrosoft PowerPoint - lec10.ppt
תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand
קרא עודHomework Dry 3
Homework Dry 3 Due date: Sunday, 9/06/2013 12:30 noon Teaching assistant in charge: Anastasia Braginsky Important: this semester the Q&A for the exercise will take place at a public forum only. To register
קרא עודהטכניון - מכון טכנולוגי לישראל
הפקולטה למדעי המחשב הטכניון - מכון טכנולוגי לישראל מבוא לתכנות מערכות 221422 חומר עזר למבחן תוכן שפת 2... C פונקציות להקצאת זיכרון דינאמי...2 עבודה עם קבצים...2 עבודה עם מחרוזות... 2 פקודות לשלב העיבור
קרא עודTutorial 11
מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י
קרא עודMicrosoft PowerPoint - rec8.ppt
על טיפ ו סי ם וירו שה תרגול אוהד ברזילי אונ יברסיטת תל אביב תנ אי ק ד ם מופ שט תנאי קדם מופשט ראינו שבקבלנות משנה החוזה של המחלקה היורשת חייב לקיים 3 עקרונות: תנאי קדם יכולים להיות חלשים תנאי בתר יכולים
קרא עודשבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע
שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת
קרא עודPowerPoint Presentation
פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב הממשקים Iterable,Set ו- Iterator תוכן עניינים מבנה נתונים מבנה נתונים מבנה נתונים הוא container של עצמים שמוגדרות עליו מספר פעולות למשל קבוצה של עצמים (אוסף ללא חזרות) עם הפעולות: הוספת
קרא עודMicrosoft Word - Ass1Bgu2019b_java docx
ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות
קרא עודProgramming
קורס תכנות שיעור עשירי: מיונים, חיפושים, קצת ניתוח זמני ריצה, קצת תיקון טעויות ועוד על רשימות 1 רשימה מקושרת רשימה היא אוסף סדור של פעולות רשימה לעומת מערך ערכים 3 5 7 9 typedef struct node { int data;
קרא עוד