קורס פיתוח מתקדם בפייתון
פרק
>
רמה
מודולים מתמטיים
מודול מתמטי מורחב
מטרה
חשב את ההרחבות החדשות של השטח בחווה באמצעות פונקציות נוספות המיובאות ממודול math.
מעבר לגשר, לאנקס יש מספר משרדים המשמשים לסקר את הקרקע הלא משולבת שמאחדת שני חלקים שונים של החווה. כאן נאתר כמה ממדי קרקע ומדידות, ויהיה רעיון טוב למיין אותם ולתעד את הנתונים. באפשרותך לבצע זאת באמצעות מודול math. ברמה זו נכיר סט חדש של הפונקציות שלו שניתן להשתמש בהן לעיבוד הנתונים. תשתמש באותה הפקודה import math ובתחילית math. לפני הפונקציות כדי להשתמש בסט זה:
math.radians(): ממיר מעלות לרדיאנים/זוויות.math.floor(): מעגל מספר כלפי מטה למספר בסיסי.math.ceil(): מעגל מספר כלפי מעלה למספר גבוה יותר.math.atan2(): מחזיר את הארקטנגנט בין שני מספרים ברדיאנים.math.isclose(): בודק אם שני מספרים קרובים זה לזה, ומחזיר true/false.math.fsum(): מחבר מספרים עשרוניים (עם נקודה) יחד מרשימה או איטרטור.math.dist(): מחשב את המרחק בין שתי נקודות; הערכים צריכים להיות רשימות או איטרטורים.
התחל לאסוף את הנתונים הגולמיים מהתרשימים על ידי הליכה לסמני ה-X הבהירים על השטיח האדום והכחול. השתמש בפונקציה read() כדי לזהות את הממדים הגולמיים הדרושים למדידות. מדידות אלו כבר מאוחסנות בארבעה קבועים משתנים בשם: red_x, red_y, blue_x ו- blue_y.
לאחר שזוהו שתי קבוצות הנתונים, עבור לסמן ה-X הכהה על השטיח הכתום ופנה לשולחן. השתמש בפונקציות math.radians() ו-math.ceil() כדי להמיר את המשתנים blue_x ו-blue_y לרדיאנים ולעגל אותם למעלה. השתמש ב-float() כדי לוודא שהקבועים הם מספרים עשרוניים הניתנים לעריכה. לדוגמה, עבור המשתנה blue_x: המר לרדיאנים blue_x = math.radians(float(blue_x)) ועגל את הערך blue_x = math.ceil(float(blue_x)). עשה את אותו הדבר עבור blue_y בסמן X זה, וברגע שתסיים, השתמש בפונקציית write() שהוכנה מראש והוסף את המשתנים blue_x ו-blue_y כדי לתעד אותם.
עבור לסמן ה-X הכהה על השטיח הירוק והשתמש בפונקציות math.radians() ו-math.floor() כדי להמיר את המשתנים red_x ו-red_y לרדיאנים ולעגל אותם כלפי מטה. לדוגמה, עבור המשתנה red_x: המר לרדיאנים red_x = math.radians(red_x) ועגל את הערך blue_x = math.floor(red_x). עשה את אותו הדבר עבור red_y בסמן X זה, וברגע שתסיים, השתמש בפונקציית write() שהוכנה מראש והוסף את המשתנים red_x ו-red_y כדי לתעד אותם.
עבור לסמן ה-X הזהב ופנה לשולחן, כאן ניצור שני משתנים חדשים, data_a ו-data_b. כאן נאחסן את טנגנטים ההיקפיים של כל קבוצה באמצעות פונקציית math.atan2. עבור data_a נשתמש במשתנים blue_x ו-blue_y כדי להזין את הפונקציה, כך: data_a = math.atan2(blue_x,blue_y). עבור data_b, עשה את אותו הדבר אך עם red_x ו-red_y. ברגע שתסיים, השתמש בפונקציית write() שהוכנה מראש והוסף את המשתנים data_a ו-data_b כדי לתעד אותם.
כעת, לאחר שטיפלת בשולחנות התחתונים, עבור לסמן ה-X הכהה על השטיח הסגול, צור משתנה בשם comparison והשתמש בו עם פונקציית math.isclose(), תוך שימוש ב-data_a ו-data_b כארגומנטים, כך: comparison = math.isclose(data_a, data_b). השתמש בפונקציית write() שהוכנה מראש עם המשתנה comparison בסמן X זה.
עבור לסמן ה-X על השטיח הלבן, צור רשימה בשם data_list והוסף בה את data_a ו-data_b בסדר זה. צור משתנה בשם total והשתמש בפונקציית math.fsum() עם data_list כארגומנט, כך: total = math.fsum(data_list). השתמש במשתנה total עם פונקציית write() שהוכנה מראש בסמן X זה.
עבור לסמן ה-X הכהה על השטיח הצהוב ופנה לשולחן, המר את data_a ו-data_b לערכים נפרדים בתוך רשימות. לדוגמה, עבור data_a עשה: data_a = [data_a]. עשה את אותו הדבר עבור data_b כדי להמיר את שני המשתנים לאיטרטורים לשימוש בפונקציית math.dist(). צור משתנה בשם distance והשתמש בו לאחסון הערך של math.dist(), תוך שימוש ב-data_a ו-data_b כארגומנטים. השתמש במשתנה distance עם פונקציית write() שהוכנה מראש כדי להשלים את הרמה.