עבור לתוכן

פיתרון לשאלה מהבגרות של 2001

Featured Replies

פורסם

במקרה אז יש לי את זה כאן לידי...

אפילו לא ציינת איזה בגרות!

אולי פשוט תעלה לכאן את השאלה וננסה לענות לך?

זה לא יותר פשוט?

פורסם
  • מחבר

חחחחחחח שמתי קישור לא יודע למה לא יצא, שנייה

פורסם

אני זוכר את השאלה הזאת, קלה למדי גם

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


void account(int room, int days, int extras){
int total=days*400+extras;
printf("The guest needs to pay %d NIS for his staying \n",total);
printf("He Stayed in room %d for %d days \n",room,days);
if (total>2000)
printf("4 payments");
}

אוקיי, עכשיו אחרי שעשינו את זה, בוא נכתוב את הmain של התוכנית ככה שיענה על סעיף ב' של השאלה


void main(){
int days, int room,int total_ext, int extras,int i;
Do{
printf("Please enter room number \n");
scanf("%d",&room);
total_ext=0;
if (room!=999){
printf("Please enter the number of days the guest stayed \n");
scanf("%d",&days);
for (i=1;i<=days;i++){
printf("please enter the fee for special features for day %d \n",i);
scanf("%d",&extras);
total_ext=total_ext+extras;
}
printf("The guest needs to pay %d for special features \n",total_ext);
account(room,days,total_ext);
}
} While (room!=999)
}

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

חוץ מזה, אני לא בטוח שהפיתרון נכון כי השאלה עצמה לא מובנת ממש, אבל זה הכי טוב שיכולתי לעשות

פורסם

אני הייתי עושה את זה עם WHIL\ק רגיל, כי איך שעשית אתה בודק כל איטרציה בדיקה נוספת

פורסם
  • מחבר

תודה :yelclap:

יש מצב מישהו יכול להסביר לי מה ההבדל בין פונקציה לפרוצדורה?(כי לא הייתי ב3 שיעורים אחרונים ופיספתי את זה:\)

תודה!

פורסם

האמת גם while רגיל תצטרך להשאיר את הבדיקה האם החדר=999

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

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

אך את זה אפשר לעשות גם ב while וגם בdo while,אז זה לא משנה באמת

פורסם

פונ מחזירה ערך, פרוצדורה לא.

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

פורסם

טוב זה לא מסובך לשנות את זה, למשהו כמו זה:


printf("Enter room number \n");
scanf("%d",&room);
while(room!=999)
{
...
printf("Enter room number \n");
scanf("%d",&room);
}

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

פורסם
  • מחבר

void account(int room, int days, int extras){

int total=days*400+extras;

printf("The guest needs to pay %d NIS for his staying \n",total);

printf("He Stayed in room %d for %d days \n\n",room,days);

if (total>2000)

   printf("4 payments");

}

int main(){

int days,room,total_ext=0,extras,i;

{

    printf("Please enter room number:");

    scanf("%d",&room);

    while(room!=999){

    printf("Please enter the number of days the guest stayed: ");

    scanf("%d",&days);

    for(i=1; i<=days; i++){

    printf("please enter the fee for special features for day %d: ",i);

    scanf("%d",&extras);

    total_ext=total_ext+extras;

    extras=0;}

    printf("The guest needs to pay %d for special features \n",total_ext);

    account(room,days,total_ext);

    printf("Enter room number: ");

    scanf("%d",&room);}}

:yelclap:

הנה :) רק שיניתי ממה שinfer73 עשה את הdo כי לא למדנו את זה...

תודה לכולם :xyxthumbs:

ארכיון

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

דיונים חדשים