לולאות

longisland

New member
לולאות

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

SummerGirl

New member
עבר הרבה זמן מאז שתיכנתתי ב - ++C

אבל איך התוכנית נכנסת ללולאה הראשונה מלכתחילה, אם לא איתחלת את num? אני לא זוכרת אם התוכנית נותנת ערך default-י ל - int, אבל גם אם כן, הוא בטח 0, ואז הוא לא יכול להיות קטן מ - min או גדול מ - max. ושוב - עבר זמן, אז תקן אותי אם אני טועה.
 

SummerGirl

New member
בכל מקרה

על מנת לא לאתחל את num ו - num1, כי אין בזה טעם כאשר אתה רוצה שהם יקבלו את הערכים שלהם מתוך הקלט, אז במקום להשתמש במשפט while, תשתמש ב - do... while, כך שקודם תתבצע קליטת הקלט, ורק אח"כ פקודה שהלולאה תמשיך / תיגמר.
 

longisland

New member
אם כן

תנסי להריץ את התוכנית שכתבתי הפעולה הראשונה עובדת כצפוי כאשר אם מכניסים מספר קטן מ0 או גדול מ10 התוכנית מודיעה למשתמש שהוא הקליד מספר לא נכון ומחכה למספר נכון לאחר שהמשתמש מקליד מספר נכון (בין 0 ל 10 ) התוכנית נגמרת וחוזרת לשולחן העבודה(workspace(. אם הלולאה הראשונה עובדת כמו שצריך אז למה התוכנית לא מגיעה ללולאה השניה
 

גיש

New member
בוקר טוב לונג ../images/Emo13.gif ילדת-קיץ צודקת

המשתנים שלך לא מאותחלים, נמצא בהם "זבל". אומנם הלולאה הראשונה עובדת, אך אין זה יותר מאשר מ ק ר ה. אף אחד לא מבטיח שבמחשב אחר, או אפילו במחשב שלך, זה תמיד יעבוד. תאתחל את המשתנים, או באמת תשתמש ב do...while. ועוד הערה אם יורשה לי, אתה כותב לא יפה. התוכנית שלך קצרה ופשוטה אבל בגלל שהיא לא כתובה יפה היה קשה לקרוא אותה. כאשר תכתוב תוכניות יותר גדולות, תוכניות עם הרבה קבצים, והרבה שורות קוד, אחרי יומיים לא תוכל להבין מה כתבת, שלא לדבר על מתכנת אחר שיצטרך אולי לבצע שינויים בתוכנית. אני כבר שולח לך דוגמא למה שאני מתכוון. באיזה קומפיילר אתה משתמש ? Visual Studio מסדר את התוכנית אוטומטית.
 

גיש

New member
הנה התוכנית שלך

ועוד משהו, לפני main תכתוב int או void, אל תסמוך על הקומפיילר שיוסיף את זה. גם אחרי ה const תכתוב int, או כל סוג משתנה אחר, אל תסמוך על הקומפיילר. תסמוך רק על עצמך, תגיד לו ב ד י ו ק למה אתה מתכוון, שלא יהיו אי הבנות. ואולי כדי שתתרגל לכתוב הערות, נכון שהתוכנית פשוטה, אבל בתוכניות יותר מסובכות אתה ח י י ב הערות, גם בשבילך וגם בשביל מתכנת אחר שיצטרך לעבור על התוכנית, מכל סיבה שהיא. תתרגל מהתחלה ובהמשך זה יבוא לך באופן טבעי.
 

longisland

New member
בוקר טוב(רק עכשיו אצלי בוקר)

תודה על ההערות ועל העצות לשיפור אני אנסה לתקן כמו שהצעת ואחזור בהמשך long island,ny
 

longisland

New member
דרך אגב

למה אני צריך להתחל את המשתנים אם הם מקבלים ערך מהקלט?
 

longisland

New member
עליתי על הבעיה!

הקבוע min מאותחל עם הערך 0 כאשר אני מאתחל אותו עם 1 זה עובד
 

גיש

New member
אפשר גם ../images/Emo6.gif

תלוי מה המטרה שלך בתוכנית. אם אתה לא רוצה מס´ שליליים, אך מאפשר הכפלה ב 0, בתנאי תרשום if(num1<=min)m, בלי ה m בסוף.
 
למעלה