powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Где я ошиблась
22 сообщений из 22, страница 1 из 1
Где я ошиблась
    #39678691
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Matrix:
[ 12 2 0
1 11 0
0 0 0 ]
Matrix:
[ 120 120 120 120 0
120 120 120 120 0
120 120 120 120 0
120 120 120 120 0
0 0 0 0 0 ]

Почему остальные ячейки показывают цифру 0

вот код -
Matrix m1 = new Matrix(3, 3);
MatrixUtils.fillByRandom(m1);
System.out.println(m1.toString());

Matrix m2 = new Matrix(5, 5);
MatrixUtils.fillByNumber(m2, 120);
System.out.println(m2.toString());

----------------------------------
public class MatrixUtils {

public static void fillByRandom(Matrix m) {
int rowCount = m.getRowCount();
int colCount = m.getColCount();
Random random = new Random();
for (int i = 0; i < rowCount; i++) {

for (int j = 0; j < colCount; j++) {
try{
m.put(i, j, random.nextInt(20));
}
catch(MatrixIndexException e){

}

}
}
}

public static void fillByNumber(Matrix m, int number) {
int rowCount = m.getRowCount();
int colCount = m.getColCount();

for (int i = 0; i < colCount; i++) {

for (int j = 0; j < rowCount; j++) {
try {
m.put(i, j, number);
}
catch(MatrixIndexException e) {

}
}

}
}

}
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678695
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы там в блокноте что ли печатаете :) Используйте форматирование, даже нотпад++ вроде есть плагин для форматирования кода.
И оформляйте с теками код, а то даже такой короткий код, невозможно понять.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public class MatrixUtils {

    public static void fillByRandom(Matrix m) {
        int rowCount = m.getRowCount();
        int colCount = m.getColCount();
        Random random = new Random();
        for (int i = 0; i < rowCount; i++) {

            for (int j = 0; j < colCount; j++) {
                try {
                    m.put(i, j, random.nextInt(20));
                } catch (MatrixIndexException e) {

                }

            }
        }
    }

    public static void fillByNumber(Matrix m, int number) {
        int rowCount = m.getRowCount();
        int colCount = m.getColCount();

        for (int i = 0; i < colCount; i++) {

            for (int j = 0; j < rowCount; j++) {
                try {
                    m.put(i, j, number);
                } catch (MatrixIndexException e) {

                }
            }

        }
    }
}

...
Рейтинг: 0 / 0
Где я ошиблась
    #39678697
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,

не подскажите где я ошиблась
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678698
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,

буду вам благодарна)
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678709
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaNixic,

не подскажите где я ошиблась
Нигде, всё норм, это у вас где-то в другом месте, потому что вот так всё нормально, тот же цикл в цикле всё нормально выводит.
Дебажьте. Скачайте IDEA она для вас бесплатна.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
import java.util.Random;

public class MatrixUtils {
  
    public static void fillByNumber(Integer m, int number) {
        int rowCount = m;
        int colCount = m;
        for (int i = 0; i < colCount; i++) {
            for (int j = 0; j < rowCount; j++) {
                    System.out.println("i:" + i + ", j: " + j + " " + number);
            }
        }
    }

    public static void main(String[] args) {
        MatrixUtils.fillByNumber(5, 120);
    }

}

...
Рейтинг: 0 / 0
Где я ошиблась
    #39678711
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю)
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678821
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaNixic,

не подскажите где я ошиблась
Смотря что вы хотели. Если просили вам не подсказывать, то все правильно. А иначе ошибка в "не подскажите".

nastyaaчто вы так грубо со мной) я же только учусь Если вы хотите научиться, начните с того, что сами будете решать текущие простые проблемки, а не создавать топик для дистанционно отладки вашей учебной задачки. К тому же - не приведя ВЕСЬ код. Полбзуясь моими телепатическими способностями - ошибка в классе Matrix.java.
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678827
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пылинка,

не подскажите где)

*/
public class Matrix {
private int rowCount;
private int colCount;
private int[][] data;





Matrix(int [][] a){

}

Matrix(int row, int col) {

this.rowCount = row;
this.colCount = col;
data = new int[row][col];
}

Matrix(Matrix matrix) {

this.rowCount = matrix.getRowCount();
this.colCount = matrix.getColCount();
data = new int[rowCount][colCount];

for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
data[i][j] = matrix.data[i][j];
}
}
}

