Jump to content
barras

Trabalho Java

Recommended Posts

barras

Boas!

Tenho um trabalho para fazer mas eu simplesmente não consigo descobrir como fazer e já me ando a passar com isto.

O programa deve começar por obter a dimensão do sistema (nº de linhas) e os nós de cada linha,

considerando que um nó fechado é representado por um 0 e um nó aberto é representado por um 1

(possivelmente na mesma linha apenas separados por espaços). Depois deve apresentar os seguintes dados

relativos ao sistema:

• se o sistema é permeável na vertical

• se o sistema é permeável

Além disso, em ambos os casos, o programa deve mostrar os nós que são “inundáveis” (os nós marcados a

cinzento nas figuras acima). Para representar os nós inundáveis pode de novo usar 0’s e 1’s: 0’s para os não

inundáveis e 1’s para os inundáveis.

Eis uma possível interacção com o vosso programa (a itálico apresenta-se o texto introduzido pelo

utilizador):

Dimensao do sistema, sff: 5

Linha 1 : 1 0 0 1 1

Linha 2 : 1 0 1 1 0

Linha 3 : 0 1 1 0 1

Linha 4 : 1 0 1 1 0

Linha 5 : 1 0 0 1 1

O sistema não é permeável na vertical >>

1 0 0 1 1

1 0 0 1 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

O sistema é permeável >>

1 0 0 1 1

1 0 1 1 0

0 1 1 0 0

0 0 1 1 0

0 0 0 1 1

import java.util.Scanner;
import java.io.*;

public class Main {

    public static void main(String [] args) {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Insira a dimensao do sistema: ");
int[] dim = new int[1];
try{
    dim = lerInteiro(br, 1, 0);
}
catch(IOException e){
}
        int dimensao = dim[0];

int[][] matriz;
matriz = lerArray(br, dimensao);

for(int i = 0; i < matriz.length; i++){
    for(int j = 0; j < matriz[0].length; j++){
System.out.print(matriz[i][j]);
    }
System.out.println();
}
int[][] inundados = new int[dimensao][dimensao];

permVertical(0, 0, inundados);
for(int i = 0; i< inundados.length; i++) {
    for(int j = 0; j< inundados[0].length; j++) {
	System.out.println(inundados[i][j]);
}
}

    }

    private static int[][] lerArray(BufferedReader br, int dim) {

int[][] input = new int[dim][];

for(int i = 0; i < input.length; i++){
System.out.print("Insira a linha numero " + i + ": ");
try{
    input[i] = lerInteiro(br, dim, 0);
}
catch(IOException e){
}
}
return input;
    }

    private static int[] lerInteiro(BufferedReader br, int dim, int n) throws IOException {
int linvalida = 0;
String linha = br.readLine();

if(linha == null){
    System.out.println("Linha invalida! Insira de novo.");
}

Scanner scn = new Scanner(new StringReader(linha));

int[] nos = new int[dim];

for(int i = 0; i < nos.length; i++){
    if(scn.hasNextInt()){
       nos[i] = scn.nextInt();
       linvalida = i;
    }
    else{
	System.out.println("Linha invalida! Insira de novo.");
	linvalida = i;
	return lerInteiro(br, dim, linvalida - 1);
    }
}
if(scn.hasNextInt()){
    System.out.println("Linha invalida! Insira de novo.");
    return lerInteiro(br, dim, linvalida - 1);
}

return nos;
    }

    private static void permVertical(int i, int j, int[][] inundados) {
if(inundados[i][j] == 1 && i < inundados.length && j < inundados[0].length) {
    if(i > 0 && inundados[i-1][j] == 0){
	inundados[i][j] = 0;
                permVertical(i + 1,j,inundados);
    else
                inundados[i][j] = 0;
                permVertical(i,j+1,inundados);
}
}

    private static void permeavel(int i, int j, int[][] inundados) {

}
}

Gostava que pudessem ajudar-me na resolução porque tenho de entregar até amanhã.  :wallbash:

Share this post


Link to post
Share on other sites
M6

barras, se tens dúvidas concretas de Java e/ou algoritmia, coloca-as de forma clara nas secções próprias e certamente haverá quem te ajude.

Mas se achas que por colocares um enunciado e um bocado de código Java o teu trabalho vai aparecer feito de forma milagrosa vais apanhar uma enorme decepção...


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
barras

Obrigado pelo conselho mas eu não quero que me façam as coisas, quero que me expliquem os erros, que são coisas diferentes. Agora não me serve de nada... Obrigado pela ajuda  :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.