|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר בקהילה
|
[מדריך] בניית מחשבון ב C.
שלום לכולם,
ראיתי שאין מספיק מדריכים באתר לשפת C אז החלטתי לעזור ולהוסיף מדריכים. במדריך הזה הסביר בצורה הטובה ביותר (לפחות אנסה), כיצד לבנות מחשבון ב C. טוב נתחיל את המדריך, אשתדל לפרט כמה שיותר על-מנת שיהיה מובן. מה יהיה במחשבון שלנו אחרי שנסיים את המדריך? לאחר שנסיים לכתוב את התוכנית נוכל לחבר / לחסר / לכפול / לחלק 2 מספרים שלמים בלבד. אוקי נתחיל. שלב ראשון: התחלת התוכנית. קודם כל, אנו נשתמש בספריות הבאות: קוד:
#include<stdio.h> #include<conio.h> קוד:
void main(void) { int a,b; char g; המשתנים A ו B הם המספרים אותם נחשב, במדריך זה המספרים יהיו שלמים בלבד לכן נציב אותם כאינטגרלים "INT". המשתנה G הוא בעצם הפונקציה אותה נבצע (כלומר, G יהיה שווה לסימן + או - או * או /) הצבנו את G בתוך "Char" מכיוון שהוא יהיה תו כלשהו. שלב 2: הכנסת כותרות. בשלב זה נכניס פשוט את הכותרות של התוכנית. שלב זה אינו חובה, אך על-מנת שיראה מובן למישהו שלא ניסה את התוכנית בעבר, עדיף לכלול שלב זה בתוכנית. נציב את שני הפקודות האלו (הכותרות): קוד:
printf("4 Function Integer Calcualtor\n"); printf("Enter the calculation\n"); הפעולה "Printf" היא פעולה שמציגה את התוכן בגרשיים, לא חשוב אילו סימנים יהיו שם היא תציג אותם. הפעולה של "/n" היא להוריד את הפקודה הבאה שורה למטה. שלב 3: קבלת המשתנים. עלמנת לקבל את המשתנים בתוכנית שלנו (המספרים אותם נחשב), נשתמש בפקודה "scanf". הקוד הבא מאפשר לסרוק שני מספרים שלמים ואת הפעולה שיש לבצע. קוד:
scanf("%d %c %d",&a,&g,&b); getch(); כפי שהסברתי קודם, הפקודה "scanf" סורקת את התו / אות שהוכנסו. d% - מייצג מספר שלם. c% - מייצג תו (כל תו במקלדת). וכעת, מה שבא אחרי הפסיק, לפי הסדר, מייצג את המשתנים. קוד:
%d %c %d",&a,&g,&b X + X (ה + יכול להיות כל סימן מה4 שצוינו למעלה וכמובן, ה X כל מספר שלם שקיים. הפקודה: קוד:
getch(); עד עכשיו, הייתם אמורים לראות בעורך שלכם את הקוד הבא: קוד:
#include <stdio.h> #include <conio.h> void main(void) { int a,b; char g; printf("4 Function Integer Calcualtor\n"); printf("Enter the calculation\n"); scanf("%d %c %d",&a,&g,&b); getch(); כעת, נגדיר את הפעולות המתמטיות ע"י כמה משפטי תנאי. נתחיל מהפעולה, חיבור: קוד:
if(g=='+') { printf("%d + %d = %d",a,b,a+b); getch(); } מה שבעצם הגדרנו פה זה: במידה ו G (המשתנה שיכול להיות תו) יהיה שווה לסימן +, אז התוכנית תבצע פקודה של חיבור. ואז, במידה והוא יהיה + התוכנית תדפיס את התוכן שיש ב printf. כמו כן הפעולה המתמטית תתבצע בתוך ה printf: קוד:
%d + %d = %d",a,b,a+b קוד:
else if(g=='-') { printf("%d - %d = %d",a,b,a-b); getch(); } קוד:
else if(g=='*') { printf("%d * %d = %d",a,b,a*b); getch(); } else if(g=='/') { printf("%d / %d = %d",a,b,a/b); getch(); } } כעת מה שנשאר זה רק לבדוק אם יש שגיאות בתוכנית, הינכם יכולים להשתמש בקומפיילר (Compiler) על-מנת שיבדוק את השגיאות במידה ואין שגיאות התוכנית מוכנה לשימוש. זהו, כעת התוכנית מוכנה להפעלה. אם קיבלתם קוד זהה לקוד הזה: קוד:
#include <stdio.h> #include <conio.h> void main(void) { int a,b; char g; printf("4 Function Integer Calcualtor\n"); printf("Enter the calculation\n"); scanf("%d %c %d",&a,&g,&b); getch(); if(g=='+') { printf("%d + %d = %d",a,b,a+b); getch(); } else if(g=='-') { printf("%d - %d = %d",a,b,a-b); getch(); } else if(g=='*') { printf("%d * %d = %d",a,b,a*b); getch(); } else if(g=='/') { printf("%d / %d = %d",a,b,a/b); getch(); } } תהנו!. מקווה שעזרתי לכם, אם יש לכם שאלות לגבי המדריך או לגבי כל דבר ב C, אתם יכולים להשאיר את המסנג'ר שלכם ואני אחזור אליכם. |
![]() |
![]() |
# 2 |
הוסטסניון
|
מדריך מצויין! תודה רבה לך.
|
![]() |
![]() |
# 3 |
חבר על
|
אותי למדו שלא צריך להוסיף getch אחרי כל קלט או פלט, אלא רק בסוף התוכנית...
ותרחיב את המדריך, יש עוד מלא פונקציות מתמטיות שאפשר לבצע עם הספריה math.h אהה ובנוגע למה שאמרת על זה שאין מספיק מדריכים לC אני מניח שהסיבה היא שרוב הגולשים בפורום הזה לומדים במגמת מחשבים בבית הספר שלהם, ואם אני לא טועה בכל מגמות המחשבים לומדים C או פסקל (שזה אותו עיקרון) |
![]() |
![]() |
# 4 |
תודה על תרומתך!
|
לא עדיף לעשות switch?
|
![]() |
![]() |
# 5 |
חבר בקהילה
|
בשורה:
קוד:
scanf("%d %c %d",&a,&g,&b); |
![]() |
![]() |
# 6 | |
הנהלת הפורום לשעבר
|
ציטוט:
![]() וכמו שאמרו מעליי, לא צריך לשים getch לכל פלט ובמיוחד לא לכל קלט (שכן, scanf גם ככה מפסיק את התוכנית עד שאתה לוחץ enter).. |
|
![]() |
![]() |
# 7 |
חבר בקהילה
|
אני עדיין לא יודע switch ו case חחח...
גם אני רק התחלתי ללמוד C, אבל מכיוון שלא ראיתי שיש באתר מדריכים החלטתי לשתף במה שאני יודע... אני יוסיף עוד מדריכים בעתיד. |
![]() |
![]() |
# 8 | |
הנהלת הפורום לשעבר
|
ציטוט:
![]() |
|
![]() |
![]() |
# 9 |
חבר בקהילה
|
הסבר: אין צורך בGETCH בכלל. GETCH היא פונקציה שנועדה ל"קליטה מהירה" כך שהתכנית לא מחכה למשתמש שיקיש את המספר אלא היא רצה, מה שיכול לתרום ליצירת ממש של משחקים שלחיצה על מקש כלשהו גורמת לפעולה כלשהי.
תכנית המחשבון שלך היא נחמדה, אני יכול לתת לך אתגר, נסה להכין מחשבון שבקלט אחד של מחרוזת תגרום לפלט של התוצאה. בכללי ההסבר שלך יפה ומפורט, המשך כך!
__________________
מתכנת C, C++,PHP,SQL סטודנט למדעי המחשב. MSN: baraluf@hotmail.com Mail: baraluf [AT] gmail [DOT] com ביקורת: [1]
|
![]() |
![]() |
# 10 |
הוסטסניון
|
אחחח הרבה יותר קל לעשות מחשבון ב-C# חחח (:
תודה בכל מקרה. |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|