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

שלום. שפת C - עזרה בתיקון קוד


BenSalem2

Recommended Posts

מה נשמע חברים אני דיי חדש פה אני מנסה לבנות תוכנית שתחשב לעובד את השכר שלו לפי שעות . שעות נוספות . ושעות סופ''ש ולקבל לבסוף תוצאה סופית של כולם אשמח לקבל עזרה בקוד הבא:

#include <stdio.h>

int main()
{
int hours;
int rate;
int extra;
int sat;
int total;
double salary;

int counter = 0;

do
{
printf( "Please Enter Rate,Base Hours,Extra Hours,Weekend Hours (-1 to end): " );
scanf( "%d%d%d%d", &rate,&hours,&extra,&sat);

if( hours <= 8 )
{
salary = rate * hours;
printf( "Salary is %f\n", salary );

}
else
{
salary = rate * 1.25 * hours
printf( "Salary is %f\n", salary );
}

counter++;
}while( hours != -1 );

{
if( hours <= 40 )
{
salary = rate * hours;
}
else
{
salary = 40 * rate + (hours - 40) * (rate * 1.5);
}

printf( "Salary is %d\n", salary );

}
return 0;
}

זה הקוד הישן את את הקטע של ה-40 לא להתייחס מחר אני אתקן :)

קישור לתוכן
שתף באתרים אחרים

מה שאתה כותב אמור להיות פרקטי? או פשוט לתרגל תכנות?

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

בכל מקרה יש למישהו פתרון?

קישור לתוכן
שתף באתרים אחרים

תסביר מה הבעיה בדיוק ונפתור לך אותה. זה קוד מאוד בסיסי.

(נתחיל מזה שהתוכנית לא תתמודד טוב עם מספרים לא שלמים....)

- - - נערך: - - -

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

אתה מציב למשתנה SALARY כל הזמן משהו חדש, הוא לא "צובר" את המשכורת.

ואז לא ברור אם החישוב שבועי, חודשי....

בקיצור, סלט.

קישור לתוכן
שתף באתרים אחרים

תסביר מה הבעיה בדיוק ונפתור לך אותה. זה קוד מאוד בסיסי.

(נתחיל מזה שהתוכנית לא תתמודד טוב עם מספרים לא שלמים....)

- - - נערך: - - -

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

אתה מציב למשתנה SALARY כל הזמן משהו חדש, הוא לא "צובר" את המשכורת.

ואז לא ברור אם החישוב שבועי, חודשי....

בקיצור, סלט.

חח כן אחי סלט

אז ככה אני מנסה ליצור חישוב כזה

המשתמש צריך להכניס את המשתנים : שכר בסיס לשעה נגיד הכנסתי 23.12 (בסיס) את השעות שהוא עבד בשכר הבסיס נגיד 100

את השעות הנוספות שהוא צבר נגיד 10:

ואת השעות סופ''ש : נגיד 10 גם כן את השעות נוספות אני רוצה שהתוכנית תכפיל ב-1.25 ואת שעות סופ''ש ב1.5 (125% . 150%)

לבסוף המשתמש יקבל את סיכום השעות כולל שעות נוספות ושעות שבת TOTAL

תודה על העזרה

בן,

קישור לתוכן
שתף באתרים אחרים

1. אתה מדבר על חישוב אחד ? למה יש לולאה ? זה נראה כאילו שאתה מצפה לקבל כמה שבועות ולסכם אותם.

2. המשתנים שלך הם שלמים - לא תוכל להכניס להם מספרים לא שלמים. תשנה את זה.

3. אם מדובר בחישוב אחד (תבטל את הלולאה) אז זה סיפור פשוט - תכניס את הכל למשתנים ותכתוב את הלוגיקה המתאימה.

4. אם מדובר בחישוב מצטבר - אז אתה צריך למשתנה SALARY להכניס מידע בצורה הזאת:

Salary +=

ולא רק עם = כדי שישמור על הערך הקודם שלו.

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

קישור לתוכן
שתף באתרים אחרים

למה להצמיד לשמאל? תשתמש בכפתור קוד.

שוב תודה על החזרה

אם אפשר לקבל את העזרה עם פירוט נוסף מכיוון שאני חדש אני מבין רק חלק ממה שאתה אומר

לדוגמא איך אני מכניס מספרים לא שלמים DOUBLE??

ואיזה לוגיקה תהיה מתאימה בחישוב אחד?

אם אפשר לקבל קוד לדוגמא או תיקון של הקוד שלי..

קישור לתוכן
שתף באתרים אחרים

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

while((c = getchar()) != '\n' && c != EOF)

קישור לתוכן
שתף באתרים אחרים

שוב תודה על החזרה

אם אפשר לקבל את העזרה עם פירוט נוסף מכיוון שאני חדש אני מבין רק חלק ממה שאתה אומר

לדוגמא איך אני מכניס מספרים לא שלמים DOUBLE??

ואיזה לוגיקה תהיה מתאימה בחישוב אחד?

אם אפשר לקבל קוד לדוגמא או תיקון של הקוד שלי..

???

קישור לתוכן
שתף באתרים אחרים

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

אוקי קראתי קצת על הסינטקס של השפה ניסיתי קוד חדש ונתקעתי פה

זה הקוד

#include <stdio.h>

int main()
{
int datacount = 0;
int clockNo = 0;
float hours = 0.0;
float gross = 0.0;
double wage = 23.12;
double ext = 28.9;
double sat = 34.6;
float extra;
float week;

printf("PayCheak Caulculatorn\n");
printf("How many hours did you worked? ");
scanf("%d",&hours);
printf("How many extra hours did you worked? ");
scanf("%d",&extra);
printf("How many weeked hours did you worked? ");
scanf("%d",&week);
printf("gross = (hours*wage)+(extra*ext)+(week*sat));

{

return (0);
}




}

קישור לתוכן
שתף באתרים אחרים

קח רוורס, ותעבור שוב על הסינטקסט. כשאתה עושה Scanf ל- Float זה f% ולא d%

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...