פורסם 2007 באוקטובר 2818 שנים { int x, y; x = int.Parse(Console.ReadLine()); y = int.Parse(Console.ReadLine()); if (x > 80 && y > 80) { Console.WriteLine("2"); } else { Console.WriteLine("0"); } if (x > 80 || y > 80) { Console.WriteLine("1"); } }פתחו אלגוריתם אשר הקלט שלו הוא שני ציונים של תלמיד, שערכם הוא מספר שלם בין 0 ל- 100והפלט שלו הוא מספר המציין כמה מן הציונים גבוהים מ-80.הבעיה היא שה-IF הראשון סוטר את ה-IF השני ולהפך למשל אם אני יקליד את הציונים:90 81 הפלט: 2 190 50 הפלט: 1 0מה אני צריך לעשות כדי שאם הIF הראשון נכון שהתוכנית לא תמשיך לIF השני?
פורסם 2007 באוקטובר 2818 שנים אתה צריך לעבוד עם תנאי מקונן. כלומר, תנאי בתוך תנאי. זה יראה כך: int x, y; x = int.Parse(Console.ReadLine()); y = int.Parse(Console.ReadLine()); if (x > 80 && y > 80) Console.WriteLine("2"); else if (x > 80 || y > 80) Console.WriteLine("1"); else Console.WriteLine("0");דרך נוספת היא ליצור משתנה שימנה את מספר הציונים הגדולים מ 80, ולאחר מכן פשוט להדפיס את התוכן שלו (לדעתי היא פחות "חכמה"): int x, y, mone; x = int.Parse(Console.ReadLine()); y = int.Parse(Console.ReadLine()); mone = 0; if (x>80) mone++; if (y>80) mone++; Console.WriteLine(mone);
פורסם 2007 באוקטובר 2818 שנים מחבר אתה צריך לעבוד עם תנאי מקונן. כלומר, תנאי בתוך תנאי. זה יראה כך: int x, y; x = int.Parse(Console.ReadLine()); y = int.Parse(Console.ReadLine()); if (x > 80 && y > 80) Console.WriteLine("2"); else if (x > 80 || y > 80) Console.WriteLine("1"); else Console.WriteLine("0");תודה רבה עכשיו זה מובן
פורסם 2007 באוקטובר 2818 שנים הדרך הטובה ביותר (בתנאי שלמדת את זה בבית הספר) היא ליצור מערך שקולט את הציונים ולאחר מכן לעבור עליהם ולספר.למה זה טוב ? מכיוון שאם מחר המורה יבקש ממכם לשנות את הקוד כדי לקלוט 3 ציונים אתה לא תצטרך לעשות שום שינוי (למעט מספר הפעמים של לולאת הקליטה) בניגוד לכל האופציות האחרות.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.