public int get(int i, int j) throws MatrixIndexException {
if (i < 1 || i > rowCount)
throw new MatrixIndexException("Недопустимое число строк: " + i);
if (j < 1 || j > colCount)
throw new MatrixIndexException("Недопустимое число столбцов: " + j);



return data[i-1][j-1];
}

void put(int i, int j, int value) throws MatrixIndexException{
if (i < 1 || i > rowCount)
throw new MatrixIndexException("Недопустимое число строк: " + i);
if (j < 1 || j > colCount)
throw new MatrixIndexException("Недопустимое число столбцов: " + j);

data[i-1][j-1] = value;
}

public int getRowCount() {
return rowCount;
}

public int getColCount() {
return colCount;
}

@Override
public boolean equals(Object obj) {
Matrix m = (Matrix) obj;

if (m.getRowCount() != rowCount || m.getColCount() != colCount) {
return false;
}

for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
if (data[i][j] != m.data[i][j]) {
return false;
}
}
}

return true;
}

@Override
public String toString() {
StringBuilder out = new StringBuilder();
out.append("Matrix:\n[ ");
for (int i = 0; i < rowCount; i++) {
if (i != 0) {
out.append("\n");
out.append(" ");
}
for (int j = 0; j < colCount; j++) {
out.append(data[i][j]);
if (j == colCount - 1) continue;
for (int k = 0; k < getMaxLength() - getIntLength(data[i][j]) + 2; k++) {
out.append(" ");
}
}
}
out.append(" ]");
return out.toString();
}

private int getMaxLength() {
int max = Integer.MIN_VALUE;
for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
int k = data[i][j];
if (k > max) {
max = k;
}
}
}
return getIntLength(max);
}

private int getIntLength(int i) {
return String.valueOf(i).length();
}



}
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678835
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,

здесь какая та ошибка из за этого тот цикл не работает не подскажите где я не правильно все написала

*/
public class Matrix {
private int rowCount;
private int colCount;
private int[][] data;





Matrix(int [][] a){

}

Matrix(int row, int col) {

this.rowCount = row;
this.colCount = col;
data = new int[row][col];
}

Matrix(Matrix matrix) {

this.rowCount = matrix.getRowCount();
this.colCount = matrix.getColCount();
data = new int[rowCount][colCount];

for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
data[i][j] = matrix.data[i][j];
}
}
}

public int get(int i, int j) throws MatrixIndexException {
if (i < 1 || i > rowCount)
throw new MatrixIndexException("Недопустимое число строк: " + i);
if (j < 1 || j > colCount)
throw new MatrixIndexException("Недопустимое число столбцов: " + j);



return data[i-1][j-1];
}

void put(int i, int j, int value) throws MatrixIndexException{
if (i < 1 || i > rowCount)
throw new MatrixIndexException("Недопустимое число строк: " + i);
if (j < 1 || j > colCount)
throw new MatrixIndexException("Недопустимое число столбцов: " + j);

data[i-1][j-1] = value;
}

public int getRowCount() {
return rowCount;
}

public int getColCount() {
return colCount;
}

@Override
public boolean equals(Object obj) {
Matrix m = (Matrix) obj;

if (m.getRowCount() != rowCount || m.getColCount() != colCount) {
return false;
}

for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
if (data[i][j] != m.data[i][j]) {
return false;
}
}
}

return true;
}

@Override
public String toString() {
StringBuilder out = new StringBuilder();
out.append("Matrix:\n[ ");
for (int i = 0; i < rowCount; i++) {
if (i != 0) {
out.append("\n");
out.append(" ");
}
for (int j = 0; j < colCount; j++) {
out.append(data[i][j]);
if (j == colCount - 1) continue;
for (int k = 0; k < getMaxLength() - getIntLength(data[i][j]) + 2; k++) {
out.append(" ");
}
}
}
out.append(" ]");
return out.toString();
}

private int getMaxLength() {
int max = Integer.MIN_VALUE;
for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < colCount; j++) {
int k = data[i][j];
if (k > max) {
max = k;
}
}
}
return getIntLength(max);
}

