עבור לתוכן

שאלה | שפת C עזרה בכתיבת תכנית לחישוב שעות עבודה

Featured Replies

פורסם

שלום יש לי שאלה לגבי קוד שאני רוצה ליצור

בתוכנית אני רוצה שהמשתמש יכניס את מספר האיטרציות

לאחר מכן שהתוכנית תרוץ את מספר האיטרציות שהמשתמש הכניס ובכל איטרציה היא תחבר את מה שהוא הכניס לדוגמא

המשתמש הכניס 3

המשתמש הכניס 4

המשתמש הכניס 1

...

...

...

לבסוף הצגה של 8

ובנוסף לתוכנית אם המשתמש הכניס מספר עם אות לדוגמא 9x אז התוכנית תחשב את המספר 9 בנפרד

המשתמש הכניס 2

המשתמש הכניס 3x

המשתמש הכניס 4

המשתמש הכניס 4x

לבסוף 6 , 7

מקווה שהסברתי את עצמי נכון

תודה מראש

  • תגובות 63
  • צפיות 6.6k
  • נוצר
  • תגובה אחרונה
פורסם

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

תציין גם באיזו שפה אתה רוצה לכתוב.

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

פורסם
  • מחבר
קודם כל, תערוך בבקשה את הכותרת כך שתכיל יותר פרטים ("כמה חלקים" זה לא מספיק מובן).

תציין גם באיזו שפה אתה רוצה לכתוב.

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

אוקי אני אנסה להסביר את עצמי יותר טוב

אני רוצה לקלוט קלט של שעות עבודה מהמשתמש והפלט יהיה מסודר ב-3 חלקים

אם המשתמש הכניס מספר גדול מ-8 אז כל מספר אחריו יספר בנפרד

אם המשתמש הכניס מספר ואות לדוגמא 7.5S גם זה נספר בנפרד

לדוגמא

משתמש הכניס 10

7.5

9S

6

11

8S

הפלט יהיה

17S - 29.5 - 3

מקווה שהיה מובן

פורסם

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

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

לספור שעות עבודה ולחלק אותם ל-3

1 שעות עבודה רגילות

2 שעות עבודה נוספות - אחרי השעה ה8 נחשב שעות נוספות

3 שעות עבודה בסופ''ש כל מספר שמוצמד לו אות S לדוגמא

פורסם

אז הקלט הוא מספרי שעות? טווחים של שעות?

פורסם

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

לדוגמה, "עזרה בכתיבת תכנית לחישוב שעות עבודה".

ההסבר האחרון שלך באמת קצת יותר מובן, חבל רק שהדוגמה לא תואמת את התיאור שלך.

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

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

לדוגמה, "עזרה בכתיבת תכנית לחישוב שעות עבודה".

ההסבר האחרון שלך באמת קצת יותר מובן, חבל רק שהדוגמה לא תואמת את התיאור שלך.

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

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

נגיד המשתמש מכניס 10 אז שיחשב את 8 במשתנה HOURS ואת 2 ב-EXTRA....

פורסם

משהו כזה?

[LEFT]if (hours > 8)
{
salary = 8 * rate;
hours -= 8;
salary += hours * extraTime;
}[/LEFT]

פורסם
  • מחבר
משהו כזה?

[LEFT]if (hours > 8)
{
salary = 8 * rate;
hours -= 8;
salary += hours * extraTime;
}[/LEFT]

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

הפלט שלה צריך להיות

שעות עבודה : 100 שעות נוספות 20 שעות סופ''ש 36 לדוגמא... ולא לחשב שכר

דבר שני איפה הקוד הזה אומר שאחרי השעה ה-8 הוא מחשב בנפרד

לא לשכוח שאני כנראה אשתמש בלולאת FOR בשביל שהמשתמש יכניס את מספר המשמרות שהוא עבד וכל משמרת משמשת כאיטרציה לספירת השעות

#include <stdio.h>**
int main()
{
int hours,extra,sat,shift,sum;

printf("Please Enter Number Of Shifts Worked");
scanf("%d",shift);
printf("Please Enter Hours If Weekend add c");
for (sum = 1; sum<=shift; sum++)
{
scanf("%d",hours);
if (hours>8)
{
hours=extra+extra
}
else if (hours+'c')
{

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

אחרי שאני אבין מה אני צריך לעשות בשביל לסדר את הקלט ל-3 חלקיים אני אסדר אותו תחבירית ולוגית

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

(משתדל..)

פורסם

אם המשתמש מציין כשמדובר בסופ"ש, אין לך מה לחשב. שים לב שמשתנה מטיפוס int לא יתנהג יפה אם תכניס לו משהו כמו 10c

פורסם

יש לך לא מעט טעויות בקוד (לא טעויות בלוגיקה, אלא בעיות שימנעו מהתכנית בכלל לרוץ בצורה נכונה). לדוגמה השימוש שלך ב-scanf לא נכון.

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

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

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

כאילו התעלמת לחלוטין מכל מה שרשמתי פה...

תוכנית שמחשבת את שעות העבודה בלבד זה לא הבעיה שפרסמתי

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

וכמו שרשמתי בתגובה עם הקוד

אני יודע שהקוד לא בנוי תחבירית נכון אני רק מנסה לקבל תמונה כללית של איך...

רק כדי להבין מה אני צריך לעשות להוסיף ; פה או } שם זה לא הבעיה

תודה על התגובות....

פורסם

אז הולכים לפי הסדר, מהפשוט למסובך.

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

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

אחר כך מוסיפים עוד "פיצ'ר": שהתכנית תבדוק אם אחרי המספר שהמשתמש הכניס יש עוד אות, ואם כן אז להוסיף את המספר שהמשתמש הכניס לסכום נפרד מהשניים הראשונים. זה חלק קצת יותר מסובך, כי scanf שמקבל d% יודע לקרוא רק מספרים, לא אותיות.

פורסם
  • מחבר
אז הולכים לפי הסדר, מהפשוט למסובך.

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

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

אחר כך מוסיפים עוד "פיצ'ר": שהתכנית תבדוק אם אחרי המספר שהמשתמש הכניס יש עוד אות, ואם כן אז להוסיף את המספר שהמשתמש הכניס לסכום נפרד מהשניים הראשונים. זה חלק קצת יותר מסובך, כי scanf שמקבל d% יודע לקרוא רק מספרים, לא אותיות.

אחלה חשיבה חבל שלא ראיתי את זה קודם

אוקי אז למדתי עוד משהו בנוסף

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

אחלה שניצל אתה!

ארכיון

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

דיונים חדשים