עבור לתוכן

איך עושים שתוכנה לא תיגמר ?

Featured Replies

פורסם

שאני (לדוגמה) יכניס מספר והתוכנה תגיד לי שזה גדול...

אז אני לא רוצה שאני יכניס מספר ואז התוכנה תגמר אני רוצה להמשיך להכניס מספרים

אז איך עושים את זה?

פורסם

יש אפשרות להקצות זיכרון בצורה דינאמית ובכך ליצור משתנים חדשים מתי שאתה רוצה.

פורסם

ליצור את התוכנה בלולאה אינסופית?

פורסם

שתי אפשריות מרכזיות.

אחת, ליצור לולאה אינסופית שנגמרת כאשר מכניסים מספר מסויים. אבל אז אתה לא יכול לטפל במקרה המסויים של המספר הזה.

אפשרות נוספת היא ליצור לולאה אינסופית, כאשר בכל פעם יש שאלה למשתמש האם להמשיך ורק אם כן, תינתן לא האפשרות להכניס מספר נוסף. ככה אתה לא מאבד אפשרות לקבל כנתון אף מספר.

אתה מכיר את המושג "לולאות"?

פורסם
  • מחבר

ברור שאני מכיר...

אז אני עושה לולאה אינסופית , כותב מספר ונגיד התוכנה תכתוב "גדול" ואז אני יוכל לכתוב עוד פעם מספר ?

פורסם

לא ממש הבנתי אותך, אבל בעיקרון אתה צריך לולאה עם תנאי true || something.

עריכה:

טעות שלי... true && something.

ובכל מקרה הtrue סתם בשביל הדגשה.

פורסם

לא ממש הבנתי אותך, אבל בעיקרון אתה צריך לולאה עם תנאי true || something.

אני לא הבנתי אותך, הרי במצב כזה כל הזמן יתקבל 1 ואפשר לעשות את זה יותר פשוט כמו שהראה כאן למטה... :nixweiss:

פעם השתמשתי בדוגמא הזאת כשבניתי משחקי לוח והשתמשתי ב-break מתי שרציתי להפסיק את התוכנית:

while(1){
....
}

פורסם

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

פורסם

אתה יוצר משתנה דגל שיהייה TRUE כל עוד הוכנס קלט לא נכון, והוא גם מאותחל בTRUE.

למשל ב- C:


int flag=1;
while(flag)
{
scanf(...);

if(good_input)
flag=false;
}

פורסם

למה אתם מסבכים את העיניין של לולאות אינסופיות?

while (1!=2)

זה יספיק.

פורסם

אם כבר אז מספיק

while(1)

או

while(true)

אבל זאת בדיוק לולאה אינסופית

המטרה היא שגם יהיה ניתן לעצור אותה מתישהו ואת זה עושים באמצעות flag

פורסם

על איזה שפה מדבר פותח התראד?

פורסם
  • מחבר

שפת C

פורסם

בקיצור, הסתדרת או לא, אם לא, תכתוב בדיוק מה הבעיה ואיפה.

פורסם
  • מחבר

הסתדרתי..

ארכיון

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

דיונים חדשים