private int getIntLength(int i) {
return String.valueOf(i).length();
}



}
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678841
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaa
Используй теги и предварительный просмотр, Лю..., тьфу - Настя
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
 */
    public class Matrix {
    private int rowCount;
    private int colCount;
    private int[][] data;
    
    
    
    
    
    Matrix(int [][] a){
        
    }

    Matrix(int row, int col) {
        
        this.rowCount = row;
        this.colCount = col;
        data = new int[row][col];
    }

    Matrix(Matrix matrix) {  
        
        this.rowCount = matrix.getRowCount();
        this.colCount = matrix.getColCount();
        data = new int[rowCount][colCount];

        for (int i = 0; i < rowCount; i++) {
            for (int j = 0; j < colCount; j++) {
                data[i][j] = matrix.data[i][j];
            }
        }
    }

    public int get(int i, int j) throws MatrixIndexException {
         if (i < 1 ||  i > rowCount)
            throw new MatrixIndexException("Недопустимое число строк: " + i);
         if (j < 1 || j > colCount)
            throw new MatrixIndexException("Недопустимое число столбцов: " + j);
         
 

        return data[i-1][j-1];
    }

    void put(int i, int j, int value) throws MatrixIndexException{
         if (i < 1 ||  i > rowCount)
            throw new MatrixIndexException("Недопустимое число строк: " + i);
         if (j < 1 || j > colCount)
            throw new MatrixIndexException("Недопустимое число столбцов: " + j);
       
         data[i-1][j-1] = value;
    }

    public int getRowCount() {
        return rowCount;
    }

    public int getColCount() {
        return colCount;
    }

    @Override
    public boolean equals(Object obj) {
        Matrix m = (Matrix) obj;

        if (m.getRowCount() != rowCount || m.getColCount() != colCount) {
            return false;
        }

        for (int i = 0; i < rowCount; i++) {
            for (int j = 0; j < colCount; j++) {
                if (data[i][j] != m.data[i][j]) {
                    return false;
                }
            }
        }

        return true;
    }

    @Override
    public String toString() {
        StringBuilder out = new StringBuilder();
        out.append("Matrix:\n[ ");
        for (int i = 0; i < rowCount; i++) {
            if (i != 0) {
                out.append("\n");
                out.append("  ");
            }
            for (int j = 0; j < colCount; j++) {
                out.append(data[i][j]);
                if (j == colCount - 1) continue;
                for (int k = 0; k < getMaxLength() - getIntLength(data[i][j]) + 2; k++) {
                    out.append(" ");
                }
            }
        }
        out.append("  ]");
        return out.toString();
    }

    private int getMaxLength() {
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < rowCount; i++) {
            for (int j = 0; j < colCount; j++) {
                int k = data[i][j];
                if (k > max) {
                    max = k;
                }
            }
        }
        return getIntLength(max);
    }

    private int getIntLength(int i) {
        return String.valueOf(i).length();
    }

   
    
}

ЧАВО: Как оформить сообщение
...
Рейтинг: 0 / 0
Где я ошиблась
    #39678843
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

спасибо) можете посмотреть где я ошиблась)
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679094
BlackTomcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

Код: java
1.
2.
3.
4.
5.
...
} catch(MatrixIndexException e){
  System.out.println("Где-то я ошиблась. " + e.getMessage();
}
...
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679104
BlackTomcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Черт, скобку пропустил...

Код: java
1.
2.
3.
4.
5.
...
} catch(MatrixIndexException e){
  System.out.println("Где-то я ошиблась. " + e.getMessage());
}
...
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679252
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaBasil A. Sidorov,
спасибо) можете посмотреть где я ошиблась)
В чем код пишете? Какая программа?
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679364
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,
netbeans
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679373
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackTomcat,
извините все так же по прежнему выводит нули
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679380
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaNixic,
netbeans
Там есть режим дебага, в курсе что это и как работает?
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679462
BlackTomcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaaBlackTomcat,
извините все так же по прежнему выводит нули

И что, больше ничего не выводит?
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679549
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackTomcat,
Манагера помогаете растить?
...
Рейтинг: 0 / 0
Где я ошиблась
    #39679758
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПылинкаBlackTomcat,
Манагера помогаете растить?
кто-то же должен xml в json и обратно переводить)) с дтошками громадными разбираться)
...
Рейтинг: 0 / 0
Где я ошиблась
    #39684170
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackTomcatnastyaaBlackTomcat,
извините все так же по прежнему выводит нули

И что, больше ничего не выводит?
в последней строке нули ж, а ошибка - это не ошибка типа эксепшн, а баг, траем не ловится)
...
Рейтинг: 0 / 0
Где я ошиблась
    #39684329
BlackTomcat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Korcar,

Траем ловится MatrixIndexException, который должен вывалиться, если передавать в сеттер нули. А если его не подавлять, а выводить на печать, то это должно навести на мысль, что матрица поддерживает индексацию с 1, а ее пытаются заполнять с нуля. Отсюда и нули в последней строке (она просто не заполнялась).
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Где я ошиблась
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]