עבור לתוכן

זיהוי תוים מדוייק C

Featured Replies

פורסם

אני אמור לכתוב תוכנית של קבלה של בית מלון.

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

המשתמש באחד מעשרות השלבים אמור להתייחס לבא: (הועתק מהתרגיל)

מהם ימות השבוע עבורם מבוצעת ההזמנה, הזמנה לכל היותר תארך שבוע ) 7 ימים(. הקלט

יראה מהצורה a-b כאשר a יום הכניסה לחדר ו b יום פינוי החדר. אם הקלט אינו מהצורה

הנתונה או אם a או b אינם בתחום 1 .. 7 אז תודפס ההודעה " ERROR " והתוכנית תסתיים.

דוגמאות לקלט חוקי:

2-7 : המשתמש ישהה 6 ימים משני עד שבת.

6-5 : המשתמש ישהה 7 ימים משישי עד חמישי.

3-3 : המשתמש ישהה רק את יום שלישי.

עבור ימי שישי הלקוח ישלם תוספת בסך 20 $ לאדם ללילה, עבור ימי שבת תוספת

בסך 30 $ לאדם ללילה. אם באותה הזמנה נכללים גם יום שישי ויום שבת אז

התוספת היא בסך 45 $, עבור לקוחות אח"מ ששוהים בימי שישי או\ו שבת אז יש

הנחה בסך 7% .

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

כמו כן איך אני מתייחס ומבודד את הפרמטר של שישי ושבת ע"מ לנהל את חישוב התוספות ?

תודה מראש לעוזרים :smile1:

פורסם

ניראה לי שזה יתאים לחישוב משך השהיה:

int calc_stay(int a, int b)
{
if (b<a)
return(b-a+8); // b-a+1+7
else
return(b-a+1);
}

כדי לחשב את התוספת עבור ימי שישי ושבת תוכל כניראה לבדוק האם b קטן מ a , אם כן משמע שהאורח נשאר גם בסוף השבוע לכן נבדוק אם a קטן מ6 ו7 כדי לבדוק באיזה יום האורח נרשם (אם הוא נרשם לפני שישי הוא יצתרך לשלם תוספת עבור יום שישי ושבת). במידה וb לא קטן מa, יש לבדוק אם b שווה ל6 או 7.

פורסם
  • מחבר

כן אבל תביו... הכוונה שלי היתה אותה ההפרדה של a,b מהקלט שמגיע 2-4 למשל... איך אני בתור מתכנת אכניס את אותו 2 ל-a ואותו 4 ל-b ? :)

פורסם

אם אתה רוצה לקבל את הקלט בפורמט "a-b" אפשר לעשות את זה עם scanf פשוט:

scanf("%d-%d",&a,&b);

פורסם
  • מחבר

סבבה תודה ;D

ארכיון

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

דיונים חדשים