Java - tablica dwuwymiarowa (wypełnianie)

ŚwIeRsZcZ
Użytkownik
Użytkownik
Posty: 232
Rejestracja: 8 paź 2006, o 16:21
Płeć: Mężczyzna
Lokalizacja: Wawa
Podziękował: 121 razy
Pomógł: 1 raz

Java - tablica dwuwymiarowa (wypełnianie)

Post autor: ŚwIeRsZcZ »

Witam ! Mam napisać coś takiego:

Napisz program, który:

1. Wypełni dwuwymiarową tablicę zerami. Wymiary tablicy mają być przechowywane na zmiennych, aby umożliwić łatwą ich modyfikację.
2. Niektóre komórki wypełni jedynkami (liczba tych komórek również będzie przechowywana na zmiennej).
Sposobem interakcyjnym: w pętli pobieramy od użytkownika indeksy komórek, które zostaną wypełnione jedynkami,

ZA pomoc z góry dziękuje +++
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

Java - tablica dwuwymiarowa (wypełnianie)

Post autor: smiechowiec »

Kod: Zaznacz cały

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  
  public Main() {
  }
  
  public static int [][] generujtablicezer(int ix, int iy) {
    int tablica[][] = new int[ix][iy];
    for(int i = 0; i < ix; i++)
      for(int j = 0; j < iy; j++)
        tablica[i][j] = 0;
    return tablica;
  }
  
  public static void main(String[] args) {
    int ix = 10; // I wymiar
    int iy = 10; // II wymiar
    BufferedReader we = new BufferedReader(new InputStreamReader(System.in)); // Bufor odczytu
    String s = null;
    String s2[] = new String[2]; // Dwie wartości jako index komórki
    int tablica[][] = generujtablicezer(ix, iy);
    
    // Zadanie I
    System.out.println("Podaj rozmiar tablic x,y - dwie liczby całkowite przedzielone przecinkiem.");
    int ilicznikjedynek = 0;
    int i, j;
    try {
      s = we.readLine();
      if ((s != null) && (!s.equals(""))) {
        s2 = s.split(",");
        ix = new Integer(s2[0].trim());
        iy = new Integer(s2[1].trim());
        tablica = generujtablicezer(ix, iy);
      }
    } catch (IOException ex) {
      ex.printStackTrace();
    } 
    
    wypisztablice(tablica);
    
    // Zadanie II
    System.out.println("Podaj indeksy komórek w postaci x,y - dwie liczby całkowite przedzielone przecinkiem.");
    System.out.println("Wartości tablicy dla podanych wartości zostaną ustawione na 1");
    do {
      try {
        s = we.readLine();
        if ((s != null) && (!s.equals(""))) {
          s2 = s.split(",");
          i = new Integer(s2[0].trim());
          j = new Integer(s2[1].trim());
          tablica[i][j] = 1;
          ilicznikjedynek++;  // zwiększamy liczbę ustawionych punktów
        }
      } catch (IOException ex) {
        ex.printStackTrace();
      }
    } while ((s != null) && (!s.equals("")));
    wypisztablice(tablica);
    System.out.println("Liczba ustawionych wartości na 1 wynosi " + ilicznikjedynek);
  }
  
  private static void wypisztablice(int[][] tablica) {
    for(int i = 0; i < tablica.length; i++) {
      for(int j = 0; j < tablica[i].length; j++) {
        System.out.print(tablica[i][j] + "	");
      }
      System.out.println("");
    }
    System.out.println("");
  }  
}
Przykład wywołania

Kod: Zaznacz cały

java -jar "test.jar"
Podaj rozmiar tablic x,y - dwie liczby całkowite przedzielone przecinkiem.
4,4
0       0       0       0
0       0       0       0
0       0       0       0
0       0       0       0

Podaj indeksy komórek w postaci x,y - dwie liczby całkowite przedzielone przecinkiem.
Wartości tablicy dla podanych wartości zostaną ustawione na 1
1,1
2,2
3,3

0       0       0       0
0       1       0       0
0       0       1       0
0       0       0       1

Liczba ustawionych wartości na 1 wynosi 3
ODPOWIEDZ