מבוא כללי למדעי המחשב תרגול 1
כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C ניתן לחשוב על כך כמו על כתיבת מסמך באנגלית. זה נעשה ע " י כתיבת קובץ טקסט שמקיים את כללי השפה האנגלית.
הבנת התוכנה כדי שהמחשב ידע להבין את מה שכתבנו ישנו כלי שמתרגם את שפת C לשפת המחשב הבסיסית כלי זה הוא המהדר (compiler ) של שפת C. כדי שהמחשב ידע להבין את מה שכתבנו ישנו כלי שמתרגם את שפת C לשפת המחשב הבסיסית כלי זה הוא המהדר (compiler ) של שפת C. ניתן לחשוב על זה כמו על המסמך שלנו באנגלית שמתורגם עבור אדם ששפתו היחידה היא עברית
סביבת העבודה סביבת העבודה Visual C++ נותנת לנו את האפשרות לכתוב תוכנה בשפת C באמצעות editor נוח שמאפשר לנו לכתוב את הטקסט של C סביבת העבודה Visual C++ נותנת לנו את האפשרות לכתוב תוכנה בשפת C באמצעות editor נוח שמאפשר לנו לכתוב את הטקסט של C בנוסף היא מספקת לנו את המהדר שיתרגם את הקוד שלנו לקובץ שהמחשב ידע להפעיל – קבצים אלו נקראים קבצי הפעלה ( executable) בנוסף היא מספקת לנו את המהדר שיתרגם את הקוד שלנו לקובץ שהמחשב ידע להפעיל – קבצים אלו נקראים קבצי הפעלה ( executable)
עבודה עם סביבת העבודה מספר שלבים יצירת פרויקט מיקומו בספריה מתאימה יצירת פרויקט מיקומו בספריה מתאימה יצירת קובץ לכתיבת הקוד יצירת קובץ לכתיבת הקוד כתיבת הקוד כתיבת הקוד תרגומו באמצעות המהדר תרגומו באמצעות המהדר הרצה ובדיקה שאכן מה שרצינו קורה !!! הרצה ובדיקה שאכן מה שרצינו קורה !!!
עבודה עם סביבת העבודה יצירת פרויקט ומיקומו בספריה מתאימה יצירת פרויקט ומיקומו בספריה מתאימה יצירת קובץ לכתיבת הקוד יצירת קובץ לכתיבת הקוד כתיבת הקוד כתיבת הקוד תרגומו באמצעות המהדר תרגומו באמצעות המהדר הרצה ובדיקה שאכן מה שרצינו קורה !!! הרצה ובדיקה שאכן מה שרצינו קורה !!! מספר שלבים
התוכנית הראשונה #include #include void main() { printf ("Hello World!!!\n"); } hello.c hello.exe
התוכנית הראשונה #include #include void main() { printf ("Hello World!!!\n"); } מעטפת התוכנית הקוד הראשי הסוגרים המסולסלים פותחים קטע של קוד כאן נפתח קטע הקוד הראשי של התוכנית
התוכנית הראשונה #include #include void main() { printf ("Hello World!!!\n"); } גוף התוכנית קריאה לפונקציה אשר מדפיסה את הטקסט: Hello World!!!
פונקצית ההדפסה printf ("Hello World!!!\n"); שם הפונקציה לא מודפס!. בשורה חדשה! הסימן \n לא מודפס!. הוא מסמן לרדת שורה כלומר התו הבא שיודפס ע"י התוכנית יודפס בשורה חדשה! הטקסט להדפסה (מופיע בין גרשיים) printf ("Hello World!!!\n"); \n
התוכנית הראשונה #include #include void main() { printf ("Hello World!!!\n"); } למה זה משמש ? פונקציה פקודה הגדרת הפונקציה ההדפסה מתבצעת ע"י פונקציה של שפת C ( לא פקודה ) ולכן צריך להגיד לתוכנית איפה נמצאת הגדרת הפונקציה שבה נשתמש.
תרגיל 1 צרו פרויקט חדש וכתבו תוכנית המדפיסה את שמכם למסך כך שהשם הפרטי יופיע בשורה הראשונה ושם המשפחה בשורה השנייה.
פתרון תרגיל 1 #include #include void main() { printf ("Shai\nGutner\n"); }
הגדרת משתנים #include #include void main() { int x,y; int z=0; } הגדרנו כאן שלושה משתנים x, y, z כללי הגדרת משתנים: type לפני שם המשתנה נציין את סוגו (type) int בדוגמא הסוג הוא int שזה מספר שלם ניתן להגדיר מספר משתנים בשורה כולם מאותו הסוג מופרדים בפסיק. ניתן לאתחל משתנה מיד בשורת ההגדרה שלו (כמו שעשינו עם z) ניתן להגדיר משתנים רק לאחר פתיחת סוגרים מסולסלים
הדפסת משתנים ופעולות חשבון #include #include void main() { int x,y; int z; x=3; y=7; z = x*y; printf ("z=%d\n",z); printf ("y/x=%d\n",y/x); printf ("y%x=%d\n",y%x); } z=21 הפעולות בתוכנית: כפל * חילוק / שארית % פלט: y/x=2 y%x=1
פונקצית ההדפסה - הדפסת משתנה printf ("z=%d\n", z ); שם הפונקציה הסימן %d לא מודפס! הוא מסמן לפונקצית ההדפסה שכאן צריך לשלב ערך של משתנה שיגיע מאוחר יותר לאחר הגרשיים הטקסט להדפסה (מופיע בין גרשיים) המשתנה לשילוב במקום %d %d
תרגיל 2 כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
פתרון תרגיל 2 #include #include void main() { int x,y,z; x=1;y=2;z=3; printf ("x*y*z=%d\n",x*y*z); printf ("x+y+z=%d\n",x+y+z); printf ("x-y-z=%d\n",x-y-z); } שפונקצית ההדפסה נשים לב שפונקצית ההדפסה מקבלת גם ביטוי מתמטי מחשבת אותו ומדפיסה את ערכו
קליטת ערכים למשתנים מהמשתמש #include #include void main() { int num, num1; printf("Enter two positive numbers\n"); scanf("%d%d", &num, &num1); } הוראה למשתמש קליטת הערכים
פונקצית הקליטה scanf("%d%d", &num, &num1); שם הפונקציה אופי הקלט (מופיע בין גרשיים) הקלט יכנס למשתנים num num1ו- מה פשר הסימן & ? &&
תרגיל 3 כתבו תוכנית הקולטת שני מספרים מהמשתמש ומדפיסה את ההפרש שלהם ואת המנה שלהם.
פתרון תרגיל 3 #include #include void main() { int num, num1, s,q; printf("Enter two positive numbers\n"); scanf("%d%d", &num, &num1); s = num - num1; printf("subtraction of %d from %d is %d\n", num1, num, s); q = num / num1; printf("quotient of %d and %d is %d\n", num, num1, q); } הוראה למשתמש קליטת הערכים