פרסומת

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

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

אז איפה כדאי להתחיל? באמירת שלום!

1. שלום עולם!

החלק הראשון של כמעט כל קורס קידוד הוא ה שלום עולם תכנית. עיון בפירוט מדגיש כמה מהדרכים שבהן C שונה משפות אחרות. מלכתחילה, פתח את א עורך טקסט או IDE עורכי טקסט לעומת IDEs: איזה מהם עדיף למתכנתים?הבחירה בין IDE מתקדם לעורך טקסט פשוט יותר יכולה להיות קשה. אנו מציעים כמה תובנות שיעזרו לך לקבל החלטה זו. קרא עוד לבחירתך, והזן את הקוד הזה:

#לִכלוֹל /* זהו תסריט של Hello World ב-C */ int main (ריק) { printf("שלום, עולם! \n"); החזר 0; }

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

גורם לזה לרוץ

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

instagram viewer

הדרך שבה אתה מקמפל ומפעיל את הקובץ שלך משתנה ממערכת למערכת:

  • משתמשי Windows: הפוך את הקובץ לאפשרי הפעלה על ידי הקלדה cl hello.c ולחיצה על אנטר. פעולה זו תיצור hello.exe באותה תיקיה, אותה תוכל להפעיל על ידי הקלדה שלום.
  • משתמשי לינוקס ו-macOS: סוּג gcc -o שלום hello.c והקש אנטר כדי להפוך אותו לניתן להפעלה, והפעל אותו על ידי הקלדה ./שלום.

לא משנה באיזו שיטה אתה משתמש, הפעלת הסקריפט שלך אמורה להראות לך את זה:

פלט המציג את התוצאות של Hello World! סקיצה ב-C

אם זה לא עבד ב-Windows, ודא שאתה מפעיל את שורת הפקודה במצב מנהל. עבור macOS, ייתכן שתצטרך להתקין את Xcode מחנות האפליקציות ו בצע את השלבים הבאים מ-StackOverflow.

כעת, בואו נסתכל על התוכנית שורה אחר שורה כדי לראות איך היא עובדת, ונשפר אותה!

מתחת למכסה המנוע: הבנת שפת ג'

מעבדי קדם

הסקריפט שיצרת זה עתה מתחיל בהכללה של ספרייה.

#לִכלוֹל 

השורה הראשונה בתסריט נקראת a מעבד קדם. זה מתבצע לפני הידור של שאר התסריט. במקרה זה, הוא אומר לסקריפט להשתמש ב- stdio.h סִפְרִיָה. יש מספר עצום של מעבדי קדם זמינים למשימות שונות.

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

/* זהו תסריט של Hello World ב-C */

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

הפונקציה העיקרית

int main (ריק)

לכל תוכנית C חייבת להיות א רָאשִׁי פוּנקצִיָה. Main היא פונקציה שמחזירה מספר שלם, המסומן ב int. הסוגריים אחרי main מיועדים לטיעונים שלו, אם כי במקרה זה, זה לא דורש אף אחד, וזו הסיבה שאתה משתמש ב- בָּטֵל מילת מפתח.

אתה כותב את הקוד שיבוצע בין שני פלטה מתולתלת.

{ printf("שלום, עולם! \n"); החזר 0; }

בתוך הפונקציה, אתה קורא ל- printf() פוּנקצִיָה. בדיוק כמו רָאשִׁי(), printf היא פונקציה. ההבדל הוא, printf היא פונקציה ב- stdio הספרייה שכללתם בהתחלה.

Printf מדפיס כל דבר בסוגריים, בין המרכאות, לקונסולה. ה \n הוא רצף בריחה שנקרא newline, אומר למהדר לדלג לשורה הבאה בקונסולה לפני שימשיך.

שימו לב שהשורות האלה מסתיימות ב נקודה-פסיק, שהמהדר משתמש בו כדי לפצל משימה אחת לאחרת. שימו לב היטב לנקודות פסיק האלה - החמצה שלהם היא הסיבה מספר אחת לכך שדברים לא הולכים כשורה!

לבסוף, הפונקציה חוזרת עם המספר 0, ומסיימת את התוכנית. ה רָאשִׁי() הפונקציה חייבת תמיד להחזיר מספר שלם, ו החזר = 0; מאותת למחשב שהתהליך הצליח.

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

2. יצירת פונקציות C משלך

אתה יכול ליצור פונקציות מותאמות אישית משלך ב-C. במקום להדפיס את Hello World בפונקציה הראשית, צור פונקציה חדשה שתעשה זאת עבורך.

void print_for_me() { printf("שלום, עולם! \n"); }

בואו נפרק את זה.

בָּטֵל היא מילת מפתח כלומר הפונקציה הבאה לא תחזיר כלום.

print_for_me() הוא שם הפונקציה, והסוגריים הריקים מראים שהיא לא דורשת ארגומנטים כדי לעבוד. ארגומנט הוא כל פיסת מידע שיש להעביר לפונקציה כדי לגרום לה לעבוד - מאוחר יותר תוסיף ארגומנט משלך כדי לשנות את הפלט! הערה: זה לא זהה לפונקציה main() שמעליה השתמשה ב-void. הפונקציה הזו לא יכולה לקחת ארגומנטים, בעוד שהפונקציה הזו יכולה (אבל במקרה זה, לא חייבת).

