Você está na página 1de 3

Lista de Exercícios 2 – Arrays e Arquivos

As

1. Desenvolva o programa abaixo, utilizando matrizes.


a) Escreva um método que ao receber como parâmetro os valores: quantidade de linhas, quantidade de colunas, valor mínimo
e valor máximo, retorne uma matriz dinâmica de dimensão (linha x coluna) já preenchida com valores inteiros aleatórios
entre minimo e maximo inclusive.
b) Faça outro método que ao receber a matriz dinâmica gerada no item a), retorne true se a matriz for majoritária e false caso
contrário. Uma matriz é dita majoritária caso a ocorrência de um determinado valor seja maior que a metade de sua
dimensão (linha x coluna).

2. O Bingo é um jogo de azar, onde bolas numeradas são colocadas dentro de um globo e sorteadas uma a uma. Os números
sorteados devem ser marcados em cartelas aleatórias, geralmente com 24 números aleatórios e não repetidos dispostos no
formato de matriz com 5 colunas e 5 linhas, com o elemento coringa localizado no centro da matriz. Para facilitar a localização
dos mesmos, quando sorteados, cada coluna possui uma faixa de 15 valores sequenciais, ou seja, uma coluna para os números
de 1 a 15, uma outra para os números de 16 a 30, outra para os números de 31 a 45, e dai por diante, até o número 75, na
maioria dos bingos. Tradicionalmente, os vencedores são aqueles que completam primeiramente uma linha ou uma coluna ou
aquele que fechar (ou seja, completar todos os números) a cartela.

Desenvolva um programa completo em Java para simular um jogo do Bingo. O programa deve gerar números entre 0 e 75 e
conferir cinco cartelas geradas previamente, verificando a cada jogada se há cartelas vencedoras, ou seja se conseguiram
preencher sequencias na diagonal, vertical, horizontal. O jogo termina quando uma cartela é totalmente preenchida (cartela
cheia). Para facilitar o desenvolvimento, desenvolva os seguintes métodos estáticos:

a) int[][] geraCartela(): que retorna uma cartela 5x5 já preenchida (matriz 5x5). Represente o coringa com o valor
zero.
b) boolean verificaDiagonal(int cartela[][], int sorteados[]): recebe uma cartela e verifica se esta está
preenchida (sorteada) em uma das diagonais, comparando-a com um vetor de números sorteados, também recebido
como parâmetro. Retorna verdadeiro ou falso.
c) boolean VerificaHorizontal(int cartela[][], int sorteados[]): recebe uma cartela e verifica se esta está
preenchida na horizontal, comparando-a com um vetor de números sorteados, também recebido como parâmetro. Retorna
verdadeiro ou falso
d) boolean VerificaVertical(int cartela[][], int sorteados[]): recebe uma cartela e verifica se esta está
preenchida na vertical, comparando-a com um vetor de números sorteados, também recebido como parâmetro. Retorna
verdadeiro ou falso
e) boolean VerificaCartelaCheial(int cartela[][],int sorteados[]):recebe uma cartela e verifica se esta
está preenchida totalmente, comparando-a com um vetor de números sorteados, também recebido como parâmetro.
Retorna verdadeiro ou falso
f) void SorteiaNumero(int sorteados[]); insere no vetor de sorteados, mais um número aleatório não repetido.
g) void MostraSorteados(int sorteados[]): apresenta todos os números sorteados
h) void MostraCartela(cartela[][]): apresenta a cartela na disposição de uma matriz 5x5.

O método principal (main()) deve controlar todo jogo, informando a cada partida a situação de 5 cartelas mediante os
números sorteados:

int cart1[][], cart2[][], cart3[], cart4[],cart5[][];


boolean sorteados=new boolean[75];
cart1=geraCartela(); cat2=geraCartela(); … 10 numeros sorteados: 3 43 5 66 11 22 8 56 31 44
while(…) cartela 1: horizontal preenchida
3 22 31 56 66
{ sorteiaNumero(sorteados);
4 24 34 58 62
mostraSorteados(sorteados); 9 19 00 60 67
if(verificaDiagonal(cart1)){ ... } 1 28 40 55 75
if(verificaHorizontal(cart1) { ... } 7 26 38 54 71
cartela 2: ...
...
MostraCartela(cart1); ...
}
3. Faça um método estático que recebe como parâmetro o nome de um arquivo fonte em Java. O método deverá abrir
o arquivo e verificar se para toda sequência de abertura de bloco (“{“) há uma sequência de fechamento de bloco
(“}”). O método deverá retornar verdadeiro ou falso.

4. Converta o arquivo cidades.txt disponível no Aprender em um arquivo html 5 de forma que cada cidade apareça em
um parágrafo. Deve ser inserido um título a cada troca de iniciais do nome. Teste no navegador:

Adamantina <!DOCTYPE html>


Adolfo <html lang="pt-br">
<head>
Aguai <title>Cidades do Estado de São Paulo</title>
Aguas da Prata </head>
Aguas de Lindoia <body>
Aguas de Santa Barbara <h1>A</h1>
<p> Adamantina </p>
Aguas de Sao Pedro <p> Adolfo </p>
Agudos <p> Aguai </p>
Alambari <p> Aguas da Prata</p>
Alfredo Marcondes <p> Aguas de Lindoia</p>
Altair ...
<h1>B</h1>
Altinopolis
<p>Bady Bassitt </p>
Alto Alegre ...
</body>
</html>

Abra automaticamente o arquivo html gerado com o seguinte código:

try{
Desktop.getDesktop().open(new File("cidades.html"));
}catch(Exception e){System.out.println(e);}

5. Desenvolva um programa para enumerar um arquivo fonte em Java. O programa deverá ler o nome um arquivo-
fonte Java válido e copiá-lo com numeração de linhas para outro arquivo com o mesmo nome, concatenado com a
extensão <.enum>.
livro.java livro.java.enum

import java.io.*; 1 import java.io.*;

class livro 2 class livro

{ 3 {

public String autor; 4 public String autor;


public String titulo; 5 public String titulo;

4. O código fonte abaixo utiliza a classe File para realizar uma busca exaustiva por arquivos com a extensão .java a
partir de uma pasta qualquer e suas sub-pastas. A solução implementa recursividade. Entenda este código fonte e
faça alterações necessárias para que o usuário informe a parte do nome de um arquivo e programa liste todos os
arquivos que possuem em seu nome tal palavra-chave. Por exemplo, se o usuário fornecer o nome “prog”, ele deve
listar todos os arquivos a partir de uma pasta que tenha “prog“ no nome, por exemplo: programa.java, PROG1.CPP,
meuPrograma.JS, etc...
Obs: alguns computadores não rodam esse código na unidade C:\ (Raiz), portanto teste a partir de uma pasta.

Você também pode gostar