שלח תשובה

זירת השאלות

1006
צפיות
1
תשובות

איך לקבל int ו char מביטוי שהמשתמש מכניס?

,‏ 1 בנובמבר, 2014

שלום, אני לומד עכשיו C# וקיבלתי משימה שהמשתמש מכניס שני מספרים וביטוי(-+/*), ואז לחשב את התוצאה. המורה שלי רצתה שנעשה את זה עם readline ולבקש מהמשתמש כל פעם מספר וביטוי ומספר, אבל אני רוצה שיהיה אפשר להכניס לדוגמה 4+5 ואז לקחת כל אחד מהערכים ולשמור אותו במשתנה, ואז לחשב. readkey לא עובד וגם ניסיתי convert.ToInt32(Console.Readkey()) ולא עבד. אם למישהו יש רעיונות זה ממש יעזור לי, יש לי מבחן מחר.
תודה:)

1 תשובות

  1. אתה צריך לקרוא את כל הקלט כמו String אחד, ואז "לפרסר" אותו, כלומר לאתר את כל סימני האופרטורים (+-/*) ולפרק את הסטרינג לגורמים – לבודד את המספרים מהאופרטורים (אולי למערך), ואז לבצע את הפעולה שהמשתמש ביקש לפי הסדר (ולהקפיד על סדר פעולות חשבון)

    אם אתה מחפש דרך פשוט להריץ פקודה שהמשתמש שידר בלי לפרסר אותה, אז שים לב שאתה חשוף לבעיות אבטחה (כי אתה מאפשר למשתמש להריץ לך פקודה ישירה על התוכנה) ולכן אתה צריך לעשות ואלידציה על הקלט, אבל בפן הפרקטי – אני לא מכיר איך עושים את זה ב-C# אבל ב-ASP הייתה פקודה בשם EVAL, תנסה לחפש בכיוון…

שלח תשובה