C/C++ מדריכי
C הקדמה לתכנות ב
C++ הקדמה להיררכית מחלקות ב הצגה מזורזת :C++ הבנת דף הבית

תוכנית עצרת פשוטה

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

/* Program to find factorial of 6 */ 
#include <stdio.h> 
 
#define VALUE 6 
 
int i,j; 
void main()  
{    
    j=1;    
    for (i=1; i<=VALUE; i++)      
        j=j*i;    
    printf("The factorial of %d is %d\n",VALUE,j);  
}

כאשר תכנס לתוכנית זו, העמד את include# ו define# כך שסימן הפאונד הוא בעמודה 1. חוץ מזה, סידור הרווחים וההרחקה מהשוליים יכולים להיות בכל דרך שתחפוץ. ברוב מערכות UNIX, תמצא תוכנית שנקראת cb, מייפה C, שתעצב קוד עבורך.

כדי להדר את הקוד, הקש cc samp.c. כדי להריץ אותו, הקש a.out. אם הוא לא מתקמפל או לא רץ בצורה נכונה, ערוך אותו שוב ובדוק איפה טעית.

כעת בואו נסתכל על קוד הפסקל המקביל:

{ Program to find factorial of 6 } 
program samp; 
const    
    value=6;  
var     
    i,j:integer;  
begin    
    j:=1;    
    for i:=1 to value do      
        j:=j*i;    
    writeln('The factorial of ',value,' is ',j);  
end. 

ניתן לראות כאן התאמה של כמעט אחד לאחד. ההבדל האמיתי היחיד הוא שקוד C מתחיל ב include# . שורה זו מכלילה את הספרייה standard I/O בתוכנית שלך כך שתוכל לקרוא ולכתוב ערכים, לטפל בקבצי טקסט, וכן הלאה. ל C יש מספר רב של ספריות סטנדרטיות כמו stdio, בכלל זה ספריות מחרוזות, זמן וחשבון. שורת ה define# יוצרת קבוע. שני משתנים גלובליים מוצהרים בשורה ;int i, j. סוגים נפוצים אחרים של משתנים הם float (למספרים ממשיים) ו char (לתווים), שעל שניהם אפשר להצהיר באותה דרך כמו int. השורה ()main מצהירה על הפונקציה הראשית. לכל תוכנית C חייבת להיות פונקציה בשם main במקום כלשהו בקוד. ב C, { ו } מחליפים את begin ו end של פסקל. כמו כן, = מחליף את אופרטור ההשמה =: של פסקל. לולאת ה for והפקודה printf הן מוזרות במקצת, אך הן מבצעות את אותו תפקיד כמו עמיתיהן בפסקל. יש לציין ש C משתמשת בגרשיים כפולים במקום גרשיים בודדים למחרוזות. פקודת ה printf ב C היא קלה יותר לשימוש ברגע שמתרגלים אליה מאשר גרסת פסקל. החלק שבגרשיים נקרא מחרוזת הפורמט והוא מתאר איך הנתונים מאורגנים כאשר הם מודפסים. מחרוזת הפורמט מכילה ליטרלים של מחרוזות כגון The Factorial of ו n\ להחזרת ראש המדפסת להתחלת השורה, ואופרטורים כמו מחזיקי מקום למשתנים. שני האופרטורים במחרוזת הפורמט מציינים שמספרים שלמים שיימצאו מאוחר יותר ברשימת הפרמטרים יוכנסו למחרוזת בנקודות אלו. אופרטורים אחרים קיימים לערכי נקודה צפה, לתווים ולמחרוזות. ניתן להקיש man printf כדי לקבל את דף ההדרכה על אפשרויות העיצוב.

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

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

printf("Enter the value:");  
scanf("%d",&value); 

הקוד המקביל בפסקל הוא:

write('Enter a value:');  
readln(value);

בצע את השינויים, לאחר מכן הדר והרץ את התוכנית כדי לוודא שהיא פועלת. שים לב ש scanf משתמשת באותו סוג מחרוזת פורמט כמו printf (הקש man scanf למידע נוסף). כמו כן שים לב לסימן ה & לפני value. זהו אופרטור הכתובת ב C: הוא מחזיר את הכתובת של המשתנה, ולא תהיה לו כל משמעות עד שנדבר על מצביעים. עליך להשתמש באופרטור & ב scanf בכל משתנה מסוג char, int, או float, וכמו כן בסוגי רשומות, אליהם נגיע מאוחר יותר. אם תשמיט את האופרטור &, תקבל שגיאת סגמנטציה כאשר תריץ את התוכנית.

שגיאות ב C מהן יש להימנע:

1. לשכוח להשתמש ב & ב scanf.

2. יותר מדי או מעט מדי פרמטרים לאחר הצהרת הפורמט ב printf או scanf.

3. לשכוח את ה /* בסוף הערה.




לדף הראשון

<< לדף הקודם

לדף הבא >>