חיפוש ערך במערך

חיפוש ערך במערך worksheet preview image
Subjects
Science
Grades
11
Language
HEB
Assignments
38 classrooms used this worksheet

משימה 1: בדיקה האם ערך מסוים מופיע במערך מפתחי תוכנת הניהול של החניון האוטומטי מבקשים את עזרתכם בכתיבת תוכנה שתבדוק אם מספר רכב מסוים נמצא בחניון. פרטי המכוניות שבחניון נשמרו במערך parkingPlaces. תפקידכם לכתוב קטע קוד שמפתחי התוכנה יוסיפו לתוכנית שלהם, אשר יקלוט את מספר הרכב לבדיקה וידפיס את מספר התא שבו הוא חונה. אם הרכב לא נמצא בחניון, תודפס הודעה מתאימה.פתחו את האלגוריתם המבוקש:קלט: מספר רכב.פלט: אם הרכב חונה בחניון, תודפס הודעה עם מספר התא שבו הוא חונה. אם הוא אינו חונה בחניון, תודפס הודעה מתאימה. ניתוח הבעיה: לרשותכם מערך אשר בתאיו השונים שמורים מספרים שלמים המייצגים מספרי רכב. האלגוריתם קולט מספר שלם המייצג מספר רכב. הפלט יהיה הודעה אם הרכב נמצא בחניון, ואם כן באיזה תא (בהנחה שאין מספרי רכבים זהים בתאים השונים, כפי שהוגדר בשאלה).יש שתי דרכים אפשריות לבנות אלגוריתם כזה:פתרון 1: לסרוק את כל תאי המערך ולחפש את הערך הרצוי.פתרון 2: לסרוק את המערך רק עד שמוצאים את הערך הרצוי. רגע חושבים! איזו לולאה מתאימה לכל אחד מהפתרונות הנ"ל? התאימו ע"י מתיחת קו for לולאת פתרון 1 while לולאת פתרון 2 הבה נתעמק כעת בשני הפתרונות. פתרון 1: תיאור מילולי בגדול: נגדיר את מקומו של הרכב כמספר התחלתי של תא שאיננו קיים בחניון. כעת נסרוק את כל אברי המערך אחד אחרי השני. אם נמצא את מספר הרכב, נשמור את מספר התא שלו. אם בסיום הבדיקה מספר התא שונה ממספרו בתחילה, אז נמצא המיקום של מספר הרכב. אם לא, מספר הרכב אינו במערך.למימוש פתרון 1 ב-java, נשתמש בלולאת for. אם נמצא את המספר הרצוי, נשמור אותו במשתנה שהוגדר מראש. במשתנה זה הכנסנו מראש מספר שאינו יכול להיות מיקום במערך, למשל 1-. כך שאם לא מצאנו את מספר הרכב בין תאי המערך, המשתנה לא מתעדכן ואנו יודעים בסיום הלולאה שהמספר לא קיים במערך. נתון קטע קוד ב-java המממש את פתרון מס' 1. השלם את המילים החסרות בקטע קוד זה: System.out.println("Please enter a valid user number");int userNumber = in.nextInt();int place = -1;for (int i = 0; i < parkingPlace.length; i++) { if (userNumber == parkingPlace[i]) place = i;}if (place == -1) System.out.println("The number you entered does not exist in our parking");else System.out.println("Your car is stored at place number: " + place); פתרון 2 - תיאור מילולי בגדול: נסרוק את תאי המערך עד שנמצא את מספר הרכב הרצוי. כשנמצא אותו נפסיק לחפש ונדפיס את המיקום שלו (אינדקס התא במערך). אם סרקנו את כל התאים והמספר לא נמצא, נדפיס הודעה מתאימה.למימוש הפתרון ב-java, נשתמש בלולאת while על מנת לסרוק את אברי המערך. משתנה בוליאני מאפשר להפסיק את הלולאה ברגע שמוצאים את המספר הרצוי. לאחר סיום הלולאה, נבדוק האם מספר הרכב נמצא במערך או לא, על פי ערכו של המשתנה הבוליאני. נתון קטע קוד ב-java המממש את פתרון מס' 2. השלם את המילים החסרות בקטע קוד זה: System.out.println("Please enter a valid user car number");int userNumber = in.nextInt();int place = 0;boolean found = false;while (!found place < parkingPlace.length) { if (userNumber == parkingPlace[place]) found = true; else place++;}if (!found) System.out.println("The number you entered does not exist in our parking");else System.out.println("Your car is stored at parking-place: " + place); לסיכום: שני הפתרונות שראינו פותרים נכון את הבעיה. איזה מהם עדיף לטעמך? נמק.

Use This Worksheet