אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2023 · קיץ מועד ב · שאלה 9כל שאלות המבחן ←
תכנות בסיסימבני בקרה

"משקל נקי" של מספר שלם חיובי הוא סכום הספרות של המספר, בלי הספרה השמאלית ביותר ובלי הספרה הימנית ביותר. לדוגמה: המשקל הנקי של 123 הוא 2. המשקל הנקי של 12345 הוא 2+3+4=9. המשקל הנקי של 18 הוא 0. המשקל הנקי של 9 הוא 0.

מערך של מספרים שלמים נקרא "מערך ממוין לפי משקלים" אם ה"משקלים" של כל איברי המערך ממוינים בסדר עולה ממש (ללא חזרות של משקל). לדוגמה, המערך 35, 923, 781, 12349, 1892 (משקלים: 0, 2, 8, 9, 17) ממוין לפי משקלים.

סעיף א

כתבו פעולה אשר מקבלת מספר שלם חיובי ומחזירה את ה"משקל הנקי" שלו. הערה: כותרת הפעולה אינה מודפסת בשאלון — נבחר השם netWeight(int num).

סעיף ב

כתבו פעולה אשר מקבלת מערך חד-ממדי של מספרים שלמים ומחזירה ערך true אם המערך הוא "מערך ממוין לפי משקלים", אחרת תחזיר ערך false. הערה: כותרת הפעולה אינה מודפסת בשאלון — נבחר השם isSortedByWeights(int[] arr).

סעיף ג

כתבו פעולה אשר מקבלת שני מערכים חד-ממדיים של מספרים שלמים וחיוביים; כל אחד מהמערכים הוא "מערך ממוין לפי משקלים". הפעולה תדפיס את כל האיברים בעלי "משקל נקי" ייחודי — כלומר את כל האיברים מהמערך הראשון שה"משקל הנקי" שלהם לא מופיע במערך השני, ואת כל האיברים מהמערך השני שה"משקל הנקי" שלהם לא מופיע במערך הראשון. לדוגמה, עבור המערכים 35,923,781,12349,1892 (משקלים 0,2,8,9,17) ו-2,358,181,5821,1742,36621,27731 (משקלים 0,5,8,10,11,14,17): הפעולה תדפיס 923, 358, 12349, 5821, 1742, 36621. הערה: כותרת הפעולה אינה מודפסת בשאלון — נבחר השם printUniqueNetWeights(int[] a, int[] b).

סעיף ד

מהן סיבוכיות זמן הריצה של הפעולות שכתבתם בסעיפים ב' ו-ג'? הסבירו את תשובתכם.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי