Microsoft Word - robot ver 2.DOC

גודל: px
התחל להופיע מהדף:

Download "Microsoft Word - robot ver 2.DOC"

תמליל

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

2 1. המדריך מדריך זה נועד לספק לתלמיד את כל חומר הרקע הנדרש ע"מ לאפשר לו לבנות ולתכנן רובטים בצורה עצמאית על בסיס ערכת.LEGO MINDSTORMS כמון כן מתאר המדריך את כל כלי התקנה הנדרשים כולל כלים גרפים לשמירת הפרויקט. מדריך זה נערך ע"י אילן זוהר ניתן לפנות בשאלות/הערות ל- 2. מבוא חברת Lego משווקת ערכת Mindstorms בערכה זו כ- 700 חלקים של לגו וכן מחשב מרכזי אשר נקרא RCX,מחשב זה מכיל מעבד קטן (H8/300.(Hitachi ערכת ה- Mindstorms מאפשרת ללמוד רובוטיקה על ידי בניית רובוטים פשוטים. כמה אנשי מדע ותעשיה, הבולט שבהם-,Dave Baum ראו ב Mindstorms שילוב מעניין של פלטפורמה מכאנית גמישה ומעבד פשוט וזול השולט בה. עם השנים, פותחו בידי אנשים אילו, סביבות עבודה טובות יותר מאשר הממשק המקורי המסופק ע"י חברת.Lego הסביבה המוכרת שבהם הייתה NQC אשר נכתבה ע"י Dave Baum ואפשרה את תכנות ה- RCX בשפה דמוית C בעלת מגבלות רבות. באוקטובר 1988 נכתבה ע"י Markus.L Noga הגרסה הראשונה של סביבת העבודה.(gcc) Unix סטנדרטי של ++C או C, המאפשרת כתיבה בשפה עילית LegOS המשותף לסביבות עבודה אילו הוא היותם Open source וניתנות להורדה מהאינטרנט ללא תשלום. בשונה מהתנהגותה של חברת Lego במקרים בהם בוצעה העתקה של מוצריה, בחרה Lego "לחבק" את כותבי ומפיצי סביבות העבודה האלטרנטיביות ולתמוך בפועלם, כך שכיום יכול כל משתמש אשר רכש ערכת, Mindstorms להתקין סביבת עבודה אלטרנטיבית ולהשתמש בה כחוק. The mindstorms box: The RCX: 3. אופן הפעולת הערכה המקורית של LEGO לבנת RCX קוראת ומעבדת נתונים משלושה חיישנים (שיכולים להיות חיישן מגע, גלאי אור, מד זווית, מד טמפרטורה, מד לחץ ועוד...) המחוברים לכניסות 1,2,3, ושולטת על שלושה מנועים המחוברים ליציאות.C,B,A התוכנה לבקרת הרובוט נבנית בתוכנה ידידותית בעלת GUI עשיר המסופקת בערכה. התוכנה נטענת ב- RCX באמצאות משדר (Tower) אינפרא אדום שמחובר ליציאת ה- Serial או ל- USB של המחשב. 2

3 4. מערכת הפעלה אלטרנטיבית הדגש במערכת הפעלה המקורית הוא על קלות התכנות. עם זאת, ישנן מגבלות: אפשר להשתמש בלא יותר מ- 32 משתנים, הקוד מבוצע ע''י Interpreter ולכן הביצוע איתי, קשה "לכתוב" תוכנות מורכבות בסביבה המקורית. יתרונות העיקריים של LegOS הם: הקוד נכתב ב- C או ++C..Interpreter ולא-,Compiler אין מגבלה על מספר המשתנים. תוכניות עד 32K. תמיכה בריבוי חוטים, תמיכה במנגנון עדיפויות. מערכת הפעלה זו תשמש אותנו להקנות את היכולת לבצע מספר פעולות מוגדרות מראש בבנית הרובטים בקורס זה. 3

4 5. התקנת LegOS במספר שלבים. לרשותך עומד CD ובו כל הקבצים שתצטרכו במהלך ההתקנה אם אתה עובד ב- Windows.Administrator אז בשלבים מסוימים של ההתקנה תצטרך הרשאת ה- NT או,XP, התקנת Mindstorms tower driver הדרייבר נמצא ב- CD בספריה ב-\ tower diskdrive:\usb שם נדרש להריץ את הקובץ.ReinstallUsbTower בצע BOOT לאחר ההתקנה וחבר את משדר אינפרא אדום. התקנת סביבות משלימות התקן את ה- SDK של לגו ע"י הרצת הקובץ.LEGOMindstormsSDK25.exe הרץ את התקנה של סביבת המעטפת ע"י הרצת.BricxCCSetupCygwin.exe הרץ את השלמה של התקנה ע"י הרצת.BricxCCbrickOSleJOS.exe התקנת מעטפת BRICKCC IDE הרץ את הקובץ bricxcc_setup_33710.exe ועקוב אחר ההוראות לחץ Next על הכול, ניתן להוריד את הגרסא העדכנית מהקישור הבא: latest version של BRICKCC התקנת WinLNP תוכנה WinLNP מאפשרת תקשורת בין תוכנות Windows וקוביות RCX באמצאות משדר אינפרה אדום של,LEGO או בין RCX ל- RCX. את ארכיון קבצי WinLNP ניתן להוריד מ- ה- CD שברשותך מכיל שתי גרסאות של :WinLNP אחת ל- USB Tower ושניה ל-.Serial Tower גרסתה- USB לא קיימת באינטרנט בינתיים. בהתאם למשדר שיש לך חלץ את הגרסה המתאימה של הארכיון לספריה.C:\cygwin\lejos\ קימפול של :WinLNP הפעל ++C Microsoft Visual ופתח את הקובץ winlnp.dsw שנמצא בספריה C:\cygwin\lejos\winlnp_serial\src (דוגמא ל- serial ). בתפריט Build בחר בפקודה.Build WinLNP.exe אם הקומפילציה הסתיימה עם 2 שגיאות סימן שצריך להתקין.Service Pack 4 for Visual Studio כעת, אם התקנת גרסת,USB הפעל את הקובץ בספריה,WinLNP USB לצורך עידכון ה-.Registry WinLNPUSB.reg זהו! התקנת את כל התוכנות הדרושות להפעלת המערכת. שנמצה ב- CD 4

5 6. עבודה עם LegOS שפת C/C הורדת Kernel ל- RCX Kernel של LegOS מחליף את ה- Kernel המקורי של,LEGO לכן בהפעלה ראשונה של RCX יש להוריד אל ה- RCX את ה- Kernel החדש. הרץ את BRICKCC בחר ב- standard ויציאת התקשורת המתאימה: לחץ.OK פתח את TOOLS בחר download firmware בחר את קובץ ה- brickos.srec מדיסק, שים לב ה- RCX צריך להיות דולק הורד את הקובץ. לבסוף תקבל הודעת שגיאה, זה בסדר פשוט הקשר של RCX עם התוכנה אבד. שים לב בטעינת ה- firmware בהתחלה אתה טוען את מערכת ההפעלה ה- standard אחרי שהורדת את ה- SREC צריך לסגור את התוכנה ולהפעילה מחדש ואז לטעון את Legos ולא standard (בגלל זה נוצרת הודעת השגיאה). 5

6 כתיבת תוכנית עבור RCX כותבים תוכנית בשפת C או ++C תחת תוכנת המעטפת או במעבד תמלילים כלשהו. נניח שכתבת תוכנית helloworld.c שנמצאת בספרית ה- C:\cygwin\brickos\demo טען תוכנית זו לתוכנת המעטפת,BrickCC ע"י בחירה של File/Open קימפול התוכנית נדרש ללחוץ על הצלמית 6

7 6.4. הורדת התוכנית ל- RCX תהליך הורדת התוכנית לוקח כמה שניות, בזמן הורדת התכנית יודפס סימן המאשר עצם העברת מידע בין המחשב ל RCX בצידו השמאלי של מסך ה.RCX לחץ על הצלמית ע"מ להוריד את תוכנית ל- RCX. שים לב ניתן להוריד לאחת מתוך 5 התוכניות האפשריות כעת ניתן להריץ את התוכנית ע''י לחיצה על כפתור ירוק (run) על גבי,RCX כאשר הורדו מספר תכניות, ניתן לבחור את התכנית הרצויה להרצה עי לחיצות על הכפתור האפור.(program) 7

8 7. התקנת תוכנת גרפיקה יש להעתיק את שני הקבצים הבאים: הראשית ldraw027.exe ו- complete.exe לספריה. c:\ יש לצאת לחלון (start/run) COMMAND תחת הספריה הראשית ולהריץ את הקבצים בצורה הבאה:,C:\>ldraw027/y o,c:\>complete/y o פרוס את ספרית ה- mlcad300.zip לספריה הראשית \:c לאחר הפריסה תוצר ספריה בשם C:\MLCad_V3.00 כנס לספריה זו והרץ את הקובץ C:\MLCad_V3.00 יופיע המסך הבא שנה את Base Path ע"פ המסך הבא ולחץ OK תשאל שאלה לחצ/י על Y. זה הכול ניתן ליצור קיצור דרך ולהעתיקו ל- Desktop 8. דוגמאות את כל הדוגמאות שמובאות להלן תוכל למצוא בספרית מוכנות לקימפול והרצה על.RCX ה- demo אשר ב- CD כל הדוגמאות 8.1. דוגמת שימוש ב- LCD של RCX 8

9 דוגמה זו נמצאת בקובץ.lcd.c קמפל אותה, הורד ל- RCX והרץ ע''י כפתור.RUN תוכנית זו מדפיסה מילה TEST על גבי המסך של RCX ולאחר מכן מספרים רצים מ- 1 עד 20. שים לב לפונקציה להדפסת מחרוזת ופונקציה להדפסת מספר הן לא אותו דבר. #include <conio.h> #include <unistd.h> int counter=0; int main() lcd_clear(); /* clears LCD screen (including special characters)*/ cputs("test "); /* prints string on LCD */ sleep(1); /* 1 second pause */ while (counter<=20) lcd_int(counter); /* use this function to print integers on LCD */ msleep(250); /* pause 250 milliseconds */ counter++; דוגמת שימוש בחיישן מגע קובץ: touch.c תוכנית זו בודקת כל הזמן את מצב של חישן מגע המחובר לכניסה מספר 1 של,RCX ומדפיסה על LCD את מצב החיישן (לחוץ או משוחרר). #include <conio.h> #include <unistd.h> #include <dsensor.h> int main() while(1) /* checks the state of touch sensor attached to port 1 */ /* prints the appropriate string on LCD */ if (TOUCH_1==0) cputs("unprs"); /* if not pressed */ if (TOUCH_1==1) cputs("press"); /* if pressed */.8.2 9

10 8.3. דוגמת שימוש במנועים קובץ: moto.c תוכנית זו מפעילה את המנועים שמחוברים ליציאות C,A קדימה 4 שניות ואחורה 2 שניות. שים לב שיש פונקציה שקובעת את כיוון הסיבוב, ויש פונקציה שמפעילה את המנוע במהירות הרצויה (100 בדוגמה זו). טווח המהירות הינו מ- 0 עד 250. #include <conio.h> #include <unistd.h> #include <dmotor.h> int main(void) motor_a_dir(fwd); /* sets the motor A direction forward */ motor_c_dir(fwd); /* sets the motor B direction forward */ motor_a_speed(100); /* runs the motor A at speed of 100 */ motor_c_speed(100); /* runs the motor B at speed of 100 */ sleep(4); /* sleep 4 seconds */ motor_a_dir(rev); /* sets the motor A direction reverse */ motor_c_dir(rev); /* sets the motor B direction reverse */ /* pay attention that motor continue to run at the same speed */ sleep(2); motor_a_speed(off); /* turns off motor A */ motor_c_speed(off); /* turns off motor B */ 8.4. דוגמת שימוש במד זווית 10 קובץ: rotation.c חבר מד זווית לכניסה מס' 1. תוכנית זו מדפיסה עת הערך שמוחזר ממד זווית. נסה לסובב את החיישן לכיוונים שונים. ערך התחלתי משתנה כל 1/16 סיבוב. מד זווית זקוק למתח אספקה, לכן נדרש לעשות Activate ע''י פונקציה.ds_active #include <conio.h> #include <unistd.h> #include <dsensor.h> int main() ds_active(&sensor_3); /* activates sensor on port 3 */ ds_rotation_on(&sensor_3); /* activates rotation sensor on port 3 */ ds_rotation_set(3,10); /* sets initial value that sensor returns */ while(1) lcd_clear(); /* clears LCD screen (including special characters)*/ lcd_int(rotation_3); /* prints the the value returned from rotation sensor on LCD */ msleep(100); /* pause 100 milliseconds, to prevent LCD blinking */

11 דוגמת שימוש בחיישן אור קובץ: light.c חבר חיישן אור לכניסה מס' 2. תוכנית זו מדפיסה עת הערך שמוחזר מהחיישן. נסה לכוון את החיישן לאזורים כהים ובהירים..8.5 #include <conio.h> #include <unistd.h> #include <dsensor.h> int main() ds_active(&sensor_2); /* turns the light sensor into active mode (turns on the red light) */ while(1) lcd_clear(); /* clears LCD screen (including special characters)*/ lcd_int(light_2); /* prints the the value returned from lightsensor on LCD */ msleep(100); /* pause 100 milliseconds, to prevent LCD blinking */ 8.6. דוגמה ל- Multitasking 3 קובץ: multitasking.c תוכנית זו מריצה את שני המנועים קדימה. כל לחיצות של חיישן מגע המועים נוסעים אחורה במשך 3 שניות. תוכנית זו מריצה 2 תהליכים: האחד לספירת מספר לחיצות והשני לבקרת מנוע. כל פעם שתהליך המנוע רואה שמספר לחיצות הגיע ל- 3 #include <conio.h> #include <unistd.h> #include <dsensor.h> #include <dmotor.h> #include <sys/tm.h> #include <rom/system.h> pid_t pid1, pid2; // pid_t is a special variable type int touch_counter=0; הוא מפעיל את המנועים אחורה. void touch_sensor() // this thread counts touch sensor clicks while(1) if(touch_1!=0) //if sensor has been touched touch_counter++; cputs(" "); // clear screen lcd_int(touch_counter); // show counter value on LCD msleep(250); // this pause needed to prevent 11

12 cputs(" "); //triggering counter several times void motor_driver() //this thread drives the motors forward and //checks the number of touch sensor clicks //then drives the motors reverse every 3 clicks. motor_a_speed(100); //drives motors at speed 100 motor_c_speed(100); while(1) motor_a_dir(fwd); // sets the motors direction to forward motor_c_dir(fwd); if (touch_counter>=3) motor_a_dir(rev); motor_c_dir(rev); touch_counter=0; sleep(3); int main() pid1=execi(&motor_driver, 0, NULL, 2, DEFAULT_STACK_SIZE); //start motor thread pid2=execi(&touch_sensor, 0, NULL, 2, DEFAULT_STACK_SIZE); //start touch thread sleep(30); // the program will run 30 seconds. motor_a_speed(off); motor_c_speed(off); kill(pid1); //kill motor thread kill(pid2); //kill touch thread return 0; 8.7. דוגמה לשימוש בסמפורים קובץ: sem.c תוכנית זו מרימה שני חוטים במקביל שממלאים מערך buffer באורך 10. חוט ראשוןמנסה לכתוב "1" למערך, ובמקביל חוט שני מנסה לכתוב "2" לאותו מערך. כמו כן, חוט שני רץ לאט, כי הוא ישן 20 מילישניות במהלך הביצוע. לכן אם מריצים את התוכנית בלי סמפורים אז את רוב המקומות במערך תופסים אחדים והוא נראה כך: נשתמש במנגנון הסמפורים כדי להגן על קטעים קריטיים בתוכנית ולגרום מספר שווה של "1" ו-" 2 " במערך. אז המערך ייראה 12

13 כך: בסוף התוכנית משדרת את המערך למחשב. כדי לראות את התוצאה במחשב יש #include <conio.h> #include <unistd.h> #include <lnp.h> #include <lnp-logical.h> #include <sys/tm.h> #include <rom/system.h> #include <semaphore.h> 13 להפעיל את TestLNP כפי שמוסבר בפרק "תקשורת בין מחשב ל- RCX ובחזרה". pid_t pid1, pid2; // pid_t is a special variable type sem_t MySemaphore; // variable of semaphore type char buffer[10]; int i=0; void write_to_buffer(int data) if (i<=10) // writes first 10 numbers to the buffer buffer[i]=data; i++; void write1() while(1) sem_wait(&mysemaphore); //wait write_to_buffer(1); // writes 1 to buffer sem_post(&mysemaphore); //signal msleep(1); void write2() while(1) sem_wait(&mysemaphore); //wait msleep(20); //sleep 20 milisecinds write_to_buffer(2); // write 2 to buffer sem_post(&mysemaphore); //signal msleep(1); int main() sem_init(&mysemaphore,0,1); //initialize new semaphore

14 lnp_logical_range(1); // sets the transitter mode to the long range pid1=execi(&write1, 0, NULL, 2, DEFAULT_STACK_SIZE); // start write1 thread pid2=execi(&write2, 0, NULL, 2, DEFAULT_STACK_SIZE); // start wirte2 thread msleep(1000); // the program will 1 second kill(pid1); //kill write1 thread kill(pid2); //kill write2 thread sem_destroy(&mysemaphore); //destroy semaphore lnp_addressing_write(buffer,10,0x21,1); // sends the buffer to computer return 0; 14

15 9. תקשורת בין הרובוטים: אפשרויות ומגבלות פרוטוקול תקשורת (LegOS Network Protocol) LNP מובנה במערכת הפעלה.LegOS ערכנו מספר ניסויים כדי לגלות מה היכולת של.LNP להלן הממצאים: כל RCX יכול לשלוח ולקבל הודעות מ- RCX אחר או מהמחשב. כתובת היעד מורכבת ממספר Host ומספר פורט Port. למשל, כתובת 0x01 משמעותה Host מספר 0, פורט מספר 1; כתובת 0x23 משמעותה Host מספר 2, פורט מספר 3. אבל למעשה אין צורך להשתמש במספר :Host כברירת מחדל בתקשורת בין הרובוטים הוא 0, ואז מספיק לרשום רק מספר הפורט, למשל 2, במקום לרשום את כל הכתובת 0x02. אורך תוכן ההודעה מקסימאלי הוא 250. bytes שליחת הודעה באורך מקסימאלי לוקחת בערך שנייה אחת. לכל RCX ניתן לקבוע מספר פורט ייחודי, לו הוא מאזין, הוא יגיב לכל הודעה שנשלחה על הפורט שלו (יגיב הכוונה שייכנס ל-,handler שגרת טיפול בהודעה). ניתן לקבוע ש- RCX אחד יאזין למספר פורטים. ניתן לקבוע שכל הרובוטים יאזינו לאותו פורט. אז ברגע שאחד ששולח הודעה על פורט משותף כולם יכולים לקבל אותה. בנוסף לפורט היעד ולתוכן, ההודעה מכילה מספר ID המזהה של השולח. המזהה הוא מספר בין 1 ל- 15, וזה יכול להיות מספר פורט אליו השולח מאזין או סתם מספר. למשל, אם יש לך הרבה רובוטים שכולם מאזינים לאותו פורט וכולם שולחים על אותו פורט, אתה יכול לתת לכל אחד מספר ID ייחודי לו וכך הרובוטים יוכלו לדעת מי שלח הודעה. השליחה מובטחת, כלומר אם מספר רובוטים רוצים לשדר בו זמנית, הם מצליחים, ע''י כך שמחכים עד שהאוויר יהיה נקי משידורים אחרים. הרובוט תקוע בתהליך שליחה עד שהוא מצליח לשדר. הקבלה של הודעה אינה מובטחת, כלומר אין פה Acknowledge אוטומטי. רובוט ששלח הודעה על פורט מסוים לא יודע האם היעד קיבל אותה. כמובן, ניתן לתכנת acc בקלות ע''י שליחת הודעת אישור מרובוט היעד, רובוט השולח מנסה לשלוח עוד ועוד, עד שמקבל אישור מהיעד. כמובן, לרובוט היעד להחזיר אישור. צריך לעשות הפסקות בין שידורים חוזרים כדי לתת הזדמנות 15

16 תיאור הפונקציות לשליחה וקבלת הודעות: (נכון להיום פונקציות אילו לא מתועדות בצורה ברורה במקורות אחרים).9.1 הפונקציה לשליחת ההודעה היא: lnp_addressing_write(buffer, length, port, ID) כאשר: buffer מערך של chars לשליחה, באורך עד 250 buffer אורך ה- length port מספר פורט היעד ID מס' מזהה של השולח (ראה הסבר לעיל) o o קבלת הודעות: lnp_addressing_set_handler(my_port, MyPortHandler) כאשר את הפונקציה נ''ל רושמים ב-,main my_port מס' פורט אליו אני מאזין, o MyPortHandler שגרת טיפול שאליה התוכנית קופצת ברגע שמתקבלת הודעה על הפורט שלי. שגרה זו צריכה להיראות ככה: void MyPortHandler(const unsigned char* data, unsigned char length, unsigned char src) כאשר data מערך של chars בגודל length שהתקבל בהודעה מרובוט (או מחשב) עם ID (מזהה של שולח).src שים לב! אסור לבלות יותר מדי זמן ב-.handler מקסימום שאפשר להספיק לעשות ב- handler זה להעתיק את הנתונים שהתקבלו בהודעה למשתנים שלכם ולצאת, אחרת RCX נתקע ודופק את ה-,kernel ואז צריך להוציא בטריות כדי לכבותו, להכניס מחדש, ולהוריד את ה- kernel ואת התוכנית מחדש. כל מה שנאמר פה תקף גם לגבי תקשורת בין הרובוטים למחשב, למעט הכתובת של המחשב, שהיא 0x21 (ראה הסבר בעמודים הבאים). 16

17 9.2. דוגמת תקשורת מספר 1 lnp_receiver.c קבצים: lnp_transmitter.c מקבל. עבור רובוט משדר, עבור רובוט דוגמה זאת מדגימה תקשורת בין 3 רובוטים: אחד שולח ושני מקבלים, תוך שימוש בפורטים שונים עבור המקבלים. רובוט ראשון שולח הודעה 2 HI על פורט מספר 2, ולאחר 5 שניות שולח הודעה 3 HI על פורט מספר 3. הורד תוכנית lnp_transmitter שלהלן לרובוט הראשון. #include <conio.h> #include <unistd.h> #include <lnp.h> #include <lnp-logical.h> char first_buffer[4]='h','i',' ','2'; // buffer for data to be transmitted char second_buffer[4]='h','i',' ','3'; // buffer for data to be transmitted int main() lnp_logical_range(1); // sets the transmitter mode to the long range lnp_addressing_write(first_buffer,4,2,1); // sends buffer to port number 2 cputs("sent2"); sleep(5); lnp_addressing_write(second_buffer,4,3,1); // sends buffer to port number 3 cputs("sent3"); sleep(5); return 0; שני רובוטים נוספים ממתינים להודעה, ברגע שהם מקבלים הודעה מדפיסים אותה על.LCD רובוט שני מאזין לפורט 2. הורד תוכנית lnp_receiver שלהלן לרובוט שני. #include <conio.h> #include <unistd.h> #include <lnp.h> void MyPortHandler(const unsigned char* data, unsigned char length, unsigned char src) //this is the handler. If someone sends data over port 2 - this //handler will be activated. cputs(data); // prints the received buffer int main() cputs("wait "); 17

18 lnp_addressing_set_handler(2, MyPortHandler); //sets the handler for listening to the port 2 //change this number to 3 for the third robot sleep(200); return 0; כעת שנה את מספר הפורט האזנה ל- 3, קמפל והורד לרובוט שלישי. הפעל את שני הרובוטים המקבלים. מילה WAIT מופיעה על המסך. הפעל רובוט- שולח ותראה הודעות שמודפסות על LCD של מקבלים דוגמת תקשורת מספר 2 3 קובץ: robot.c דוגמה זו מדגימה תקשורת בין רובוטים שמשדרים ומאזינים לאותו פורט. כל רובוט בעל מזהה ייחודי: הראשון 11, השני 12, והשלישי 13. לכל רובוט יש שני מנועים וחיישן מגע. כל רובוט נוסע קדימה, ברגע שנתקע במכשול (חיישן מגע נלחץ) הוא משדר על פורט 1 "סע אחורה" וכל הרובוטים מתחילים לנסוע אחורה במשך 2 שניות. רובוטים שקיבלו פקודה כותבים על LCD את ID של רובוט ששלח פקודה. הורד את התוכנית שלהלן לרובוט ראשון (המזהה שלו יהיה 11): #include <conio.h> #include <unistd.h> #include <lnp.h> #include <lnp-logical.h> #include <dmotor.h> #include <dsensor.h> char buf[1]; // buffer for data to be transmitted int flag=0; void MyPortHandler(const unsigned char* data, unsigned char length, unsigned char src) lcd_int(src); // prints the ID of the sender flag=1; // to prevent spending too much time in the handler, // I only update the flag that means "go reverse" void reverse() motor_a_dir(rev); // sets the motor A direction reverse motor_c_dir(rev); // sets the motor B direction reverse sleep(2); void send() 18

19 lnp_addressing_write(buf,1,1,11); // sends rev order to to port 1 cputs("sent "); int main() lnp_logical_range(1); // sets the transitter mode to the long range lnp_addressing_set_handler(1, MyPortHandler); // set message handler motor_a_dir(fwd); // sets the motor A direction forward motor_c_dir(fwd); // sets the motor B direction forward motor_a_speed(100); // runs the motor A at speed of 100 motor_c_speed(100); // runs the motor B at speed of 100 while(1) if (flag==1) // this flag updated in the handler reverse(); flag=0; if (TOUCH_1==1) send(); // call for function that sends a message reverse(); msleep(250); motor_a_dir(fwd); motor_c_dir(fwd); return 0; שנה את מספר ID בפונקציה send ל- 12 והורד לרובוט שני. שנה את מספר ID בפונקציה send ל- 13 והורד לרובוט שלישי. הפעל את שלושת הרובוטים ושחק עם הלחצנים. 19

20 9.4. תקשורת בין מחשב ל- RCX ובחזרה תוכנת WinLNP מאפשרת תקשורת בין תוכנות Windows לרובוטים. כדי להדגים את התקשורת אנו צריכים תוכנה שמשתמשת בשירותים של.WinLNP אם התקנת כפי שמוסבר בהוראות התקנה בתחילת המדריך אז נמצאת ברשותך WinLNP התוכנה הדרושה: TestLNP בספריה.C:\LegOS\WinLNP\test תוכנית זו כתובה ב- Visual Basic ומריצה את WinLNP ברקע. לדוגמה נרצה להעביר מחרוזת של מספרים 2,4,6,8,10 מהמחשב לרובוט באמצעות.RCX winlnp_to_rcx.c TestLNP ולקבל אותם בחזרה. תחילה יש להוריד את התוכנית ל- תוכנית זו מחכה לשידור, ברגע שמשהו מגיע לפורט 1 היא מדפיסה את עשרת התווים הראשונים של ההודעה על LCD בזה אחר זה במרווח של חצי שנייה, לאחר מכן שולחת את 10 התווים הראשונים של המחרוזת שהיא קיבלה בחזרה למחשב, ומחכה לשידור נוסף: #include <conio.h> #include <unistd.h> #include <lnp.h> int i=0; int flag=0; char *string; void MyPortHandler(const unsigned char* data, unsigned char length, unsigned char src) string=data; //copy the data received from TestLNP to srting array flag=1; int main() cputs("wait "); // waits for transmittion from TstLNP lnp_addressing_set_handler(1, MyPortHandler); //sets the handler to port 1 while (1) if (flag==1) while (i<11) //this loop will print the first 10 numbers // on LCD one after another, from the //string that came from TestLNP. // If the string was less than 10 numbers then the rest of // numbers will be garbge. lcd_int(*(string+i)); msleep(500); i++; 20

21 return 0; lnp_addressing_write(string,10,0x21,1); //sends the first 10 numbers of the received string back to //the computer. Pay attention to the computer address: 0x21 //That's because computer is on Host 2, Port 1. flag=0; i=0; הפעל את התוכנית ב- RCX והפעל את.TestLNP בחלון שנפתח וודא שמספר פורט הוא 1 ולחץ על.Connect כמו כן ניתן לראות שמספר Host של המחשב הוא 2, ומספר פורט 1, מספר ה- Host אינו 0, לכן בשליחה למחשב יש להשתמש בכתובת המלאה של המחשב, שהיא 0x21. תוכנת TestLNP מבינה רק מספרים הקסאדצימליים, לכן אם נרצה לשלוח 2,4,6,8,10 אז נכתוב בשורת הקלט: 0x2, 0x4, 0x6, 0x8, 0xA ונלחץ על.Send אם הרובוט היה במצב המתנה לשידור אז תיראה מספרים 2,4,6,8,10 רצים על ה-.LCD לאחר מכן תראה בחלון של TestLNP את המספרים ש- RCX שלח בחזרה למחשב. 21

22 9.5. כתיבת תוכנית לתקשורת בין מחשב ל- RCX בדוגמה הבאה תראה איך משתמשים בשירותים של WinLNP לצורך כתיבת תוכנית לתקשורת עם רובוטים. WinLNP הוא אובייקט COM 3 שמכיל.LNPManager, LNPSession, LNPPort ניתן להשתמש בהם מתוך קומפוננטות: Visual.Studio ההסבר המלא לגבי הקומפוננטות, אופן השימוש בהן וכן צורת הגישה מתוך ++C Visual תמצא באתר של WinLNP (כתובתו מופיעה בסוף החוברת). כאן יודגם השימוש מתוך.Visual Basic פתח פרויקט חדש ב-.Visual Basic תחילה יש לחבר את השירותים של.WinLNP בתפריט.References בחר Project חפש ברשימה את,WinLNP 1.0 Type Library סמן אותה ב- V. אם זה לא מופיע ברשימה אז לחץ על Browse ותצביע אל WinLNP.exe שנמצא ב-.C:\LegOS\WinLNP\Release כעת היכנס לקוד של הטופס (בתפריט View בחר (Code וכתוב את הקוד הבא (תוכל למצוא דוגמה זו בקובץ VBsample.frm בספרית Code ב- ): CD Private MyWinLNP As LNPManager Private MySession As LNPSession Private WithEvents gport As LNPPort Private Sub Form_Load() Set MyWinLNP = New LNPManager Set MySession = MyWinLNP.CreateNewSession() Set gport = MySession.OpenPort(0, 1) 'sets the destination port Call gport.setdataformat(bstr_formatedstring) Call gport.send("0x1, 0x2, 0x3, 0x4, 0x5") 'sends the string to RCX End Sub Private Sub gport_datahandler(byval vdata As Variant) MsgBox (vdata) 'prints the received data on the screen End Sub הורד ל- RCX את winlnp_to_rcx.c (מהדוגמה הקודמת) והפעל אותה, לאחר מכן הפעל את התוכנית שכתבת ב-.Visual Basic תוכנית זו שולחת לרובוט סדרת מספרים על פורט מספר אחד ולאחר מכן מקבלת אותם מ- RCX בחזרה ומדפיסה אותם על המסך. 22

23 9.6. ניהול הזיכרון הזיכרון ב RCX משותף למערכת ההפעלה ולתכניות המשתמש. אין הגנות מפני גלישה או כתיבה למקום אסור (לדוגמא כתיבה לאינדקס שלילי במערך). אין ספק שחופש פעולה זה פותח בפני המשתמש אפשרויות רבות, (לדוגמא תכנית משתמש המשנה קוד בתכנית משתמש אחרת, התערבות בפעולת מערכת ההפעלה ועוד) אך מצד שני, קל לטעות ולכתוב במקום אסור, ליצור בעיות בזמן ריצה, שקשה מאוד לאתר. סממנים: לאחר כתיבה על מערכת ההפעלה, אלמנטים במערכת ההפעלה יצאו מכלל פעולה (אם לא כל המערכת תקרוס), למשל יתכן מצב שתכן מסך ה RCX ישתנה, RCX יתחיל לצפצף או גם הפרעות שקשה לזהות אך הן פוגעות בריצתה התקינה של התכנית. במצב זה, טעינתה מחדש של התכנית (אם תתאפשר) לא תעזור מפני אין בכך לתקן את פונקציות מערכת ההפעלה הפגועות. יש לטעון את מערכת ההפעלה מחדש ל RCX כפי שתואר בחוברת זו, זאת לאחר ניתוק ה RCX ממקור מתח (הוצאה מהתקע או הוצאת בטריות), וחיבורו מחדש. 23

24 בבילוגרפיה קישורים באינטרנט אתר LegOS המקיף ביותר, מכיל קישורים לכל הספרות הקיימת, מכיל את רוב הקבצים הדרושים להתקנת המערכת. מומלץ מאד להוריד משם את הספר LegOS.Luis Villa מאת Howto אתר ה- LegOS מאת יוצר המערכת. פורום משתמשי.LegOS אתר WinLNP מאת יוצר התוכנה. מכיל קבצים להורדה והוראות שימוש. חומר רקע ע"י מקסים פלדמן. ספרות.LegOS HOWTO by Luis Villa ניתן להורדה מ- Extreme MINDSTORMS an advanced guide to LEGO Mindstorms by Dave Baum, Michael Gasperi, Ralph Hempel, Luis Villa. קיים במעבדה. G.Martin. Robotic Explorations by Fred קיים במעבדה. 24

25 LegOS Commands Reference: נספח - 1 Much of this command reference is taken from the LegOS Commands Reference written by Dave Chen. Thanks go to him. button input Data Log LCD display LNP, IR networking Math Memory management, allocation Miscellaneous stuff that doesn't fit anywhere else Motor control Semaphores Sensors Sound Strings Task / Thread management

26 Button input #include <dkey.h> #include <dbutton.h> Think of your RCX as a computer with a 4-key keyboard. You are also only allowed access to two of the keys, because LegOS reserves use of the other two for itself. With that said, there are only a few things we can think of that you could and would want to do with the keys, so here they are. #define KEY_ONOFF 0x01 //!< the on/off key is pressed #define KEY_RUN 0x02 //!< the run key is pressed #define KEY_VIEW 0x04 //!< the view key is pressed #define KEY_PRGM 0x08 //!< the program key is pressed #define KEY_ANY 0x0f //!< any of the keys char getchar ( ); returns: one of the following KEY types: KEY_ONOFF, KEY_PRGRM, KEY_RUN, KEY_VIEW the input keys are debounced in this routine wakeup_t dkey_pressed ( wakeup_t data ); returns when a key is pressed wakeup_t dkey_released ( wakeup_t data ); returns when a key is released 26

27 Data Log #include <log.h> The data log is useful for tracking data when your robot is not in range of an IR tower. This was built so as to minimize impact on the rest of the kernel, so it has several bugs that may cause legos to crash. If used as prescribed, however, the data log can be a very useful tool. To use the data log, your program must first allocate space by issuing the command init_log. This command must be issued by your main program thread. If not, legos will probably crash. After your program is finished, the very first thing you should do is retrieve the datalog using the PC-side tools. If you execute a program which does not use the datalog, do not try to download the log, as this may cause legos to crash. int init_log ( size_t size ); Initializes the log, allocating size bytes for it. If a log had already been allocated, the old log is destroyed before the new one is allocated. Returns 1 on success, 0 on failure. int lprintf ( const char *fmt ); Writes a printf-style-formatted string to the log. Returns the number bytes written to the log. void destroy_log ( ); Frees the space allocated for the log int log_size ( ); Returns the log size in bytes int dump_log ( unsigned char addr ); Dumps the log to the specified LNP address 27

28 Display #include <conio.h> #includ <dlcd.h> This section is a reference for all commands related to controlling the LCD panel. Display positions Digit display positions are denumerated from right to left, starting with 0 for the digit to the right of the running man. Digit 5 is only partially present on the RCXs display. Native segment masks In these bitmasks, bit 0 toggles the middle segment. Bit 1 toggles the top right segment, and the remaining segments are denumerated counterclockwise. The dot isn't encoded. void cls ( ); Clear the user portion of screen void cputs ( char * s ); Display an ASCIIZ string, only the first 5 characters will be displayed. if there are less than 5 characters, the remaining display positions will be cleared Parameters: s - the string to be displayed void cputw ( unsigned word ); Display a hexword, position 0 not used Parameters: word - the word the be displayed void cputc_hex_x ( unsigned nibble c ); Displays a hex value in position X Parameters: c - the value to be displayed void lcd_int ( int i ); Displays an integer on the LCD screen. Position 0 not used. Parameters: i - the integer to be displayed void lcd_unsigned ( unsigned int u ); Displays an unsigned integer value in decimal. Parameters: i - the unsigned integer to be displayed void lcd_digit ( int i ); displays a digit at position 0 Parameters: i - the digit to be displayed void lcd_clock ( int i ); Parameters: i - will be displayed with the format XX:XX void number ( int i, lcd_number_style n, lcd_comma_style c ); fancy number display Number Style: digit, sign, unsign Comma Style: e0, e_1, e_2, e_3 i - the integer to be shown Parameters: n the number style c the comma style void lcd_hide ( char mask ); void lcd_show ( char mask ); 28

29 hide and show the specified LCD segments Parameters: mask, see below - LCD mask definitions LCD_0_BOT, LCD_0_BOTL, LCD_0_BOTR, LCD_0_MID, LCD_0_TOP, LCD_0_TOPL, LCD_0_TOPR LCD_1_BOT, LCD_1_BOTL, LCD_1_BOTR, LCD_1_MID, LCD_1_TOP, LCD_1_TOPL, LCD_1_TOPR LCD_2_BOT, LCD_2_BOTL, LCD_2_BOTR, LCD_2_MID, LCD_2_TOP, LCD_2_TOPL, LCD_2_TOPR LCD_3_BOT, LCD_3_BOTL, LCD_3_BOTR, LCD_3_MID, LCD_3_TOP, LCD_3_TOPL, LCD_3_TOPR LCD_4_BOT, LCD_4_BOTL, LCD_4_BOTR, LCD_4_MID, LCD_4_TOP, LCD_4_TOPL, LCD_4_TOPR LCD_5_MID LCD_2_DOT, LCD_3_DOT, LCD_4_DOT LCD_A_LEFT, LCD_A_RIGHT, LCD_A_SELECT LCD_B_LEFT, LCD_B_RIGHT, LCD_B_SELECT LCD_C_LEFT, LCD_C_RIGHT, LCD_C_SELECT LCD_CIRCLE_0, LCD_CIRCLE_1, LCD_CIRCLE_2, LCD_CIRCLE_3 LCD_BATTERY_X LCD_ARMS, LCD_1LEG, LCD_2LEGS, LCD_BODY LCD_DOT_0, LCD_DOT_1, LCD_DOT_2, LCD_DOT_3, LCD_DOT_4, LCD_IR_LOWER, LCD_IR_UPPER LCD_EMPTY_1, LCD_EMPTY_2 29

30 IR networking Assume that none of the LNP commands are thread-safe. The following declarations are used typedef void (*lnp_addressing_handler_t) (const unsigned char *, unsigned char, unsigned char); LNP logical layer commands #include <lnp/lnp-logical.h> void lnp_logical_range ( int i ); Sets the IR range mode. 0 = Short range (~3 ft) 1 = Long Range (>15 ft) void lnp_logical_range_is_far ( ); returns the IR Range setting void lnp_logical_write ( const void *buf, size_t len ); len byte block of memory starting at buf is written to the IR port. You typically will want to use lnp_addressing_write or lnp_reliable_write instead of this, as this provides no addressing functionality. A call to this function waits for the write to complete / fail. returns 0 on success. Any other value signifies a probable collision. void lnp_logical_fflush ( ); flushes the input buffer LNP addressing layer commands #include <lnp/lnp.h> void lnp_addressing_set_handler ( unsigned char port, lnp_addressing_handler_t handler ); sets the handler for incoming data received on port port. Whenever a message is received on the specified port, a call to handler will be made, with the message as a parameter. Parameters: port - the port to set an addressing handler for handler - a function pointer to the function that will handle incoming data on port port int lnp_addressing_write ( const void *data, unsigned char length, unsigned char dest, unsigned char srcport ); Transmits length bytes of a chunk of memory starting at data to dest, with an originating port of srcport. A call to this function will block until the entire message has been transmitted or until failure. Parameters: data - a pointer to the block of memory to be sent length - the number of bytes to send dest - The address to broadcast to. This should be a full address, with both host address and destination port 30

31 srcport - This is used to tell the recipient which port to send replies to. returns: 0 on success, -1 on failure int lnp_get_hostaddr ( ); returns: the address of the current machine void lnp_set_hostaddr ( unsigned char new_hostaddr ); changes the host address to new_hostaddr. Does not affect existing port handlers. Does not affect reliable connections, but any existing reliable conection should be re-initialized anyway. LNP reliable layer commands #include <lnp/lnp-reliable.h> void lnp_reliable_init ( char dest, int port ); intializes LNP reliable communications with dest. This needs to be called by both sides of the connection before data can be sent. Both sides need to be using the same port number. int lnp_reliable_write ( const void * data, int real_length ); sends a real_length byte chunk of data starting from data across the network. A call to this function will block until either the message has been acknowledged or until a timeout occurs (currently 2.5 seconds) returns: 0 on success, -1 on failure int lnp_reliable_read ( void * data, unsigned char *src ); fills data with whatever has been received from the reliable connection. If src is non-null, then the originating address and port are stored in src. A call to this function will block until data is successfully read. Parameters: data - The buffer to write to src - the place to store the source address. Make this NULL if you don't want it filled in returns: the number of bytes read int lnp_reliable_printf ( const char * fmt,... ); wrapper around lnp_reliable_write for more convenient writing of data across the reliable connection. uses printf style formatting returns: number of bytes written 31

32 Math floating point math is no longer an issue with LegOS. It used to be, but is not anymore. Use a double the way you normally would, but keep in mind that it's often much slower than integer math. keep in mind that integers in LegOS are only 16-bits. This means that the maximum values an integer and an unsigned integer can have are and 65535, respectively. So don't do something like "int big_number=100000;" Advanced math routines are available for use in LegOS. Unfortunately, we haven't been able to get them to work under Windows yet. If you want to use any of the following functions (available on Solaris), speak to a TA #include <math.h> double atan2 ( double y, double x ); double sin ( double x ); double cos ( double x ); double tan ( double x ); many others... 32

33 Memory management #include <stdlib.h> void free ( void *ptr ); Frees the block of memory pointed to by ptr void * calloc ( size_t nmemb, size_t size ); Allocates adjacent blocks of memory, nmemb number of blocks of size individual block size Parameters: nmemb - the number of blocks to allocate size the size of each block returns: a pointer on success, NULL on failure void * malloc ( size_t size ); Allocate a block of memory Parameters: size - the size of the requested block of memory, in bytes. returns: a pointer on success, NULL on failure 33

34 Miscellaneous int sleep ( int sec ); #include <unistd.h> pauses the current task for sec seconds returns: zero int msleep ( int msec ); #include <unistd.h> pauses the current task for msec milliseconds returns: zero void power_off ( ); #include <rom/system.h> Initiates Software Standby/Low Power mode. On/Off button will reactivate void reset ( ); #include <rom/system.h> Returns control to ROM, ie. Cold Boot int random ( ); #include <stdlib.h> returns: a random integer void srandom ( int seed ); #include <stdlib.h> Seeds the random number generator with value seed long int sys_time #include <time.h> macro that evaluates to the current system time (time up from last firmware d/l) in msec. This is a 32 bit value which will overflow after 49.7 days of continuous operation. 34

35 Motors #include <dmotor.h> void motor_a_dir ( enum MotorDir ); void motor_b_dir ( enum MotorDir ); void motor_c_dir ( enum MotorDir ); Sets the direction of the specified motor Parameters: MotorDir - one of the following: off, fwd, rev, brake void motor_a_speed ( int speed ); void motor_b_speed ( int speed ); void motor_c_speed ( int speed ); Sets the speed of the specified motor Parameters: speed - an integer value between MAX_SPEED and MIN_SPEED MAX_SPEED is defined to be the upper limit of motor speed MIN_SPEED is defined to be the lower limit of motor speed 35

36 Semaphores #include <semaphore.h> Semaphores are used to synchronize different threads of control. This course does not place an emphasize on the finer points of synchronization, so don't be surprised or dissappointed if you don't understand any of this. If you have questions, feel free to approach a TA on hours. Semaphores in LegOS are POSIX 1003.b compliant. They must be declared, then initialized, before they can be used. int sem_init ( sem_t *sem, int pshared, unsigned int value ); Initializes a semaphore, giving it starting value of value. Parameters: sem - a pointer to the semaphore being initialized pshared not used by LegOS, usually set to indicate whether the semaphore is shared between processes or not. Just leave it at 0 value The initial value that you want to give the semaphore returns: 0 int sem_wait ( sem_t *sem ); suspends the calling thread until the semaphore pointed to by sem has nonzero count. It then atomically decreases the semaphore count. returns: 0 int sem_trywait ( sem_t *sem ); sem_trywait is a non-blocking variant of sem_wait. If the semaphore pointed to by sem has non-zero count, the count is atomically decreased and sem_trywait immediately returns 0. If the semaphore count is zero, sem_trywait immediately returns with error EAGAIN. returns: a non-zero value if sem was successfully decremented, 0 otherwise int sem_post ( sem_t *sem ); atomically increases the count of the semaphore pointed to by sem. This function never blocks and can safely be used in asynchronous signal handlers. Parameters: sem - the semaphore to post returns: 0 int sem_getvalue ( sem_t *sem, int *sval ); get the semaphore value Parameters: sem - the semaphore sval the integer to store the value of the semaphore into returns: 0 int sem_destroy ( sem_t *sem ); destroys a semaphore object, freeing the resources it might hold. No threads should be waiting on the semaphore at the time sem_destroy is called. Parameters: sem - the semaphore returns: 0 36

37 Sensors #include <dsensor.h> light sensors may be put into active mode if desired (probably) rotation sensors must be in active mode for proper readings rotation sensors must also be activated with ds_rotation_on touch sensors must be in passive mode for proper readings These constants are defined: LIGHT_RAW_BLACK LIGHT_RAW_WHITE LIGHT_MAX DS_ALL_ACTIVE a macro to set all sensors as active DS_ALL_PASSIVE a macro to set all sensors as passive void ds_active ( SENSOR ); void ds_passive ( SENSOR ); set an individual sensor mode Parameters: SENSOR - must be one of the following &SENSOR_1 &SENSOR_2 &SENSOR_3 void ds_rotation_on ( SENSOR ); void ds_rotation_off ( SENSOR ); sets a sensor into rotation sensor mode Parameters: SENSOR - must be one of the following &SENSOR_1 &SENSOR_2 &SENSOR_3 returns: void ds_rotation_set ( SENSOR, int i ); sets the value of a rotation sensor. Use this to initialize and calibrate your rotation sensors when your program begins. Parameters: SENSOR - see above - i The value to set the rotation sensor to returns: int TOUCH_X macro for touch sensor X. evaluates to zero if touch sensor connected to input port X is released, and non-zero if the touch sensor is pressed. int LIGHT_X macro for light sensor X. evaluates to an integer between LIGHT_MIN and LIGHT_MAX int ROTATION_X 37

38 macro for rotation sensor X. evaluates to how many 16ths of a revolution the rotation sensor has spun. int SENSOR_X macro for sensor X. evaluates to the raw, unprocessed value returned by the sensor connected to input port X. int get_battery_mv ( ); returns: the battery voltage, in millivolts int BATTERY macro for the raw battery voltage level. use get_battery_mv instead 38

39 Sound #include <dsound.h> Notes in LegOS are represented by the note_t struct, which is defined as follows: typedef struct unsigned char pitch; unsigned char length; note_t; Normally, you should declare a note_t * and then fill it in. For example: note_t nbc[] = PITCH_C, EIGHTH, PITCH_A, EIGHTH, PITCH_F, EIGHTH, PITCH_END, EIGHTH ; when dsound_play() is called, it will play each note in succession and for the specified duration until it reaches a PITCH_END note, when it will stop. The following pitches have been defined #define PITCH_A0 0 #define PITCH_Am0 1 #define PITCH_H0 2 #define PITCH_C1 3 #define PITCH_Cm1 4 #define PITCH_D1 5 #define PITCH_Dm1 6 #define PITCH_E1 7 #define PITCH_F1 8 #define PITCH_Fm1 9 #define PITCH_G1 10 #define PITCH_Gm1 11 #define PITCH_A1 12 #define PITCH_Am1 13 #define PITCH_H1 14 #define PITCH_C2 15 #define PITCH_Cm2 16 #define PITCH_D2 17 #define PITCH_Dm2 18 #define PITCH_E2 19 #define PITCH_F2 20 #define PITCH_Fm2 21 #define PITCH_G2 22 #define PITCH_Gm2 23 #define PITCH_A2 24 #define PITCH_Am2 25 #define PITCH_H2 26 #define PITCH_C3 27 #define PITCH_Cm3 28 #define PITCH_D3 29 #define PITCH_Dm3 30 #define PITCH_E3 31 #define PITCH_F3 32 #define PITCH_Fm3 33 #define PITCH_G3 34 #define PITCH_Gm

40 #define PITCH_A3 36 #define PITCH_Am3 37 #define PITCH_H3 38 #define PITCH_C4 39 #define PITCH_Cm4 40 #define PITCH_D4 41 #define PITCH_Dm4 42 #define PITCH_E4 43 #define PITCH_F4 44 #define PITCH_Fm4 45 #define PITCH_G4 46 #define PITCH_Gm4 47 #define PITCH_A4 48 #define PITCH_Am4 49 #define PITCH_H4 50 #define PITCH_C5 51 #define PITCH_Cm5 52 #define PITCH_D5 53 #define PITCH_Dm5 54 #define PITCH_E5 55 #define PITCH_F5 56 #define PITCH_Fm5 57 #define PITCH_G5 58 #define PITCH_Gm5 59 #define PITCH_A5 60 #define PITCH_Am5 61 #define PITCH_H5 62 #define PITCH_C6 63 #define PITCH_Cm6 64 #define PITCH_D6 65 #define PITCH_Dm6 66 #define PITCH_E6 67 #define PITCH_F6 68 #define PITCH_Fm6 69 #define PITCH_G6 70 #define PITCH_Gm6 71 #define PITCH_A6 72 #define PITCH_Am6 73 #define PITCH_H6 74 #define PITCH_C7 75 #define PITCH_Cm7 76 #define PITCH_D7 77 #define PITCH_Dm7 78 #define PITCH_E7 79 #define PITCH_F7 80 #define PITCH_Fm7 81 #define PITCH_G7 82 #define PITCH_Gm7 83 #define PITCH_A7 84 #define PITCH_Am7 85 #define PITCH_H7 86 #define PITCH_C8 87 #define PITCH_Cm8 88 #define PITCH_D8 89 #define PITCH_Dm8 90 #define PITCH_E8 91 #define PITCH_F8 92 #define PITCH_Fm8 93 #define PITCH_G8 94 #define PITCH_Gm8 95 #define PITCH_A8 96 #define PITCH_PAUSE 97 40

41 #define PITCH_MAX 98 #define PITCH_END 255 The following note lengths have been defined #define WHOLE 16 #define HALF 8 #define QUARTER 4 #define EIGHTH 2 void dsound_system ( SOUND ); plays pre-defined system sound SOUND. Currently, only DSOUND_BEEP is a defined system sound. There are no others. wakeup_t dsound_finished ( wakeup_t data ); wakeup function that wakes up the calling thread when the RCX has finished playing any sounds that it is supposed to. int dsound_playing ( ); returns: non-zero if the system is playing a sound, zero if not void dsound_stop ( ); stops any sound playing that is in progress void dsound_play ( const note_t *notes ); Plays an array of notes, as explained above. This is a non-blocking call, so a call to this function will simply set the sound player in motion, it will not wait for it to finish. Parameters: notes - a pointer to the first note to play. The array must end with a note having pitch PITCH_END, otherwise bad things may happen More advanced sound commands are available, but we won't cover them here. Poke through dsound.h if you're interested 41

42 String functions #include <string.h> A small subset of the standard C string.h has been implemented in LegOS void * memcpy ( void *dest, const void *src, size_t size ); copies a memory block from src to dest of size size bytes returns: dest void * memset ( void *dest, int c, size_t n ); Fills a memory block of size n bytes at dest with byte value c returns: dest int strcmp ( const char *s1, const char *s2 ); performs a lexicographic comparison of two NULL-terminated strings s1 and s2 returns: < 0 if s1 < s2 > 0 if s1 > s2 zero if s1 == s2 char * strcpy ( char *dest, char *src ); copy a null terminated string src into memory block starting at dest returns: dest int strlen ( const char *s ); returns: length of null terminated string s 42

43 Task/Thread Management Multitasking is going to be crucial to building a robust robot. Make sure you know how to use these commands with at least some ease. It is often said that one of the best ways to learn code is to read through examples and to play with them. See the sample code section for examples on how to use tasks and events. Download some samples and experiment with them, making sure you understand how everything works. pid_t execi ( int (*code_start) (int, char **), int argc, char **argv, priority_t priority, size_t stack_size ); Starts a new thread of control. The new thread begins execution by calling the function pointed to by code_start argc and argv are used for passing parameters to the function code_start, but you most likely will not need them, so just leave them both as 0 for now. Parameters: code_start - a function pointer for where the thread should begin execution priority the priority of the new thread. Should be in between PRIO_LOWEST and PRIO_HIGHEST. Typically, set this value to PRIO_NORMAL plus or minus one or two. stack_size unless you are an elite h4x0r, leave this as DEFAULT_STACK_SIZE returns: the pid of the new thread void exit ( int code ); causes the current task to halt execution and terminate, returning code. This will also free any memory allocated by the task. void kill ( pid_t pid ); Kill task associated with pid as assigned when it was started by execi() void killall ( priority_t prio ); Kills all tasks with priority less than prio wakeup_t wait_event ( wakeup_t (*wakeup) (wakeup_t), wakeup_t data ); Suspends the current task until a call to the wakeup function wakeup returns a non-null value. This is confusing if you are not familiar with function pointers, so see the example on how to use it. void yield ( ); Yields the rest of the current task's timeslice. void systime_set_timeslice ( unsigned char slice ); #include <sys/time.h> Sets the multitasking timeslice in ms. Minimum value of 5 ms. The default value is 20 ms. 43

44 44

45 נספח 2 חלקי : LEGO מטרתו של נספח זה הנה לזהות ע"י תמונה את החלקים הבסיסיים של LEGO עליהם דובר בחלקי החוברת השונים. פריט LEGO Robotics Invention System 2.0 תמונה RCX Serial tower 45

46 Light sensor Rotation sensor Toch sensor Temperature sensor 46

47 Fast motor (gray) Gear motor (gray) Mini motor (red) סכימת החיבורים: 47

48 : 3 נספח הנחיות להגשת פרוייקט ברובטיקה עריכת חוברת הפרוייקט הנחיות הגשת הקוד הכנת מצגת הפרוייקט מטרה מטרת המסמך הינה לתת לתלמיד המבצע פרוייקט במסגרת המעבדה ואינו מכיר את נוהלי הגשת הפרוייקט את הרקע וההנחיות הדרושות לביצוע מיטבי של הפרוייקט. עקרונות על הפרויירקט להיות מוגש בצורה העונה בצורה טובה ככל הניתן על הציפיות הבאות : סטנדרטיזציה צורת הגשה אחידה ובהירה שמירת ידע יש לשאוף לצמצום מרבי של הזמן שיידרש למי שיקרא את ספרות הפרוייקט על מנת לרכוש את הידע שנצבר בפרוייקט. זאת הן לגבי טעויות והן לגבי ההישגים. תוצאה זו תנבע מפירוט מרבי של הידע שנרכש, תוך סידורו ומבניות אשר יקלו על הקורא להגיע למידע הרלוואנטי. הדגמת תוצאות על ידי מצגות לרבות בפורמט פאוור-פוינט. חוברת הפרוייקט החוברת חייבת לכלול : דף שער לפי דוגמה מצורפת תמצית הכוללת בין השאר את הנושא, הבעיה, המצב לפני הפרוייקט וההתקדמות שהושגה בפרוייקט תוכן עניינים הצגת הבעיה שהפרוייקט בא לנסות ולפתור הכיוון והדרכים לפתרון שייושמו בפרוייקט ניסויים ושלבי התקדמות תוצאות ומסקנות לגבי כל שלב דיון בתוצאות הכולל: הישגים, כשלונות, כיוונים להמשך ביבליוגרפיה קוד מצגות 48

49 אופן הגשה ספר הפרוייקט יוגש בשני פורמטים : בצורה מודפסת בצורה אלקטרונית מצגות בסיום הפרוייקט, יחד עם ספרות הפרוייקט יש להציג מצגת אשר מטרתה להדגים את תוצאת הפרוייקט ולהסבירה ברמה מעשית. הפורמט יהיה PowerPoint בתוספת שמוש מירבי במולטימדיה ככל שידרש. על המצגת להיות מוגשת בפורמט נוסף המותאם לרשת בפורמט HTML הקוד הקוד חייב להיות קריא, מובן ולכלול תיעוד מלא ככל האפשר. 49

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

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

Homework Dry 3

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

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד

מצגת של PowerPoint

מצגת של PowerPoint מבוא כללי לתכנות ולמדעי המחשב תרגול מס' 1 דין שמואל dshmuel110@gmail.com 1 1. מנהלות מרצה: אמיר רובינשטיין, amirr@tau.ac.il שעות קבלה: לשאלות קצרות - מייד לאחר השיעור. ניתן לתאם במייל שעות אחרות. מתרגל:

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות

קרא עוד

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office 365 ProPlus בחינם. ניתן להוריד ולהתקין את הגרסאות הבאות:

קרא עוד

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

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

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

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

קרא עוד

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

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

קרא עוד

מקביליות

מקביליות PROMELA גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון עדכון אחרון: 21:40 15/06/2013 2 שפת מ פ ר ט עם ס מ נ ט יק ה מוגדרת באופן מתמטי "שפת תכנות" למודלים המטרה: לאפשר גם לכאלה שאינם חוקרים בתחום לבנות

קרא עוד

אתגר קוביות מחייכות תכולה: 12 קוביות חוברת הוראות ופתרונות ספרון הכולל 60 חידות חידות בדרגות קושי שונות תפיסה חזותית וחשיבה לוגית הקדמה המשחק פרצופים

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

קרא עוד

Overview of new Office 365 plans for SMBs

Overview of new Office 365 plans for SMBs מעבר בין חבילות Online מעבר בין חבילות ב- Open Online to Open Current Plan Upgrade Options Current Plan Upgrade Options Business Essentials Business Premium Enterprise E1 Enterprise E3/E4 Enterprise E1

קרא עוד

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס מבוא למחשב שפת C. בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה לקורס. האשף קובע את סביבת הפיתוח כך שתתאים לצורכי הקורס.

קרא עוד

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

תורת הקומפילציה תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר

קרא עוד

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

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

קרא עוד

תרגול מס' 1

תרגול מס' 1 תרגול 6 הסתעפויות 1 מבוסס על שקפים מאת יאן ציטרין קפיצות לא מותנות Unconditional Branch br label PC לאחר ה- fetch של פקודת ה- branch PC לאחר הביצוע של פקודת ה- branch pc label br label הקפיצה מתבצעת תמיד,

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,

קרא עוד

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

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל

קרא עוד

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמטרים של מערכים היא by reference וכן דוגמאות שמראות שמשתנים

קרא עוד

PowerPoint Presentation

PowerPoint Presentation פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן

קרא עוד

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

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

קרא עוד

שקופית 1

שקופית 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] - יושב

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת

קרא עוד

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

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

קרא עוד

Slide 1

Slide 1 1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים

קרא עוד

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

Microsoft PowerPoint - T-10.ppt [Compatibility Mode] מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,

קרא עוד

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

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

קרא עוד

בקרים מתוכנתים – PLC

בקרים מתוכנתים – PLC 4.2. לאחר בניית מערכת ההנעה נחבר אליה את בקר ה- NXT באופן הבא: איור 19: חיבור הבקר אל מערכת ההנעה 29 5.2. נחבר את הבקר אל מערכת ההנעה באופן הבא: איור : 20 חיבור הסוללות והבקר אל מערכת ההנעה 30 איור : 21

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

מבוא לאסמבלי

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

קרא עוד

Comp. Arch. Lecture 1

Comp. Arch. Lecture 1 א ר כי טקטור ת מ ח ש בים ד"ר טל שיקלר סו ב ול אימייל: stal@bgu.ac.il Mother board לוח אם CPU central processing unit מעבד דוגמאות: 80x86 ו תואמיו Intel 80x86 Intel Core 2 Duo 64 bits 80x86 compatible AMD

קרא עוד

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

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

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - Ass1Bgu2019b_java docx ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות

קרא עוד

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108

קרא עוד

Microsoft PowerPoint - Lecture1

Microsoft PowerPoint - Lecture1 Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית

קרא עוד

úåëðä 1 - çæøä

úåëðä 1 - çæøä Arrays and Strings מערך - אוסף משתנים בעלי שם משותף. הפנייה לכל איבר נעשית ע י אינדקס. ב- C מערך מוגדר בזיכרון רציף. האיבר הראשון נמצא בכתובת הנמוכה. לדוגמא, אם a מוגדר החל מכתובת :1000 char a[7]; Element

קרא עוד

PowerPoint Presentation

PowerPoint Presentation 1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

Slide 1

Slide 1 פוליטיקה ארגונית למנהלי משאבי אנוש תמר חושן יעוץ ניהולי "ולחשוב שאני צריכה לבזבז עכשיו כל כך הרבה זמן על הדבר הזה..." למה לי פוליטיקה עכשיו?! "אם אתה מקצוען אמיתי. באמת טוב במה שאתה עושה אתה לא רוצה ולא

קרא עוד

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

מבוא למדעי המחשב - חובלים אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב סמסטר ב' תשע"ב בחינת סיום, מועד ב',.02..9.7 מרצה: אורן וימן מתרגלים: נעמה טוויטו ועדו ניסנבוים מדריכי מעבדה: מחמוד שריף ומיקה עמית משך המבחן: שעתיים חומר

קרא עוד

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - rec1.ppt תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

ex1-bash

ex1-bash ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם

קרא עוד

Microsoft PowerPoint - rec3.ppt

Microsoft PowerPoint - rec3.ppt תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם

קרא עוד

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

תשעדד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..( תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv

קרא עוד

Microsoft PowerPoint - meli-iso.ppt

Microsoft PowerPoint - meli-iso.ppt דגשים לעבודה עם פרוטוקול ISOILL בהשאלה בין-ספרייתית יוסי ט יסו נה המסלול האק דמי ה מכללה למי נהל יום הדרכה של מאלי בנושא השאלה והשאלה בין-ספרייתית יולי 2010 - אוניברסיטת בן-גוריון בנגב פרוטוקול ISOILL

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

אגף כלכלה תקציב ומסחר

אגף כלכלה תקציב ומסחר נספחי תמורה נספח א' מחשבים נייחים תוצרת HP או LENOVO כמות שנתית לצורך השוואת 400 יחידות תוצרת HP HP Compaq Pro Desk 600G3 )או כל דגם עתידי מאותה סידרה \ מאפיינים( i5-7500 CPU @ 320GHz מעבד זיכרון כרטיס

קרא עוד

Tutorial 11

Tutorial 11 מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation הקלטה עצמית באמצעות Tablet PC תמצית פעילות 2009-2014 הטמעת אוטומציה מלאה ב- 2015 מדור טכנולוגיות למידה וייעוץ מערך המחשוב אב"ג הקלטה עצמית באמצעות Tablet PC הסבר על השיטה יתרונות וחסרונות תמצית פעילות

קרא עוד

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

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

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

שקופית 1

שקופית 1 RESOLUTION Resolution Spatial Resolution Contrast resolution Temporal Resolution Types of Resolution Spatial Resolution also called Detail Resolution the combination of AXIAL and LATERAL resolution -

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 3 תרגול מס' מתודות ותיכון לפי חוזים חוזה בין ספק ללקוח חוזה בין ספק ללקוח מגדיר עבור כל שרות: תנאי ללקוח - "תנאי קדם" precondition - - תנאי לספק "תנאי אחר".postcondition לקוח ספק 2 תנאי קדם )preconditions(

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה

קרא עוד

מערכות הפעלה

מערכות הפעלה תקשורת ב- Linux ו- Unix מנגנון תקשורת ב- Linux סכמת שרת לקוח: client/server מודל השכבות רשת תקשורת: חיבורים המאפשרים תקשורת בין מחשבים פרוטוקולי תקשורת מאפשרים העברת נתונים ברשת פועלים בשכבות שונות, כשלכל

קרא עוד

Slide 1

Slide 1 מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות

קרא עוד

PRESENTATION NAME

PRESENTATION  NAME נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם

קרא עוד

eriktology The Prophets Book of 1 st Kings [1]

eriktology The Prophets Book of 1 st Kings [1] eriktology The Prophets Book of 1 st Kings [1] [2] FOREWORD It should be noted when using this workbook, that we ( Eric, Lee, James, and a host of enthusiastic encouragers ) are not making a statement

קרא עוד

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

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

קרא עוד

ייבוא וייצוא של קבצי אקסל וטקסט

ייבוא וייצוא של קבצי אקסל וטקסט ייבוא וייצוא של קבצי אקסל וטקסט (Importing & Exporting MS Excel Files and Text) ייבוא (Import) הפיכת קובץ טקסט, Excel מבסיס נתונים אחר. או סוגים אחרים, לטבלת,Access או העתקת טבלת Access בתחילת התהליך יש

קרא עוד

תרגיל 3 בקורס תוכנה 1

תרגיל 3 בקורס תוכנה 1 1 תוכנה תרגיל מספר 8 הנחיות כלליות: קראו בעיון את קובץ נוהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה VirtualTAU בלבד.(http://virtual2002.tau.ac.il/) יש להגיש קובץ zip יחיד הנושא את

קרא עוד

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

פיסיקה 1 ב' מרצים: גולן בל, משה שכטר, מיכאל גדלין מועד ב משך המבחן 3 שעות חומר עזר: דף נוסחאות מצורף, מחשבון אסור בהצלחה! חלק א' פיסיקה 1 ב' 203-1-1391 מרצים: גולן בל, משה שכטר, מיכאל גדלין מועד ב 03.08.2017 משך המבחן 3 שעות חומר עזר: דף נוסחאות מצורף, מחשבון אסור בהצלחה! חלק א' - שאלות אמריקאיות (כל שאלה - 5 נק') - יש לסמן תשובה

קרא עוד

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt מרחב הש מות (namespace) אוהד ברזילי אוניברסיטת תל אביב מה בתו כנית? לקוח וס פק במערכת תוכנה ממשקים הכרת מרחב השמות מניעת תלות פוטנציאלית בין רכיבים במערכת ע"י עיצוב חלופי של מבנה הממשקים 2 א ונ י ב רס

קרא עוד

PowerPoint Presentation

PowerPoint Presentation == vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על

קרא עוד

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

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

קרא עוד

Microsoft PowerPoint - L01-n.ppt

Microsoft PowerPoint - L01-n.ppt :Altair 8800 המחשב האישי הראשון 1975 21 1977 Apple][ 22 1981 IBM PC 23 וכיום? 24 מבוא למדעי המחשב. כל הזכויות שמורות 1 הרצאה מיק רוסופ ט 1975 ב- 1975 מציעים ביל גייטס ופול אלן לחברת MITS המייצרת את ה-

קרא עוד

התגוננות בפני כוחות האופל

התגוננות בפני כוחות האופל ניהול ידע אישי על רגל אחת 1 סוגי ידע Explicit גלוי Tacit סמוי 5 מה אמר השועל לנסיך הקטן? מה קורה בבתי ספר כשמורים או מנהלים עוזבים? 8 ניהול ידע במערכת החינוך רמת התלמיד )ניהול ידע אישי( רמת המורה )ניהול

קרא עוד

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

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

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C צעדים הרצאה 2: ראשונים בשפת C מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י

קרא עוד

Microsoft Word - sync_LG.doc

Microsoft Word - sync_LG.doc LG PC Suite הגדרות וביצוע סנכרון ניתן להתקין את התוכנה מדיסק המצורף לערכה ניתן לסנכרן עד 100 אירועים בלוח שנה ועד 500 אנשי קשר 1 לחץ על איקון Suite" "LG PC בשולחן העבודה 2 להגדרות הסינכרון לחץ על Sync"

קרא עוד

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

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

קרא עוד

מיכפל

מיכפל מיכפל 0222 הוראות התקנה למהדורה 9.78 במהדורה 78.9 בוצעו מספר שינויים טכנולוגיים: שדרוג התוכנה ליצירת דוחות בפורמט PDF שינויים בטכנולוגיית השידור של טופס 102 לביטוח הלאומי במהלך עדכון גרסה זו תתקבלנה מספר

קרא עוד

Slide 1

Slide 1 בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף

קרא עוד