בלוק הקוד אמור להיות מוכר לך - זה רק הצהרת ההדפסה מהפונקציה הראשית המקורית.

כעת, אתה יכול לקרוא לפונקציה זו מהפונקציה הראשית שלך.

int main (ריק) { print_for_me(); print_for_me(); החזר 0; }

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

כרגע זה אולי לא נראה כל כך חשוב, אבל אם הפונקציה print_for_me שלך ​​הכילה הרבה שורות קוד, היכולת לקרוא לזה כל כך בקלות היא חיסכון נהדר בזמן!

שלום עולם מפלט פעמיים באמצעות קריאות פונקציות מרובות

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

3. שימוש באבות טיפוס של פונקציות ב-C

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

תמונה מורכבת המציגה קוד ללא אב טיפוס ואת האזהרה שהמהדר c נותן

הודעת האזהרה אומרת לך שהמהדר רץ לתוך הפונקציה print_for_me לפני שהוכרזה, כך שהוא לא יכול להיות בטוח שהוא יעבוד כהלכה כשהתוכנית פועלת.

הקוד עדיין יעבוד, אך ניתן להימנע לחלוטין מהאזהרה על ידי שימוש באב טיפוס.

#לִכלוֹל void print_for_me(); int main (ריק) { print_for_me(); print_for_me(); החזר 0; } void print_for_me() { printf("שלום, עולם! \n"); }

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

זה אומר שכאשר אתה קורא לזה בפונקציה הראשית, המהדר יודע אם קוראים לזה נכון ויכול לזרוק אזהרה או שגיאה אם ​​יש צורך בכך. זה אולי משהו שנראה מוזר עכשיו, אבל הידיעה עליהם עכשיו תעזור בעתיד.

שלום עולם מפלט פעמיים באמצעות קריאות פונקציות מרובות

תוכנית זו עדיין עובדת ללא אב טיפוס, אבל הם נוהגים טובים לשימוש. הפלט עדיין נראה זהה לעת עתה, בואו לשנות אותו כדי להפוך אותו לאישי יותר!

4. העברת טיעונים לפונקציות C

שינוי הסקריפט

עבור שלב אחרון זה, תבקשו את שם המשתמש ותקליטו את הקלט שלו. לאחר מכן תשתמש בו בפונקציה שיצרת קודם לכן. ב-C, מילים אינן ידועות כמחרוזות כמו בשפות תכנות אחרות.

במקום זאת, הם מערך של דמויות בודדות. הסמל של מערך הוא [] ומילת המפתח היא לְהַשְׁחִיר. התחל על ידי עדכון פונקציית אב הטיפוס שלך בתחילת הסקריפט שלך:

#לִכלוֹל  void print_for_me (שם char[]); 

כעת, המהדר יידע שהפונקציה בהמשך הסקריפט לוקחת מערך של תווים שנקראים שֵׁם. עד כה, הדמות הזו לא קיימת. עדכן את הפונקציה הראשית שלך כדי ליצור אותה, והשתמש בה כדי לאחסן את קלט המשתמש:

int main (ריק) { char name[20]; printf("הזן שם: "); scanf("%s", שם); print_for_me (שם); print_for_me("כולם!"); החזר 0; }

השורה הראשונה ב-main יוצרת מערך תווים עם 20 רווחים אפשריים הנקראים שם. לאחר מכן, המשתמש מתבקש להזין את שמו באמצעות printf. השורה הבאה משתמשת בפונקציה חדשה שנקראת scanf שלוקח את המילה הבאה שהמשתמש מקליד.

ה "%s" אומר לפונקציה שעליה לאחסן את הנתונים כמחרוזת, ולקרוא לה שֵׁם.

שינוי הפונקציה

עכשיו כשאתה מתקשר ל-print_for_me, אתה יכול לכלול שֵׁם בסוגריים. בשורה הבאה תראה שאתה יכול גם להעביר תווים אחרים כל עוד הם נמצאים בין מרכאות. בשתי הפעמים, מה שנמצא בסוגריים מועבר לפונקציה print_for_me.

שנה זאת כעת כדי להשתמש במידע החדש שאתה נותן לו:

void print_for_me (שם char[]) { printf("שלום, "); מעמיד (שם); }

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

כל דבר שיוכנס בסוגריים יודפס לקונסולה, ושורה חדשה (ה \n שהשתמשת קודם) מתווסף אוטומטית.

שמור והידור את הקוד שלך באותו אופן שעשית קודם לכן - שים לב שאתה יכול לתת לתוכנית שם משהו אחר אם אינך רוצה לדרוס את התוכנית הקודמת שלך. קראתי את השם שלי שלום 2:

התוכנית המוגמרת ב-C

כפי שאתה אמור לראות, התוכנית לוקחת את הקלט ומשתמשת בו בפונקציה, לפני שליחת הברכה המוגדרת מראש של "כולם!" שוב נותן שני יציאות נפרדות לאותה פונקציה.

ה-ABCs של תכנות C

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

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

דבר אחד בטוח: שפות כמו Python הם הרבה יותר ידידותיים למתחילים. עבור שפה ישנה, ​​C עדיין משמש בכל מקום, אבל Python עשויה להיות שפת העתיד 6 סיבות מדוע Python היא שפת התכנות של העתידרוצה ללמוד או להרחיב את כישורי התכנות שלך? הנה הסיבה ש-Python היא שפת התכנות הטובה ביותר ללמוד השנה. קרא עוד !

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