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

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


BenSalem2

Recommended Posts

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

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

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

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

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

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

...

...

...

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

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

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

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

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

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

לבסוף 6 , 7

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

תודה מראש

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

  • תגובות 63
  • נוצר
  • תגובה אחרונה

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

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

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

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

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

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

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

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

אני רוצה לקלוט קלט של שעות עבודה מהמשתמש והפלט יהיה מסודר ב-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]

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

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

שעות עבודה : 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 חלקיים אני אסדר אותו תחבירית ולוגית

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

(משתדל..)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ארכיון

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


×
  • צור חדש...