נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: 2 תרגילים ב- JAVA

(נושא נעול נושא נעול)
שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 12:35 | IP רשוּם
 

המורה הביאה לנו 5 תרגילים ואני לא מצליח 2
אני אודה לכם אם תעזרו לי לפתור

שאלה 1:

ציטוט:

כתוב תוכנית הקולטת 10 זוגות של מספרים חיוביים.

הפלט הוא המספר המינימאלי מבין כל המספרים הגדולים בכל זוג וכן מספר זוג (1-10) שבו הופיע המספר המינימאלי.

לדוגמא:

עבור הקלט :    12   5

                   23   45

                   1     8

                   9     71

                   17   6

                   7     12

                   8     61

                   5     19

                   14   62

                   2     10

הפלט הוא: המספר המינימאלי מבין כל המספרים הגדולים בכל זוג הוא 8

     הוא מופיע בזוג מספר 3

 

הערה: ניתן להניח שהקלט תקין.






שאלה 2:

ציטוט:

בבית ספר נערך מבצע איסוף של 2 סוגי חפצים לצורך מיחזור – בקבוקי פלסטיק וסוללות.

בבית הספר הוכרזה תחרות איסוף בין שכבות ט' ו -  י' .

מספר התלמידים הלומדים בשתי השכבות הוא 400.

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

·        עבור בקבוק פלסטיק – 3 נקודות

·        עבור סוללה – 7 נקודות

שכבה שצברה את מספר הנקודות הגדול ביותר נצחה בתחרות .

 

כתבו תוכנית שתקלוט עבור כל תלמיד את מספר השכבה ( 1 עבור שכבת ט', 2 עבור שכבת י'), את מספר בקבוקי הפלסטיק שאסף ואת מספר הסוללות שאסף. ( 0 הוא קלט תקין ).

התוכנית תסכם את מספר הנקודות שקבלה כל שכבה.

הפלט יהיה השכבה המנצחת ומספר הנקודות שצברה.

אם שתי הכבות צברו אותו מספר נקודות הפלט יהיה תיקו – draw .

הערה: ניתן להניח שהקלט תקין.


חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 12:35 | IP רשוּם
 

אני מצטער שזה יצא גדול, אני לא הצלחתי להקטין =[
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 04 October 2007 בשעה 13:49 | IP רשוּם
 

(1)

2 משתנים: MIN, המספר הכי קטן עד כה, ו-MINROW, מספר השורה הכי קטנה.

קולט 10 זוגות מספרים בלולאת FOR, לכל אחד מהם שומר במשתנה X את המספר הקטן
מבין השניים, אם זאת הריצה הראשונה של הלולאה (I == 1) או ש-X קטן מ-MIN אז
שומר את X ב-MIN ואת I ב-MINROW.

וזהו, בסוף מדפיס את MIN ו-MINROW.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 13:53 | IP רשוּם
 

 
shoshan כתב:
(1)

2 משתנים: MIN, המספר הכי קטן עד כה, ו-MINROW, מספר השורה הכי קטנה.

קולט 10 זוגות מספרים בלולאת FOR, לכל אחד מהם שומר במשתנה X את המספר הקטן
מבין השניים, אם זאת הריצה הראשונה של הלולאה (I == 1) או ש-X קטן מ-MIN אז
שומר את X ב-MIN ואת I ב-MINROW.

וזהו, בסוף מדפיס את MIN ו-MINROW.

תודה! זה עזר לי מאוד =]
אני אנסה עכשיו לכתוב את זה ב- JCreator

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 04 October 2007 בשעה 13:55 | IP רשוּם
 

(2) לא צריך מערכים כמובן, צריך רק משתנה של מספר הנקודות של כל שכבה,
לצורך נוחות
נגדיר בתור מערך בגודל 2, P.

מאתחלים את P במקום 0 ו-1 ל-0.

עושים לולאה שרצה 400 פעמים.

קולטת I, מספר שכבה, ומורידה ממנו 1.
קולטת X, מספר בקבוקים.
קולטת Y, מספק סוללות.
ואז
קוד:
p[I]+=3*X+7*Y;


בסוף בודקים מי יותר גדול, P במקום 0 או P במקום 1, ומדפיסים פלט ומספר נקודות
בהתאם.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 15:27 | IP רשוּם
 

shoshan כתב:
(2) לא צריך מערכים כמובן, צריך רק משתנה של מספר הנקודות של כל שכבה,
לצורך נוחות
נגדיר בתור מערך בגודל 2, P.

מאתחלים את P במקום 0 ו-1 ל-0.

עושים לולאה שרצה 400 פעמים.

קולטת I, מספר שכבה, ומורידה ממנו 1.
קולטת X, מספר בקבוקים.
קולטת Y, מספק סוללות.
ואז
קוד:
p[I]+=3*X+7*Y;


בסוף בודקים מי יותר גדול, P במקום 0 או P במקום 1, ומדפיסים פלט ומספר נקודות
בהתאם.

תודה מאוד, שום פעם אתה עוזר =]
אבל אתה יכול בבקשה להסביר לי את הקטע הבא? (לא הבנתי )

קוד:
נגדיר בתור מערך בגודל 2, P.

