הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 06-11-06, 00:54   # 1
Reality
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נהר
הודעות: 253

Reality לא מחובר  

[מדריך] בניית מחשבון ב 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();
שלב 4: הגדרת הפעולות המתמטיות.

כעת, נגדיר את הפעולות המתמטיות ע"י כמה משפטי תנאי.

נתחיל מהפעולה, חיבור:
קוד:
 if(g=='+')
 {
 printf("%d + %d = %d",a,b,a+b);
 getch();
 }
הסבר:

מה שבעצם הגדרנו פה זה:
במידה ו G (המשתנה שיכול להיות תו) יהיה שווה לסימן +, אז התוכנית תבצע פקודה של חיבור.
ואז, במידה והוא יהיה + התוכנית תדפיס את התוכן שיש ב printf.
כמו כן הפעולה המתמטית תתבצע בתוך ה printf:
קוד:
%d + %d = %d",a,b,a+b
עלמנת להציב את שאר הפעולות נשתמש בפקודה ELSE שאומרת אם G לא שווה '+' הוא יהיה שווה '-'.
קוד:
 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();
 }
}
שלב 5: בדיקת שגיאות.

כעת מה שנשאר זה רק לבדוק אם יש שגיאות בתוכנית, הינכם יכולים להשתמש בקומפיילר (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, אתם יכולים להשאיר את המסנג'ר שלכם ואני אחזור אליכם.
  Reply With Quote
ישן 06-11-06, 06:37   # 2
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

מדריך מצויין! תודה רבה לך.
  Reply With Quote
ישן 06-11-06, 14:41   # 3
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

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

אהה ובנוגע למה שאמרת על זה שאין מספיק מדריכים לC
אני מניח שהסיבה היא שרוב הגולשים בפורום הזה לומדים במגמת מחשבים בבית הספר שלהם,
ואם אני לא טועה בכל מגמות המחשבים לומדים C או פסקל (שזה אותו עיקרון)
  Reply With Quote
ישן 06-11-06, 15:07   # 4
Level-Serv
תודה על תרומתך!
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אזור השרון
גיל: 35
הודעות: 1,441
שלח הודעה באמצעות ICO אל Level-Serv שלח הודעה באמצעות MSN אל Level-Serv

Level-Serv לא מחובר  

לא עדיף לעשות switch?
__________________
בברכה,
ניר
מנהל חברת Level-Serv
  Reply With Quote
ישן 06-11-06, 15:12   # 5
tnadav
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 216

tnadav לא מחובר  

בשורה:
קוד:
scanf("%d %c %d",&a,&g,&b);
אני חושב שהיה יותר ידידותי למשתמש לעשות 3 scanf כאשר לפני כל אחד כותבים מה רוצים לקבל למשתנה
  Reply With Quote
ישן 06-11-06, 16:01   # 6
meshuga
הנהלת הפורום לשעבר
 
meshuga's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 7,601

meshuga לא מחובר  

ציטוט:
נכתב במקור על ידי Level-Serv
לא עדיף לעשות switch?
אישית אני אוהב להשתמש בelse if.....לא יודע למה...ככה אני אוהב את זה ...

וכמו שאמרו מעליי, לא צריך לשים getch לכל פלט ובמיוחד לא לכל קלט (שכן, scanf גם ככה מפסיק את התוכנית עד שאתה לוחץ enter)..
  Reply With Quote
ישן 06-11-06, 16:34   # 7
Reality
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נהר
הודעות: 253

Reality לא מחובר  

אני עדיין לא יודע switch ו case חחח...
גם אני רק התחלתי ללמוד C, אבל מכיוון שלא ראיתי שיש באתר מדריכים החלטתי לשתף במה שאני יודע...
אני יוסיף עוד מדריכים בעתיד.
  Reply With Quote
ישן 06-11-06, 17:04   # 8
meshuga
הנהלת הפורום לשעבר
 
meshuga's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 7,601

meshuga לא מחובר  

ציטוט:
נכתב במקור על ידי Reality
אני עדיין לא יודע switch ו case חחח...
גם אני רק התחלתי ללמוד C, אבל מכיוון שלא ראיתי שיש באתר מדריכים החלטתי לשתף במה שאני יודע...
אני יוסיף עוד מדריכים בעתיד.
היה אחד לפני שלך
  Reply With Quote
ישן 10-11-06, 19:48   # 9
CoCa
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2006
מיקום: חולון
גיל: 35
הודעות: 241
שלח הודעה באמצעות ICO אל CoCa שלח הודעה באמצעות MSN אל CoCa

CoCa לא מחובר  

הסבר: אין צורך בGETCH בכלל. GETCH היא פונקציה שנועדה ל"קליטה מהירה" כך שהתכנית לא מחכה למשתמש שיקיש את המספר אלא היא רצה, מה שיכול לתרום ליצירת ממש של משחקים שלחיצה על מקש כלשהו גורמת לפעולה כלשהי.
תכנית המחשבון שלך היא נחמדה, אני יכול לתת לך אתגר, נסה להכין מחשבון שבקלט אחד של מחרוזת תגרום לפלט של התוצאה.
בכללי ההסבר שלך יפה ומפורט, המשך כך!
__________________
מתכנת C, C++,PHP,SQL
סטודנט למדעי המחשב.
Mail: baraluf [AT] gmail [DOT] com
ביקורת: [1]
  Reply With Quote
ישן 10-11-06, 19:56   # 10
FreakBox
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
גיל: 34
הודעות: 1,948
שלח הודעה באמצעות ICO אל FreakBox שלח הודעה באמצעות MSN אל FreakBox

FreakBox לא מחובר  

אחחח הרבה יותר קל לעשות מחשבון ב-C# חחח (:
תודה בכל מקרה.
__________________

  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 22:07.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