פרויקט- אפליקצית מחשבון

הפרויקט הראשון שלנו יהיה בניית אפליקציית מחשבון 🧮

חושבים לפני שמקודדים#

זהו הפרויקט הראשון שלנו ביחד, ותחילה חשוב לתכנן את הבנייה שלו מראש: מה מצפים שיקרה? מה הinput & output ומה השלבים הנדרשים בדרך עוד לפני שמתחילים לקודד.

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

מבנה הפרויקט הבסיסי#

הנה מבנה ראשוני של הפרויקט: basic flow

נתחיל מלקודד את שני השלבים הראשונים המסומנים למעלה:

מוסיפים את שלב החישוב#

שלב החישוב יצטרך להתבצע בדרך שונה עבור כל אופרציה, ולכן נכון יהיה שבלוק החישוב ישתנה לפי תנאים שונים- if block calc flow expantion

בואו נקודד ביחד את שארית הקוד:

מוסיפים פעולות למחשבון- ולידציה של האופרטור#

עד עכשיו לא מאתגר במיוחד... בואו נוסיף עוד כמה פיצ'רים למחשבון שלנו.

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

add validation to flow

כבר מהתכנון של הקוד אנחנו רואים שמגיע if block שיבדוק לנו את הקוד. בואו נכתוב את הבדיקה שלנו בעזרתו:

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

exit#

הפונקציה ()exit עושה בדיוק את מה ששמה רומז לנו- היא יוצאת מהקוד! בצורה כזו נח לבצע יציאה מוקדמת ללא צורך לדחוף את כל הקוד בתנאי אחד:

אתם צודקים, אפשר לעשות ולידציה גם על המספרים שמכניסים

אבלללל... ולידציה על int באופן ספציפי היא קצת יותר מסובכת, ולבדוק float זוהי בכלל חוויה. אנחנו נלמד לעשות ולידציה על אינפוט כזה בהמשך 😶‍🌫️😶‍🌫️😶‍🌫️

עוד פיצ'ר- פעולה עם מספר בודד#

נוסיף אופרטור שדורש רק מספר אחד: העלאה בריבוע. במקרה שהמשתמש בוחר בהעלאה בריבוע נבקש רק מספר אחד ולא שניים בinput.

כמובן שגם כאן אנחנו נשתמש בבלוק תנאי בשביל להחליט האם לקבל מספר אחד או שניים מהמשתמש

unary-op

תרגיל סיום פרויקט#

בתרגיל זה תמשיכו לבנות בעצמכם את המחשבון. תצטרכו להוסיף שני אופרטורים חדשים:

  • \ פעולת החילוק
  • sqrt פעולת השורש.

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

אילו מספר/ים שנכניס לפעולות יגרום להן להכשל? עבור אילו מספרים הפעולות האלו לא מוגדרות?? הכניסו בדיקות רלוונטיות למספרים שיגרמו לפעולה להכשל, ואם אינפוט כזה יגיע, כתבו הודעה כלשהי שהאינפוט לא טוב ואל תמשיכו לכתוב את התוצאה הסופית!