מאתחלים את P במקום 0 ו-1 ל-0.


חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 04 October 2007 בשעה 15:36 | IP רשוּם
 

P - מערך בגודל 2

למדת/ם מערכים ?

אם לא פשוט תכריז משתנה P1 ומשתנה P2.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 20:31 | IP רשוּם
 

shoshan כתב:
P - מערך בגודל 2

למדת/ם מערכים ?

אם לא פשוט תכריז משתנה P1 ומשתנה P2.

אהה, תודה עכשיו הבנתי

לא למדנו מערכים אבל אני יודע איך להכריז על 2 המשתנים הללו


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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 05 October 2007 בשעה 12:53 | IP רשוּם
 

shoshan,
בבקשה תעזור לי עם שאלה 2
אני מסתבך עם הלולאה, זה קשה לי T_T

קוד:
import java.util.*;
class mihzur
{
static Scanner reader = new Scanner (System.in);
public static void main (String[]args)
{
int P, P1, P2, bakbookim, solelot, nekudot;

for (int i=0; i<3; i++);
{
System.out.println("'הקלד את מספר השכבה, 1 ט', 2 י");
P=reader.nextInt();
while (P==1)||(P==2);
{
    if (P==1)
        P1++;
       
    else
        p2++;

  
}
System.out.println("הכנס את מספר הבקבוקים שאספת");
bakbookim=reader.nextInt();

System.out.println("הכנס את מספר הסוללות שאספת");
solelot=reader.nextInt();

nekudot=bakbookim*3+solelot*7;
System.out.println("nekudot");

}
System.out.println("nekudot");

}
}


בבקשה T_T

תודה מראש
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 October 2007 בשעה 15:37 | IP רשוּם
 

את הלולאת whilE תוריד,

אחרי שחישבת את הנקודות אם P שווה 1 תוסיף אותן ל-P1, אחרת תוסיף אותן ל-P2.

ורק בסוף תבדוק איזו שכבה ניצחה וכמה נקודות יש לה (:

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 05 October 2007 בשעה 16:04 | IP רשוּם
 

shoshan כתב:
את הלולאת whilE תוריד,

אחרי שחישבת את הנקודות אם P שווה 1 תוסיף אותן ל-P1, אחרת תוסיף אותן ל-P2.

ורק בסוף תבדוק איזו שכבה ניצחה וכמה נקודות יש לה (:


 זה קשה הכל מתבלבל לי T_T
הורדתי את הלולאת WHILE וכתבתים במקום זה
קוד:
if (P==1)
    P1++;
  else
     P2++;


אבל אני מקבל את השגיאה
variable P1 might not have been initialized
אותה השגיאה גם על P2

אנחנו לא למדנו הרבה JAVA בכתה י' בגלל שכל השביתות היו לנו על מחשבים
אז אני מצטער על טמטומי הרב
אם אפשר בבקשה תכתוב לי איזה חלק קטן מהלולאה \ איזשהו קוד שיעזור לי לפתור את התרגיל
אני ממש רוצה לסיים את זה ואני לא מצליח T_T

תודה מראש, מצטער שאני מבקש הרבה
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 October 2007 בשעה 16:58 | IP רשוּם
 

P1 ו-P2 זה לא הנקודות ?

למה בכלל יש את הקוד הזה שמוסיף להן 1 ??

אני לא יודע JAVA אז אני אכתוב לוגיקה.

קוד:
int p, p1, p2, bakbukim, batariot, points;
for (int i = 0 ; i < 400 ; ++i)
{
     writeln("הכנס 1 לשכבת ט', 2 לשכבת י'");
     readln(p);
     writeln("מספר בקבוקים:");
     readln(bakbukim);
     writeln("מספר בטריות:");
     readln(batariot);
     points = 7*batariot+3*bakbukim;
     if (p == 1)
          p1 += points;
     else
          p2 += points;
}
if (p1 == p2)
     writeln("תיקו, שתי השכבות זכו ב", p1, "נקודות");
else if (p1 > p2)
     writeln("ט' ניצחו, ", p1, "נקודות");
else
     writeln("י' ניצחו, ", p2, "נקודות");


רק תחליף את writeln לאיך שמדפיסים ב-JAVA ואת readln לאיך שקולטים
מספרים ב-JAVA.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 05 October 2007 בשעה 18:01 | IP רשוּם
 

תודה רבה,
אני שיניתי לשפת JAVA וזה עושה לי רק 2 שגיאות על השורה הזאת:
if (p1==p2)

השגיאה היא:
variable p1 might not have been initialized
אותו הדבר על p2

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


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

אם לא, זה לא נורא, כי בכל מקרה זה מדפיס בסוף את המספר הכי קטן מבין כל ה- 10 זוגות, זה פשוט קצת מציק P:

תודה רבה על העזרה
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 October 2007 בשעה 21:18 | IP רשוּם
 

בקשר לשאלה השנייה, לא, צריך באמת לאתחל לפני הלולאה את p1 ו-p2 ל-0.

בשאלה הראשונה לא הבנתי, אבל לא משנה, כבר תדברו על זה עם מי שצריך לדבר על זה (:

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

מצטערים, אינך יכול/ה להגיב לנושא זה.
נושא זה נעול.

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה