המדריך השלם
 

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

היסטוריה
שפת c פותחה בראשית שנות ה-70 על ידי חברת bell , השפה במקורה נועדה למערכת ההפעלה unix אך במהרה היא התפשטה ופותחו מספר רב של גרסאות. בשנת 1983 הקים ansi , מכון התקנים האמריקאי ועדה לקביעת תקן מוסכם לשפה כדי למנוע את ההבדלים השונים בין הגרסאות ,תקן זה נקרא ansi c וכל המהדרים כיום בנויים על פי תקן זה.

מדוע c ?

  • C זו שפה יחסית קטנה וכך קלה לתכנות .
  • C דומה ל pascal אך בעלת כוח רב יותר.
  • Unix נכתב בשפת c .
  • C ניידת כלומר קוד שנכתב על מכונה אחת יכול לעבור ללא קושי אל אחרת .
  • C מאפשרת למתכנת גישה לתוך הקרביים של המחשב (רמת ה bit)
  • C זו שפה מודולארית וכך היא קלה להבנה וחסכונית (ניתן לקרוא לפונקציות מס פעמים עם ארגומנטים שונים).
  • C מהווה את הבסיס לשפת c++
  • תכנות פרוצדורלי כלומר התוכנית מחולקת למספר קטעי קוד קטנים הנקראים פונקציות, כל פונקציה מטפלת בבעיה מסוימת.
  • מכילה מגוון של פקודות לשליטה על זרימת התוכנית באופן עקרוני המחשב מבצע את הפקודות לפי סדר כתיבתן אולם ניתן לשלוט על זרימתה של התוכנית על ידי פקודות ולגרום לביצוע מותנה של חלקים בתוכנית או ביצוע קטעים מסוימים מספר רב של פעמים ובכך לחסוך את כתיבת הקוד מספר פעמים ואחסונו על ידי שימוש בלולאות.
  • C מכילה יחסית מספר קטן של פקודות ולכן המהדר של השפה קטן ופשוט ותוצאות ההידור יעילות.


    תוכנית ראשונה ב-C

    דוגמא 1:

    #include <stdio.h>

    void main()
    {
       printf ("This line will be printed");
    }
    העבר את העכבר מעל הדוגמא כדי לראות הסבר מפורט

    התבנית הכללית של פונקצית main:

      void main()
    {
       first command;
       second command;
       .....
       last command;
    }

    נסכם: כל תוכנית תתחיל על ידי הכללה (include) של ספריות נחוצות (על פי דרישת התוכנית) לאחריה נקרא לפונקציה הראשית (main) נפתח בסוגריים מסולסלות ובתוכם נכתוב את כל הפקודות ,לאחר מבן נסגור את הפונקציה על ידי סוגר מסולסל שמאלי.

    הערה:כל פקודה חייבת להסתיים בנקודה פסיק (;).

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

    הספרייה שבה השתמשנו בתוכנית הראשונה היא stdio. כל פעולת קלט/פלט של נתונים לתוכנית מבצעים בעזרת פונקציות ספרייה המטפלות בקלט/פלט ובשביל להשתמש בפונקציות אלו יש צורך בהכללת הספרייה stdio לתוכנית.

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

    תוספות עיקריות ל printf (פקודת הדפסה):
    n\ - מעבר לשורה חדשה (new line).
    t\ - הזחה במספר תווים(תלוי בברירת המחדל tab).
    r\- מעבר לשורה חדשה (בדיוק כמו הקשה על Enter).
    "\- גרשיים.
    '\- גרש.
    \\- לוכסן הפוך אחד (\).

    דוגמא 1.2

    #include <stdio.h>

    void main()
    {
       printf ("This line will be printed \n");
    }
    העבר את העכבר מעל הדוגמא כדי לראות הסבר מפורט

    ההבדל בין תוכנית זו לקודמת הוא התו \n שמופיע במחרוזת להדפסה . תו זה אינו מודפס למסך אלא מסמל לפונקציה printf לרדת שורה במסך ולהמשיך (אם יש תווים לאחר התו \n ) בהדפסה מתחילת השורה החדשה.

    דוגמא 2:

    #include <stdio.h>

    void main()
    {
       printf ("first sentence \n");
       printf ("second sentence \n");
       printf ("third sentence \n");
    }
    העבר את העכבר מעל הדוגמא כדי לראות הסבר מפורט

    כל משפט יתחיל בשורה חדשה עקב השימוש ב n\.

    דוגמא 3:

    #include <stdio.h>

    void main()
    {
       printf ("This line shows how C works \n\r");
       printf("we moved to a new line \n");
       printf("\t End program");
    }
    העבר את העכבר מעל הדוגמא כדי לראות הסבר מפורט

    הוספנו בתוכנית זו את השימוש בתו \t שמשמעו כפי שהזכרנו קפיצה ב tab.

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

    ישנם שני סוגי הערות :
    // - הערה בעבור שורה אחת.
    /* */ - מספר רב של שורות.

    דוגמא 4:

    #include <stdio.h>

    void main()
    {
       printf("This program "); //this text will not be shown
       printf("show who to write comments");//this text also will not be shown
    }
    העבר את העכבר מעל הדוגמא כדי לראות הסבר מפורט

    הדגמנו את השימוש בשני סוגי הערות ,הערה ראשונה(//) תחומה הוא שורה אחת בלבד אך ההערה השניה (/* */) תחומה מספר שורות עד ה /* .


    © איתן 2003. כל הזכויות שמורות למערכת המידע איתן.