ג'אווה עזרה מערכים

lealaura

New member
ג'אווה עזרה מערכים

היי, יש לי 2 מערכים שבמערך אחד יש מספרים ובמערך השני יש את תדירות המספרים של המערך הראשון. צריכה להוציא כפלט מערך 3 שימיין לי את המערכים
לא מצליחה לכתוב את הקוד.... אם מישהו יכול לעזור יבורך!
דוג:

A1= 1 2 3 4
A2= 2 3 2 1
A3= 1 1 2 2 2 3 3 4
 

BravoMan

Active member
למה לא מצליחה?

הנה כתבת את ההודעה, אז המקלדת שלך עובדת תקין!

&nbsp
עכשיו ברצינות - שברת שיא חדש בשאלה הגרוע ביותר בפורום!
מצטער שאני קצת יורד עליך בפעם הראשונה שאת פה, אבל חשוב מאוד להבהיר שפשוט אי אפשר לעזור לך בצורה בה ניסחת את השאלה!
&nbsp
לא הסברת בכלל מה אמור להיות במערך השלישי, והדוגמה שנתת לא תואמת את ההסבר המילולי שלך!
&nbsp
בדוגמה, יש לך 2 מערכים של מספרים, ומערך שלישי שבו הם ממוינים בסדר עולה.
(או לפחות כך נראה).
בתיאור, כתבת שבמערך השני יש "תדירות" מספרים, מה זה תדירות בכלל במקרה הזה?
כמות הופעות של מספר יש במערך? מרווח תאים בין הופעות המספר?
&nbsp
לא כתבת לפי אלו כללים המערך אמור להיות ממוין.
לא ציינת גם אם המערכים המקוריים ממוינים או לא.
&nbsp
תצטרכי להסביר נכון את התרגיל שנתנו לך אם את רוצה לקבל תשובה.
בנוסף, שימי לב שכאן לא נותנים פתרונות מוכנים לשיעורי בית אלא עוזרים להגיע לפתרון!
&nbsp
אם את רוצה עזרה, על תזרקי סתם כך את התרגיל ותמתיני לפתרון. תראי מה עשית או ניסית לעשות, עם הסבר מה לא עובד שם, ותגידי בדיוק באיזו נקודה הסתבכת.
&nbsp
בהצלחה וברוכה הבאה לפורום!
 

lealaura

New member
מסבירה שוב

כמובן שצריכה הסבר רעיוני , כבר סיימתי את התגיל עצמו , זו פונקציה צדדית שהסתבכתי איתה,... מסבירה שוב -
הגעתי למצב שיש לי2 מערכים ממויינים , באחד מספרים בלי כפיליות ובשני התדירות שלהם , כמו בדוג שנתתי , צריכה לאחד אותם למערך ממוייין ככה שכל פעם כל המערך ימשיך להיות ממויין, נגיד
A1=2 3
A2=1 2
A3= 2 3 3
ניסיתי לרוץ על זה עם FOR עד סןף המערך הגדול (יכולה לחשב את גודלו) ולרוץ בפנים עם WHILE שהמערך A2 לא הסתיים אז תדפיס את המספר בA1 אבל לא עובד לי , הוא קורס כי אני חורגת מהתחום אולי , לא יושב לי האלגוריתם עד הסוף...
 

lealaura

New member
המערך הראשון ממויין השני לא

צריך להכניס למערך השלילי את המערך הראשון (ממויין) בתדירות לפי המערך השני
 
תראי את הקוד שלך

הלולאות שלך נשמעות קצת מבולבלות, אבל לא נדע בוודאות לפני שנראה את הקוד.
 

BravoMan

Active member
אוקיי, אני חושב שהבנתי:

תגידי אם הניסוח שלי נכון:

  • נתון מערך A של מספרים שלמים, ללא חזרות, ממוין בסדר עולה.
  • נתון מערך B שעבור כל אינדקס בו מופיע מספר חזרות נדרש של מספר באותו אינדקס במערך A.
  • יש ליצור מערך C ממוין בסדר עולה שבו כל מספר ממערך A מופיע כמות פעמים שמצויינת במערך B.
עד כאן הבנתי נכון?

אם כך, יש 2 שלבים לפתרון:
  1. יש לחשב את גודל מערך C. כדי לעשות זאת, יש לרוץ בלולאה על מערך B ולסכם את כל האיברים שבו. מקווה שזה מה שעשית, כי חישוב אחר ייתן לך גודל שגוי.
  2. לרוץ על מערכים A ו-B במקביל (כי תמיד מעניין אותנו אותו תא בשניהם) ולמלא מערך C.
כיצד עושים את 2? פשוט:
עבור כל תא ב-A:
רוץ על מערך C ממיקום נוכחי ב-C כמפסר פעמים המופיע ב-B, והתעק את הערך מהתא הנוכחי ב-A ל-C.

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

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

בהצלחה!
 
למעלה