עבור לתוכן

בעיה בתרגיל בJAVA

Featured Replies

פורסם

יש לי בעיה בתרגיל JAVA תרגיל מס' 9 מהשאלון של 2006

זה התרגיל:

נתון מערך דו מימדי שאיבריו הם 1,0

רצף של איברים בשורה או עמודה שמכילים את הספרה 1 הוא שרשרת אורך השרשרת הוא מס' האיברים שמכילים את הספרה 1

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

יש לספור את מס' האיברים המוקפים

אני פתרתי את התרגיל ככה:

 import jeliot.io.*;

public class MyClass {
public static void main() {
int [][]a= new int [10][10];
int sumr=0;
int sumc=0;
int count=0;
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a[i].length; j++)
{
a[i][j]=Input.nextInt();
}
}
for (int i=0; i<a.length; i++)
{
sumr=sumr+a[i][j];
}
for (int j=0; j<a[i].length; j++)
{
sumc=sumc+a[i][j];
}
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a[i].length; j++)
{
if (a[i][j]==1&& sumr==sumc)
{
count++;
}
}
}
System.out.println ("in the array"+count+"eivarim mokafim");


}
}

אני פתרתי את התרגיל ככה סכמתי סכום של כל שורה לאחר מכן סכמתי כל עמודה ובסוף אני בודק אם האיבר שווה ל1 וגם הסכום שורה של ה-I של אותו איבר שווה לסכום העמודה של ה-J אבל אני חושב שעשיתי את זה לא נכון

אני אשמח לעזרה תודה

פורסם

קודם כל, sumr ו-sumc הם int, אבל אתה מתייחס אליהם כמערכים בחלק מהמקומות.

חוץ מזה, אתה בכלל לא מתייחס לשרשראות.

פורסם
  • מחבר

תיקנתי את זה

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

פורסם

אבל שרשרת היא רצף של איברים. יענו 0110101 זה לא שרשרת (יש שם רק שרשרת באורך של 2 אחדות).

פורסם
  • מחבר

ובמה זה שונה ממה שעשיתי?

פורסם

פשוט סכמת. התייחסת ל-0110101 כשרשרת באורך 4, וזה לא נכון.

פורסם
  • מחבר

צודק זה התרגיל המתוקן:

 import jeliot.io.*;

public class MyClass {
public static void main() {
int [][]a= new int [10][10];
int sumr=0;
int sumc=0;
int count=0;
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a[i].length; j++)
{
a[i][j]=Input.nextInt();
}
}
for (int i=0; i<a.length; i++)
{
if ((a[i][j]==1)&&a[i+1][j+1]==1))
{
sumr=sumr+a[i][j];
}
}
for (int j=0; j<a[i].length; j++)
{
if ((a[i][j]==1)&&a[i+1][j+1]==1))
{
sumc=sumc+a[i][j];
}
}
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a[i].length; j++)
{
if (a[i][j]==1&& sumr==sumc)
{
count++;
}
}
}
System.out.println ("in the array"+count+"eivarim mokafim");


}
}

פורסם

יש דבר שנקרא אינדנטציה כדאי להשתמש בו על מנת להגביר את קריאות הקוד .

פורסם

יש דבר שנקרא אינדנטציה כדאי להשתמש בו על מנת להגביר את קריאות הקוד .

ולמען שיבינו הוא מתכוון לריווח(מלשון רווחים, spaces)

ובסביבות פיתוח מתקדמות יחסית זה נעשה כמעט אוטומטי ו\או ע"י צירוף מקשים כלשהו.

פורסם

נכון בעברית זה הזחה

:xyxthumbs:

.....

....

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים