עבור לתוכן

איך אני מגדיר משתנה שיקבל מספר בינרי?

Featured Replies

פורסם

הכל בכותרת...

פורסם

כל דבר שאתה שומר במחשב נשמר בבינארית, לכן כל סוג משתנה יתאים לך.

פורסם

נראה לי שהוא התכוון לזה שהוא יוכל להיקלט מהמשתמש (או מהמתכנת) בצורה בינארית.... נכון?

פורסם
  • מחבר

בדיוק אבל הסתדרתי...

עכשיו יש לי בעיה אחרת.....

אני אמור לגרום למשתמש להקשי שוב אם הוא מקיש משהו שונה מ 1 או 2...עכשיו עשיתי את זה עם לולאת WHILE הבעיה היא שאם הוא מכניס אות או משהו אחר

אז הוא עף מהתוכנית וזה לא מה שאני צריך לעשות....

פורסם

אני מניח שמה שניסית לעשות הוא לקרוא מספר, וכיוון שהקלט היה אות אז התכנית עפה.

אתה צריך במקום זה לקרוא בכל מקרה אות (char), ואז לבדוק אם היא שווה ל-'1' או ל-'2'.

פורסם
  • מחבר

נכון מאוד...הבעיה בזה היא שכאשר אתה לוחץ על אנטר הוא מקפיץ את התנאי....ז"א שאם לחצת 1 ואנטר גם התנאי הבא יקפוץ...יוצא אם כך שאם אני

יקיש לדוגמא 8 ואנטר אז הוא ירשום פעמיים:

"הזנת מקש לא חוקי הקש שנית" ואת זה אני לא רוצה...

פורסם

אתם מדברים בקודים או שאני לא רואה טוב.....

באיזה שפה אתם מדברים?????

פורסם

איזה קודים...?

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

נכון מאוד...הבעיה בזה היא שכאשר אתה לוחץ על אנטר הוא מקפיץ את התנאי....ז"א שאם לחצת 1 ואנטר גם התנאי הבא יקפוץ...יוצא אם כך שאם אני

יקיש לדוגמא 8 ואנטר אז הוא ירשום פעמיים:

"הזנת מקש לא חוקי הקש שנית" ואת זה אני לא רוצה...

אז יש לזה שני פתרונות:

1. אם אתה עובד ב-C++ , אז כשעושים cin >> c אז הוא מדלג על רווחים וירידות שורה. (בניגוד ל-cin.get() שלא עושה את זה)

2. בלולאה שלך תדלג מעל רווחים וירידות שורה, כלומר התנאי שלך יהיה משולש:

אם התו שהוזן הוא '1' או '2', תצא מהלולאה.

אם התו הוא רווח או ירידת שורה ('n\'), אז תמשיך בלולאה בלי להדפיס כלום.

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

פורסם

בדיוק אבל הסתדרתי...

עכשיו יש לי בעיה אחרת.....

אני אמור לגרום למשתמש להקשי שוב אם הוא מקיש משהו שונה מ 1 או 2...עכשיו עשיתי את זה עם לולאת WHILE הבעיה היא שאם הוא מכניס אות או משהו אחר

אז הוא עף מהתוכנית וזה לא מה שאני צריך לעשות....

אתה רוצה להגיד שהוא יכול להקליד רק 0 או 1 (אין 2 בבינארית)

פורסם

אני יודע מה אני אומר :)

הוא אמר שזו בעיה אחרת.... נכון?

ארכיון

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

דיונים חדשים