שאלת "אם גם טעיתי" במחברת 1

היי,

לא ממש בטוחה שהבנתי מה אמורים לעשות בתרגיל הזה, אשמח להסבר :slight_smile:

לייק 1

אני לא מדריך. אני עונה בהתאם לאיך שהבנתי את התרגיל…

צריך לתקן את הקוד כך שיבדוק את שני המצבים הבאים:
מצב 1: האם התרגיל (a ** 2 + b ** 2 == c ** 2) נכון רק לערכים 3,4,5 (בהתאמה) ולא לערכים 4,5,6 (בהתאמה)?
מצב 2: האם התרגיל הנ"ל נכון לשתי סדרות הערכים 3,4,5 ו- 4,5,6?
הקוד כמובן ידפיס את המחרוזת המתאימה לתשובה מבין שתי האפשרויות הכתובות

לייק 1

אשמח גם להסבר מה צריך לעשות בתרגיל.
התרגיל לא ממש ברור.

נשמע הגיוני, תודה :slight_smile:

לייק 1

אני הבנתי את התרגיל קצת אחרת… :face_with_monocle:
מהאופי של הקוד הנתון הסקתי שהמחרוזות שנמצאות בתוך פקודות הפרינט אמורות להוביל אותנו רק לדיוק והבנת המיקום שלהן בתוך הקוד ולתיקון טעויות אחרות שהיו קיימות. כך שלאחר תיקון הטעויות, מה שכתוב במחרוזות יסביר לנו פשוט את מה שקורה בקוד ללא הוספה של תנאים משלנו…
אשמח ממש לתשובה של אחד מחברי הסגל ע"מ לדעת בודאות איך להתייחס לתרגיל. :pray:
@guykeller @itamaraviv @ido

2 לייקים

צריך לתקן את הקוד שקיים ולדאוג שהוא ירוץ ויכנס ל־if.
כמו כן, צריך שאם משנים את a, b ו־c לשלשה שהיא לא פיתגורית ה־print הראשון לא יודפס.

4 לייקים

תודה על המענה המהיר! :slight_smile:

תודה, עכשיו יותר מובן

הקוד שלי הוא ככה . משום מה הוא מדפיס את שתי התגובות .מדוע?
a = 3
b = 4
c = 5

if (a ** 2 + b ** 2) == (c ** 2):
print (‘This line should run for 3, 4, 5 but not for 4, 5, 6’)

print ('This line should run anyway')

ממבט מהיר, חסר לך מה קורה כשהתנאי לא קורה, שזה הprint השני והוא לא משייך לשום תנאי, אז הוא פשוט מדפיס את המשפט הזה

אני עדיין לא הבנתי, יש צורך ביצירת קלט/פלט?
ברור לי שצריך להריץ את זה תחת ה-if
אבל מצופה ממש לשכתב את הקוד מחדש ככה שמוספים input (ומכאן "שאם משנים את a, b -c לשלשה שהיא לא פיתגורית) וכו’… או רק לשנות את הנוסח?

לדעתי לא צריך להוסיף קלט אלא רק לערוך את המשתנים a, b, c.

לייק 1

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

אם כתבת בדיוק ככה את הקוד, שימי לב שהprint הראשון שלך לא נמצא תחת התנאי הראשון

היי ערכתי שוב ,1.הפרינט נמצא מתחת לתנאי בקוד
2.האם אני חייבת input במקרה הזה?
אשמח אם תוכלי לעזור לי

אין צורך ב-input, המשתנים בהם הקוד משתמש הם אלה שמוגדרים מראש, ואת יכולה לשנות אותם.
נסי לבדוק עבור 3, 4, 5 ועבור 4, 5, 6 האם מודפסים הפלטים שאמורים להיות מודפסים - כלומר 2 שורות במקרה הראשון ושורה יחידה במקרה השני

הכוונה כמובן לערוך את המשתנים כדי לבדוק אם הקוד שערכת עובד כמו שצריך :slight_smile:

אני חשבתי ככה… אבל לא טוב אשמח לעזרה

a = 3
b = 4
c = 5

if (a ** 2 + b ** 2) == c ** 2:
print(“This line should run for 3, 4, 5 but not for 4, 5, 6”)

if (a ** 2 + b ** 2) != c ** 2:
print(“This line should run anyway”)

אין צורך להוסיף שורות משלך לקוד. יש בקוד כמה טעויות קטנות וצריך לתקן אותן בעזרת מה שלמדנו על if.