![]() |
[מדריך] בניית מחשבון ב C.
שלום לכולם,
ראיתי שאין מספיק מדריכים באתר לשפת C אז החלטתי לעזור ולהוסיף מדריכים. במדריך הזה הסביר בצורה הטובה ביותר (לפחות אנסה), כיצד לבנות מחשבון ב C. טוב נתחיל את המדריך, אשתדל לפרט כמה שיותר על-מנת שיהיה מובן. מה יהיה במחשבון שלנו אחרי שנסיים את המדריך? לאחר שנסיים לכתוב את התוכנית נוכל לחבר / לחסר / לכפול / לחלק 2 מספרים שלמים בלבד. אוקי נתחיל. שלב ראשון: התחלת התוכנית. קודם כל, אנו נשתמש בספריות הבאות: קוד:
#include<stdio.h> קוד:
void main(void) המשתנים A ו B הם המספרים אותם נחשב, במדריך זה המספרים יהיו שלמים בלבד לכן נציב אותם כאינטגרלים "INT". המשתנה G הוא בעצם הפונקציה אותה נבצע (כלומר, G יהיה שווה לסימן + או - או * או /) הצבנו את G בתוך "Char" מכיוון שהוא יהיה תו כלשהו. שלב 2: הכנסת כותרות. בשלב זה נכניס פשוט את הכותרות של התוכנית. שלב זה אינו חובה, אך על-מנת שיראה מובן למישהו שלא ניסה את התוכנית בעבר, עדיף לכלול שלב זה בתוכנית. נציב את שני הפקודות האלו (הכותרות): קוד:
printf("4 Function Integer Calcualtor\n"); הפעולה "Printf" היא פעולה שמציגה את התוכן בגרשיים, לא חשוב אילו סימנים יהיו שם היא תציג אותם. הפעולה של "/n" היא להוריד את הפקודה הבאה שורה למטה. שלב 3: קבלת המשתנים. עלמנת לקבל את המשתנים בתוכנית שלנו (המספרים אותם נחשב), נשתמש בפקודה "scanf". הקוד הבא מאפשר לסרוק שני מספרים שלמים ואת הפעולה שיש לבצע. קוד:
scanf("%d %c %d",&a,&g,&b); כפי שהסברתי קודם, הפקודה "scanf" סורקת את התו / אות שהוכנסו. d% - מייצג מספר שלם. c% - מייצג תו (כל תו במקלדת). וכעת, מה שבא אחרי הפסיק, לפי הסדר, מייצג את המשתנים. קוד:
%d %c %d",&a,&g,&b X + X (ה + יכול להיות כל סימן מה4 שצוינו למעלה וכמובן, ה X כל מספר שלם שקיים. הפקודה: קוד:
getch(); עד עכשיו, הייתם אמורים לראות בעורך שלכם את הקוד הבא: קוד:
#include <stdio.h> כעת, נגדיר את הפעולות המתמטיות ע"י כמה משפטי תנאי. נתחיל מהפעולה, חיבור: קוד:
if(g=='+') מה שבעצם הגדרנו פה זה: במידה ו G (המשתנה שיכול להיות תו) יהיה שווה לסימן +, אז התוכנית תבצע פקודה של חיבור. ואז, במידה והוא יהיה + התוכנית תדפיס את התוכן שיש ב printf. כמו כן הפעולה המתמטית תתבצע בתוך ה printf: קוד:
%d + %d = %d",a,b,a+b קוד:
else קוד:
else כעת מה שנשאר זה רק לבדוק אם יש שגיאות בתוכנית, הינכם יכולים להשתמש בקומפיילר (Compiler) על-מנת שיבדוק את השגיאות במידה ואין שגיאות התוכנית מוכנה לשימוש. זהו, כעת התוכנית מוכנה להפעלה. אם קיבלתם קוד זהה לקוד הזה: קוד:
#include <stdio.h> תהנו!. מקווה שעזרתי לכם, אם יש לכם שאלות לגבי המדריך או לגבי כל דבר ב C, אתם יכולים להשאיר את המסנג'ר שלכם ואני אחזור אליכם. |
מדריך מצויין! תודה רבה לך.
|
אותי למדו שלא צריך להוסיף getch אחרי כל קלט או פלט, אלא רק בסוף התוכנית...
ותרחיב את המדריך, יש עוד מלא פונקציות מתמטיות שאפשר לבצע עם הספריה math.h אהה ובנוגע למה שאמרת על זה שאין מספיק מדריכים לC אני מניח שהסיבה היא שרוב הגולשים בפורום הזה לומדים במגמת מחשבים בבית הספר שלהם, ואם אני לא טועה בכל מגמות המחשבים לומדים C או פסקל (שזה אותו עיקרון) |
לא עדיף לעשות switch?
|
בשורה:
קוד:
scanf("%d %c %d",&a,&g,&b); |
ציטוט:
וכמו שאמרו מעליי, לא צריך לשים getch לכל פלט ובמיוחד לא לכל קלט (שכן, scanf גם ככה מפסיק את התוכנית עד שאתה לוחץ enter).. |
אני עדיין לא יודע switch ו case חחח...
גם אני רק התחלתי ללמוד C, אבל מכיוון שלא ראיתי שיש באתר מדריכים החלטתי לשתף במה שאני יודע... אני יוסיף עוד מדריכים בעתיד. |
ציטוט:
|
הסבר: אין צורך בGETCH בכלל. GETCH היא פונקציה שנועדה ל"קליטה מהירה" כך שהתכנית לא מחכה למשתמש שיקיש את המספר אלא היא רצה, מה שיכול לתרום ליצירת ממש של משחקים שלחיצה על מקש כלשהו גורמת לפעולה כלשהי.
תכנית המחשבון שלך היא נחמדה, אני יכול לתת לך אתגר, נסה להכין מחשבון שבקלט אחד של מחרוזת תגרום לפלט של התוצאה. בכללי ההסבר שלך יפה ומפורט, המשך כך! |
אחחח הרבה יותר קל לעשות מחשבון ב-C# חחח (:
תודה בכל מקרה. |
ציטוט:
|
ציטוט:
באמת ב c# יותר קל (טוב נו זאת שפה מעפנה שלא עושים איתה הרבה) |
אני את הבגרות שלי בC כבר עשיתי :)
אין צורך בGETCH, יכול להיות שמה שכתבתי זה היה נוגע לgets אבל getch זה קיצור של הביטוי באנגלית get char, הגיוני ככה. אם תשתמש בSCANF התוצאה תהיה שהתוכנית תחכה שהמשתמש יקליד ערכים למשתנים השונים. אגב, אורי בC יש SWITCH. |
ציטוט:
אני בנ יתי מחשבון ב C# שמכניסים מספר ראשון סימן ואז מספר שני ולפי זה הוא הולך ל case המתאים ועושה תפעולה |
איך אפשר להוציא את זה כ תוכנית ? הפעלה ..?
|
אתה צריך קומפיילר, כאשר הקומפיילר המתאים ביותר לווינדוס הוא MSDN VIRTUAL Cpp
|
יפה, אבל למה לא לעשות לולאה שפשוט תחזיר את הSCANF ונוכל להדפיס עוד איזה פעולה חשבונית.
|
ציטוט:
|
כל הזמנים הם GMT +2. הזמן כעת הוא 00:23. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