import javax.swing.*;
public class Exer38 {
/*
39) Desenvolva uma classe com um método que vasculhe uma matriz de números inteiros em busca de um número
procurado. O retorno, caso ele seja encontrado, será a linha da matriz em que ele se encontra;
caso ele não exista na
matriz, o valor retornado será -1. Sua assinatura seria int metodo (int matriz [ ][ ], int procurado).
*/
public static void main(String args[])
{
int nLinhas, nColunas;
int matriz[][];
String aux;
String saida = "" ;
aux = JOptionPane.showInputDialog(null, "Quantas linhas?", "Matriz", JOptionPane.QUESTION_MESSAGE);
nLinhas = Integer.parseInt(aux);
aux = JOptionPane.showInputDialog(null, "Quantas colunas?", "Matriz", JOptionPane.QUESTION_MESSAGE);
nColunas = Integer.parseInt(aux);
matriz = new int[nLinhas][nColunas];
for (int l = 0; l < matriz.length; l++)
{
for (int c = 0; c < matriz[0].length; c++)
{
aux = JOptionPane.showInputDialog(null, "Qual o elemento da Linha " + (l+1) + " e coluna " + (c+1), "Matriz", JOptionPane.QUESTION_MESSAGE);
matriz[l][c] = Integer.parseInt(aux);
}
}
}
}
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
System.out.print(matriz[l][c] + " "); //imprime caracter a caracter
}
System.out.println(" "): //muda de linha
}
[code] for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
// imprime elemento a elemento pra que essa String vazia ?
System.out.print(matriz[l][c] + " “); //imprime caracter a caracter
}
/// essa linha abaixo serve para mudar de linha
// String vazia ?
System.out.println(” ");
//muda de linha
}
pq assim não funciona ???
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
JOptionPane.showMessageDialog(null,matriz[l][c] + " "); //imprime caracter a caracter
}
JOptionPane.showMessageDialog(null," ");
//muda de linha
}
[/code]
No System.out.print(" ") a String não está vazia, e sim com um espaço em branco
que serve para deixar todos os elementos de uma mesma linha separados.
O System.out.println(" ") imprime o que for passado e quebra linha, então nesse caso não precisaria ser passada
essa String.
Por que se for ele não será compatível com o argumento esperado pelo
método JOptionPane.showMessageDialog.
Deixa eu ver se entendi.
Você criou um método void impi(int[][] matriz) que imprime
o conteúdo da matriz usando os prints (assim como nos exemplos acima)
e quer colocar essa saída gerada por este
método dentro da janela de mensagem ?
JOptionPane.showMessageDialog ( null , impi(matriz) );
}
public static void impi (int matriz [][ ] ){
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
saida = saida + matriz[l][c] ; //imprime caracter a caracter
}
saida =saida +"\n"; //muda de linha
}
System.out.println ( saida );
}
no caso então o JOption.e o system.out.println o argumento deles não pode ser um metodo void…
no caso aki em baixo pq não funciona ?
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
JOptionPane.showMessageDialog(null,matriz[l][c] + " "); //imprime caracter a caracter
}
JOptionPane.showMessageDialog(null," ");
//muda de linha
}
public class Exer38 {
/*
39) Desenvolva uma classe com um método que vasculhe uma matriz de números inteiros em busca de um número
procurado. O retorno, caso ele seja encontrado, será a linha da matriz em que ele se encontra;
caso ele não exista na
matriz, o valor retornado será -1. Sua assinatura seria int metodo (int matriz [ ][ ], int procurado).
*/ static String saida = “” ;
public static void main(String args[])
{
int nLinhas, nColunas;
int matriz[][];
String aux;
aux = JOptionPane.showInputDialog(null, "Quantas linhas?", "Matriz", JOptionPane.QUESTION_MESSAGE);
nLinhas = Integer.parseInt(aux);
aux = JOptionPane.showInputDialog(null, "Quantas colunas?", "Matriz", JOptionPane.QUESTION_MESSAGE);
nColunas = Integer.parseInt(aux);
matriz = new int[nLinhas][nColunas];
for (int l = 0; l < matriz.length; l++)
{
for (int c = 0; c < matriz[0].length; c++)
{
aux = JOptionPane.showInputDialog(null, "Qual o elemento da Linha " + (l+1) + " e coluna " + (c+1), "Matriz", JOptionPane.QUESTION_MESSAGE);
matriz[l][c] = Integer.parseInt(aux);
}
}
JOptionPane.showMessageDialog ( null , impi(matriz) );
}
public static String impi (int matriz [][ ] ){
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[0].length; c++) {
saida = saida + matriz[l][c] ; //imprime caracter a caracter
}
saida =saida +"\n"; //muda de linha
}
return saida ;
String saida=""; // Cria e inicializa uma String
for(int linha=0;linha<matriz.length;linha++){ //for para percorrer as linhas da matriz
for(int coluna=0;coluna<matriz[0].length;coluna++){ //percorrer as colunas
//guardando na String cada elemento separado por um espaço
saida= saida +matriz[linha][coluna] + " ";
}
saida = saida + "\n"; // Guarda uma quebra de linha na String
}
return saida; //retorna a String