פרטים נוספים בסילבוס של הקורס מבוא לתכנות ב-C מרצה : עמי ברלר כתובת: ami@cs.bgu.ac.il בחינה 70% - עבודות 30% 5-6 עבודות במשך הקורס חובה: להגיש כל העבודות לפחות 56 בבחינה פרטים נוספים בסילבוס של הקורס חובה להסתכל על הודעות נא לא להעתיק !! Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
מבנה מערכת מחשב CPU Internal Memory Output Input Mouse Keyboard Microphone Detectors Monitor Speakers Motors Hard Disk CD / DVD Tape DiskOnKey External Memory Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
מבנה הזיכרון הפנימי ROM – Read Only Memory Random Access Memory-RAM נמחק עם כיבוי המחשב מחובר קרוב למעבד תוכן הניתן לשינוי מהיר מאחסן את תוכנית המחשב והמידע הנחוץ לעבודה הרגעית של המעבד מבצע קשר עם המעבד בקצב של מיליוני פעמים בשנייה. ROM – Read Only Memory לא נמחק עם כיבוי המחשב כולל תכניות ונתונים שהם הכרחיים להפעלת המחשב לא ניתן לשינוי אלא ע"י תוכניות מיוחדות Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
יחדה זיכרון - BYTE BYTE היא היחידה של מידע דיגיטלי היא כוללת 8 BITS binary digit)) עם ערכים 0 – 1 Byte יכול לייצג 256 ( 28 ) ערכים שונים : 0 – 255 ASCII (American Standard Code for Information Interchange) Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
אלגורתים הגדרה לא פורמלית - אלגוריתם הוא דרך שיטתית (כלומר כזו שצעדיה מוגדרים היטב) לביצועה של משימה מסוימת במספר סופי של צעדים. מקור המלה בשמו של המתמטיקאי הפרסי בן המאה התשיעית, אבו ג'עפר מוחמד אל חואריזמי. תהליך חישובי (סדרה של הוראות, מוגדר היטב )ההוראות מובנות וניתנות לביצוע(, שמקבל כקלט ערך או קבוצת ערכים, ונותן כפלט ערך או קבוצה של ערכים כ-"פונקציה" של הקלט. דוגמאות : להכין עוגה, לדבר בטלפון, להזמין פיצה וכו' Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
תהליך לפתרון בעית תכנות להבין את הגדרת הבעיה להכליל ולפרק את הגדרת הבעיה לפתח אלגורים לפתרון הבעיה לכתוב את הקוד המתאים לבדוק ולשנות בהתאם Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
אבני יסוד של תכנית ? ? יום חמישי 22 נובמבר 2018 Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
תהליך כתיבת תוכנית כאשר רוצים לכתוב תכנית בשפה עילית כלשהי שתבצע אלגוריתם עובדים לפי סדר העבודה הבא: הקלדת התכנית בeditor יצירת Source Code File קובץ מקור (סיומת C) קומפילציה – בדיקת קובץ המקור ויצירת Object Code File קישור תהליך שילוב הקובץ בשפת מכונה עם כל הקבצים הנוספים הדרושים לתכנית כגון ספריות וכיוב. יצירת קובץ הרצה עם סיום Exe/ הרצת התכנית Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
תהליך כתיבת תוכנית Editor Algorithm File.c Linker Object input שגיאות קומפילציה Compiler Object Linker Executable input output Run time errors Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
למה ללמוד C C זו שפה יחסית קטנה וכך קלה לתכנות. Unix נכתב בשפת C C מאפשרת למתכנת גישה לתוך הקרביים של המחשב (רמת ה bit). C זו שפה מודולארית וכך היא קלה להבנה וחסכונית C מהווה את הבסיס לשפת ++C Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
תכנית ראשונה ב- C /* HelloWorld – An example program */ #include <stdio.h> // Here place // for future // study void main(void) { printf(“Hello, world!\n”); } Comments are good Preprocessor directive Includes C standard library main() means “start here” Brackets define code blocks Note that all C statements end with a semicolon (;). Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
דוגמא מבנה תכנית main () { . } יום חמישי 22 נובמבר 2018 Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
void main() מגדיר פונקציה מיוחדת main. נותן הוראה לקומפיילר איפה מתחילה הרצת התכנית. כל תכנית בשפת C כוללת פנקציה main. Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
printf() היא פונקציה הקיימת בתוך השפה C הפונקציה מדפיסה את הטקסט שקיים בתוך הסוגריים בצורה מיוחדת שנראה בהמשך. Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
#include <stdio.h> הקובץ מכיל מידע לגבי הפונקציות printf , scanf ואחרות שנראה בהמשך הקורס. Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
מזהים (Identifiers) יום חמישי 22 נובמבר 2018 Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
חוקים להגדרת מזהים ב-C המזהה מורכב מרצף של אותיות, ספרות והתו '_' ( underscore ) i CSE_8a a_very_long_name_that_isnt_very_useful fahrenheit רצף זה אינו יכול להתחיל בספרה. 8a_CSE is not valid! 2. אורך המזהה אינו מוגבל. לפחות 31 התווים הראשונים נחשבים עבור הקומפיילר של שפת C. 3. בשפת C קיימות מילים שמורות ( keywords ) כגון : if , else , int . אין לתת למזהים שמות מקבוצה זו . 4. בשפת C קיימת הבחנה בין אותיות קטנות לגדולות ולכן המזהים : SIZE , Size , SiZe ... הינם שונים אחד מהשני . Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
שמות ע"י מזהים משתנים - Variables מילות שמורו - Reserved Words פונקציות - Functions קבועים - Constants מבנים - Structures סוגי משתנים - Type of variables Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
מילות שמורות auto do goto signed unsigned break double if sizeof void case else int static volatile char enum long struct while const extern register switch continue float return typedef default for short union Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
משתנים (Variables) יום חמישי 22 נובמבר 2018 Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
משתנים ב-C משתנה הוא מקום בזיכרון. גודל המקום תלוי בסוג המשתנה. לפני השימוש של משתנה צריך להצהיר עליו. ההצהרה על משתנה כוללת קודם את סוג המשתנה ואחרי זה את שם המשתנה לפי חוקי המזהים ב-C. ניתן להצהיר על כמה משתנים באותו סוג ביחד כאשר מפרידים בינהם ע"י פסיק ( , ). Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
דוגמאות של הצהרה על משתנים int i; char c; float f1, f2; unsigned int ui ; double t1,t2,t3; Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
סוגי משתנים ב-C char – a single byte character ‘A’. short int (or just short) – an integer number, usually 2 bytes (rarely used) 15 . int - an integer number – usually 4 bytes 12345. long int (or just long) – an integer number, 4 or 8 bytes (rarely used) 123456. float – a single precision real number – usually 4 bytes 0.0012. double – a double precision real number – usually 8 bytes 0.00000012. long double - a double precision real number – usually 8 bytes (rarely used) 0.00000000012. Signed vs. unsigned Department of Computer Science-BGU יום חמישי 22 נובמבר 2018
תחום סוגי משתנים טיפוס מספר בתים תחום המספרים unsigned char 1 0 – 255 short 2 +32767 -32768 unsign short 65535+ 0 long, int 4 +2147483647 -2147483648 unsigned long,unsigned int 4294967295+ 0 float (7 ספרות דיוק) 3.4e+38 3.4e-38 double (15 ספרות דיוק) 8 1.7e+308 -1.7e+308 long double (19 ספרות דיוק) 10 8 3.4e+4932 - 3.4e4932 Department of Computer Science-BGU יום חמישי 22 נובמבר 2018