מבוא לשפת C תירגול 1: מבוא 1
אתר הקורס webcourse.cs.technion.ac.il/234112 חדשות הקורס תרגילי בית הרצאות ותירגולים חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... 2
אתר הקורס 3
רשימת תפוצה חובה להירשם! הודעות חשובות אתר הקורס איך עושים? 4 אותה סיסמא של UG
שיעורי בית שבועיים (עם בונוס) הארכה אוטומטית של 3 ימים (ללא בונוס) בבודדים! משקל: 15% מציון סופי תגילים 1% 3, 2,1,0 תרגיל 4 3% תרגילים 6,5 4% 5 הגשה כולם חובה! אלקטרונית בחלק מהתרגילים, יהיו גם שאלות יבשות להגשה מודפסת! בבניין טאוב, קומה 1
שיעורי בית אישור הגשה חשוב לשמור על קוד האישור של ההגשה האלקטרונית! 012345678 012345678.zip 6
ספר הקורס ספר הלימוד העיקרי הוא "ABC" או A Book on C מאת Kelly ו- Pohl מהדורה רביעית הספר של מפתחי שפת :C The C Programming Language Kernighan מאת לא מומלץ למתחילים ו- Ritchie 7
חשוב לדעת! ציון 0 העתקות מי שיעתיק בתרגיל בית, יקבל ועלול לעלות לוועדת משמעת. לכן, אל תעתיקו! סדנאות יתקיימו סדנאות על מנת לעזור לכם עם הכנת תרגיל הבית 0. תקבלו יותר מידע בימים הקרובים דרך רשימת התפוצה. 8
מטרות הקורס.C הבנה בסיסית של מה זה מחשב. מה זו "שפת תכנות". איך כותבים תוכניות בשפת התכנות מה זה "אלגוריתם". למה בכלל צריך לדעת לתכנת. 9
מבנה המחשב שנת 2000 מסך מקלדת תחליפים לעכבר כונן DVD 10
מבנה המחשב מבפנים Bus (ערוץ תקשורת בין הרכיבים) אמצעי פלט זיכרון CPU ראשי אמצעי קלט התקני זיכרון אחרים 11
מערכת ההפעלה כל מחשב חייב מערכת הפעלה, ממחשבי על ועד לטלפונים סלולריים. מערכת הפעלה היא תוכנית מחשב היא מספקת שירותים שונים למשתמש האנושי עבודה נוחה עם קבצים, התקני קלט/פלט הרצת הרבה תוכניות במקביל תוכניות עזר קטנות: מחשבון, דפדפן, כמו כל תוכנית אחרת. פנקס רשימות, וכו'. 12
מערכת ההפעלה בנוסף, מערכת ההפעלה מספקת לתוכנית שכתבתם את כל השירותים שהיא זקוקה כדי לרוץ על המחשב: הקצאות זיכרון ביצוע פלט / קלט עבודה נוחה עם קבצים יחסי גומלין עם תוכניות אחרות ועוד הרבה הרבה... ) לפחות 2 קורסים נוספים (... 13
קבצים מידע קבצים זכרון 0101100 במחשב, מידע מורכב מאוסף סיביות. כל קובץ הינו רצף סיביות. בתוך מחשב יש מאות אלפי קבצים... איך אפשר לארגן כזו כמות של מידע? 14
קבצים שם של קובץ מורכב משם, נקודה וסיומת Name. שם הקובץ Extension סיומת my_file.doc לדוגמה: הסיומת קובעת את משמעות התוכן שבקובץ: טקסט ו- word (.txt.doc) תמונות (.gif.jpg.bmp) סרטים (.avi.mpg) מוזיקה (.wav.mp3) (.exe) תוכניות תוכנית היא בעצם אוסף פקודות בשפת מכונה 15
אירגון קבצים ( C: קבצים מאוכסנים על דיסקים לכל דיסק יש שם המורכב מאות ונקודותיים (לדוגמה בתוך הדיסקים, הקבצים מאורגנים בתוך מחיצות. מחיצה נקראת לפעמים "תיקייה", או "מגירה"; בלועזית.folder או directory כל מחיצה יכולה להכיל מספר כלשהו של קבצים וגם מחיצות אחרות. דיסק מחיצות מחיצות קבצים 16
אירגון קבצים C: בראש העץ נמצאת "המחיצה הראשית", או "מחיצת השורש" של הדיסק. home my pictures song.mp3 מקובל להציג קבצים ומחיצות בשרטוט של עץ. ex2.c ex1.c progs my_dog.jpg my_cat.gif main.c ex1.c הארגון זה נקרא גם ארגון הירארכי. 17
מסלולים (path) C: לכל קובץ בספריה חייב להיות שם ייחודי, אך מותר שיהיו קבצים עם שמות זהים במחיצות שונות. home my pictures song.mp3 לכן בשביל להתייחס לקובץ מסוים, לא מספיק לציין את שם הקובץ. ex2.c ex1.c main.c progs ex1.c כדי להתגבר על הבעיה, נציין את המסלול מהשורש עד לקובץ עצמו. המסלול לקובץ ex1.c הימני הוא: my_dog.jpg my_cat.gif C:\home\progs\ex1.c מפרידים בין צעדים במסלול בעזרת התו "\". מהו המסלול לקובץ ex1.c האחר? 18
שפת C ועבודה עם Code::Blocks 19
מהדר (Compiler) 01011001 RUN! צריך לתרגם בין שפות שפה עילית (שפת C) מהדר ("המתרגם") שפת מכונה תוכנית תרגום נקראת מהדר (קומפיילר). תהליך תרגום זה נקרא הידור (קומפילציה). 20
כתיבת תוכנית בשפת C שפה שאנחנו מבינים כותבים תוכנית בשפת C ושומרים אותה בקובץ "c." מבצעים קומפילציה ומקבלים קובץ ".exe" המכיל פקודות מכונה שפה שהמחשב מבין מריצים קובץ ".exe" את כל התהליך הזה נבצע בעזרת.Code::Blocks 21
מה זה?Code::Blocks סביבת פיתוח חופשית וחינמית מלאה הכוללת: עורך לעריכת תוכניות (editor) מהדר (compiler) כלים למציאת שגיאות (debugger) התוכנה תומכת בהרבה שפות תיכנות וביניהן, שפת C. כמו בכל תעשייה, יש תקנים שונים ל- C, אנו נעבוד עם תקן.ANSI-C ישנן גירסאות ל- Windows,,Mac OS X ו- linux. 22
התקנת Code::Blocks בשביל לעבוד עם,Code::Blocks תצטרכו להתקין אותה עם תוספת (אשף- Wizard ) מיוחדת של הקורס. ישנו מדריך התקנה באתר הקורס תחת.Course Material תוכלו לקבל עזרה גם בסדנאות. עוד עזרה תוכלו לקבל בשעות קבלה של המתרגלים. 23
עבודה עם Code::Blocks 24
כתיבת תוכנית חדשה.Project בתפריט,File ובחירה של New ואחר כך 25
כתיבת תוכנית ראשונה בוחרים את האפשרות של תרגיל בית ולאחר מספר צעדים, מקבלים פרוייקט חדש לכתיבת התוכנית. בתוך העורך של,Code::Blocks הטקסט מופיע בצבעים שונים. לכל צבע יש משמעות נלמד על הפרטים בהמשך. בהמשך הקורס נכיר לעומק את כל הרכיבים של התוכנית הפשוטה הזו. 26
מריצים את התוכנית לוחצים על מקש F9 או כפתור (להדר ולהריץ) לפעמים העבודה מסתבכת ותצטרכו ללחוץ על Ctrl+F11 כדי להבטיח עבודה נקייה. Code::Blocks תהדר את התוכנית. אם אין בה שגיאות שמנעו מההידור להצליח, היא תיצור קובץ.exe ותריץ אותו. נראה את פלט התוכנית בחלון שייפתח: 27
שגיאות קומפילציה בדומה לעברית, גם בשפת C אפשר לעשות שגיאות. אם יש שגיאה בתוכנית, ההידור ייכשל, התוכנית לא תרוץ ואתם תקבלו את הודעה הבאה: תאור השגיאה הידור נכשל מספר כולל של השגיאות מספר שורה לחיצת על השגיאה תביא אתכם למקום השגיאה. חשוב: יש לתקן את השגיאות לפי הסדר (מלמעלה למטה). 28
פתיחה של תוכנה קיימת ניתן לשמור תוכנית שכתבתם File) (File Save ולהמשיך בזמן ומקום אחר. כדי לפתוח מחדש יש ללחוץ על הקובץ הפרוייקט (עם סיומת (.cbp ולא בקובץ c. אחרת הסביבה לא מוגדרת לפי דרישות הקורס ברוב המקרים עלול לגרום להורדת נקודות בתרגילי בית ניתן גם לפתוח מתוך (File Open) Code::Blocks כאשר צריכים לבחור את הקובץ עם סיומת.cbp אם ב- Windows לא רואים את סיומות הקבצים, ניתן לשנות זאת. באתר הקורס מוסבר תחת כפתור.FAQ 29
הרצה של תוכנית: עבודה בתרגילי הבית 30
Windows Explorer 31
פעולות ב- Explorer לחיצה על מקש ימני תפתח תפריט, ליצור תיקיות חדשות או קבצים לשנות שמות קבצים וספריות למחוק... דרכו אפשר: 32
הרצה של תוכנית ראינו שניתן להריץ תוכנית מתוך.Code::Blocks ניתן גם להריץ קובץ.exe ישירות מתוך Windows ע"י.double click חסרון: חלון הפלט נסגר לפני שאנחנו רואים את התוצאה. דרך נוספת שנשתמש בה: הרצה מתוך חלון הפקודות של.(Command Prompt) Windows חלון הפקודות הוא זכר למערכת הפעלה קודמת של,Microsoft שנקראה.(Disk Operating System) DOS לכן, הפקודות שנקליד נקראות לעיתים "פקודות."DOS במערכות הפעלה אחרות, חלון זה נקרא.Terminal 33
פתיחת חלון פקודות כדי להגיע לחלון הפקודות, לחצו על,Start בחרו באפשרות,Run הקישו: cmd ואח"כ לחצו על מקש.Enter 34
עבודה בחלון הפקודות בחלון הפקודות ניתן להקליד פקודות שתבוצענה מייד על-ידי המחשב. אם החלון קטן מדי, הכתב לא קריא, DOS שונות, וכו': אפשר לעבור לעבודה במסך מלא על-ידי לחיצה על.Alt+Enter לחיצה נוספת על המקורי. Alt+Enter תחזיר את החלון למצבו 35
התיקייה הנוכחית כשמוצג בפניכם חלון הפקודות, המערכת ממתינה לפקודה. לפני כל פקודה, המערכת מספרת לנו באיזו תיקייה היא "נמצאת" כרגע. זהו המסלול מתיקיית השורש ועד לתיקייה הנוכחית. 36
מעבר בין תיקיות ניתן לעבור לתיקייה אחרת ("להחליף את התיקייה הנוכחית") בעזרת פקודת.cd name יש להחליף את "name" בשם הספרייה..Change Directory קיצור של = cd 37
שגיאות מה יקרה אם נקליד name" "cd לא קיימת? עבור שם של תיקייה קיבלנו הודעת שגיאה. לא קרה שום אסון; אפשר להמשיך ולהקליד פקודות אחרות. 38
מעבר לתיקיית האב שם התיקייה ".." (שתי נקודות) הוא שם מיוחד, שמייצג את התיקייה המכילה את התיקייה הנוכחית. כלומר, התיקייה שהתיקייה הנוכחית היא תת-תיקייה שלה; האב" של התיקייה הנוכחית. ניתן להשתמש בשם זה בפקודת למשל:.cd "תיקיית אם נמשיך ונפקוד,"cd.." נגיע בסופו של דבר לתיקיית השורש. מה יקרה אם נמשיך ונפקוד זאת גם לאחר תיקיית השורש? 39
אותיות גדולות או קטנות? ניתן להקליד cd,cd,cd,cd או כל שילוב אחר. למערכת ההפעלה- Windows זה לא מפריע, וכל צירוף יתקבל. בהמשך נראה שבמקרים מסוימים, גודל האות חשוב מאוד! למשל, בשפת C, אותה מילה בגודל אות שונה מייצגת משהו אחר לחלוטין. 40
הרצה של תוכנית כדי להריץ כל קובץ.exe מתיקיה הנוכחית יש להקיש את השם שלו וללחוץ.Enter לפי ברירת מחדל, Code::Blocks שומרת קבצי exe בתוך המסלול שבחרתם לתוכנית שלכם בזמן יצירתה. 41 מותר גם להקיש את שם הקובץ בלי סיומת ".exe" מקש TAB ינסה להשלים עבורכם שמות קבצים וספריות.
קלט/פלט אמצעי קלט תוכנית אמצעי פלט הכנסת מידע הצגת תוצאות כל תוכנית יכולה לקבל נתונים מהמשתמש כקלט כל תוכנית יכולה להציג נתונים למשתמש כפלט המקלדת והמסך הם ברירת המחדל לקלט ופלט 42
קלט/פלט Redirection אפשר לדמות את הקלט/פלט ע"י שימוש בקבצים. כל הרצה, אפשר להדפיס את הפלט לתוך קובץ טקסט, במקום למסך. רושמים בחלון הפקודות את השורה הבאה: שם תוכנית > Executable קובץ פלט Output file hw0q1.exe > my_output.txt לדוגמה: איך עושים? 43
למה זה טוב? השימוש העיקרי (בקורס זה) של קריאת קלט מקבצים ושליחת פלט אל קבצים יהיה בשיעורי הבית. אתם תקבלו קבצים המכילים קלט שאיתו יש להריץ את תוכניתכם. תוכלו לבדוק שהפלט שנוצר מתאים לדוגמת הפלט שתקבלו. ככה, גם חוסכים הקלדת הקלט שוב ושוב! (בעיקר אם הוא ארוך) 44
השוואת קבצי פלט DiffMerge הינה תוכנה שמאפשרת לגלות הבדלים בין קבצי טקסט דומים. חובה! לבדוק את תקינות הפלט שנתנו לכם עם מה שאתם יוצרי לפני הגשת התרגילים. Code::Blocks באתר הקורס. ניתן להוריד אותו בתוך תחת Course Material 45
DiffMerge בחירה של קובץ 1 46
DiffMerge בחירה של קובץ 2 47
DiffMerge בחירה של קובץ 2 יש הבדלים! 48
יצירת קובץ ZIP להגשה את העבודה תצטרכו להגיש בקובץ ZIP שיכיל בתוכו כל קבצי העבודה הנדרשים. אם אין לכם תוכנה שמבצעת זאת, תוכלו להוריד תוכנת 7zip הנמצאת באתר הקורס. איך עושים? מעתיקים כל הקבצים להגשה בתוך תיקייה יוצרים את הקובץ ZIP 49
יצירת קובץ ZIP להגשה 50
סיכום: איך פותרים עבודות בית? חושבים איך פותרים על הנייר! פותחים.Code::Blocks פותחים פרוייקט חדש. כותבים את התוכנית ומפעילים את המהדר Ctrl+F11) או F9). פותחים חלון.D.O.S. משנים את המחיצה הנוכחית עם.CD כותבים קובץ קלט עבור ההרצה עם.notepad מריצים את התוכנית עם redirection מוודאים שקובץ הפלט תקין (בעזרת.(DiffMerge חוזרים לשלב 7 ובודקים עם קלט שונה (חשוב לבדוק כל מיני אפשרויות) ממלאים קובץ students.txt עם הפרטים האישיים. מייצרים קובץ.zip עם הקבצים שהתבקשתם ומגישים באתר..1.2.3.4.5.6.7.8.9.10.11.12 51