Para efeitos da nota atribuída à resolução de exercícios ao longo do semestre, os exercícios que pode submeter desta aula são:
Prazo de submissão: 29 de Outubro (submeter no Mooshak de EDados)
É encorajado que vão falando com os docentes e outros colegas se tiverem dificuldades. No entanto, qualquer ajuda mais direta que tenham recebido de outros colegas deve ser reconhecida nos comentário do programa que submetem.
Depois do prazo os problemas continuarão disponíveis no Mooshak, mas as submissões não contarão para a sua nota.
Cada aula vale 11% da nota desta componente. Como existem 11 aulas com submissões, pode ter pontuação máxima mesmo sem ter feito tudo.
Para um problema contar tem acertar todos os testes (ou seja, ter accepted). Mesmo que resolva todos os problemas, o máximo numa aula é de 100%.
Para ter 100% bastará sempre resolver os exercícios do guião principal.
/* ----------------------------------- Estruturas de Dados 2024/2025 Jogo da Vida [ED088] ----------------------------------- */ import java.util.Scanner; // Classe para representar um jogo class Game { final char DEAD = '.'; // Constante que indica uma celula morta final char ALIVE = 'O'; // Constante que indica uma celula viva private int rows, cols; // Numero de linhas e colunas private char m[][]; // Matriz para representar o estado do jogo // Construtor: inicializa as variaveis tendo em conta a dimensao dada Game(int r, int c) { rows = r; cols = c; m = new char[r][c]; } // Metodo para ler o estado inicial para a matriz m[][] public void read(Scanner in) { for (int i=0; i<rows; i++) m[i] = in.next().toCharArray(); } // Metodo para escrever a matriz m[][] public void write() { // ... por completar } // Deve devolver o numero de celulas vivas que sao vizinhas de (y,x) private int countAlive(int y, int x) { int count = 0; // ... por completar return count; } // Deve fazer uma iteracao: cria nova geracao a partir da actual public void iterate() { // ... por completar } } // Classe principal com o main() public class ED088 { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Ler linhas, colunas e numero de iteracoes int rows = in.nextInt(); int cols = in.nextInt(); int n = in.nextInt(); // Criar objecto para conter o jogo e ler estado inicial Game g = new Game(rows, cols); g.read(in); //... por completar } }
Neste exercício a ideia é tentar resolver o problema de forma organizada e estruturada sozinho. O problema em questão é o [ED015] Sopa de Letras que também disponível no Mooshak.
Espreite o método main para ver como as imagens da janela foram geradas. Como referência, e se necessário, pode consultar a documentação da classe StdDraw.
A ideia deste exercício vai ser criar uma classe para Turtle Graphics, um termo que designa um tipo de criação de desenhos usando um "cursor" que vai "andando" por um plano. A ideia é portanto desenhar num plano cartesiano (com tamanho a ser dado na construção do objecto) e ter um "cursor", a tartaruga, com uma dada posição e orientação, sendo possível andar na direção actual e ter um lápis que pode estar ou não levantado.
forward 50 rotate 90 penUp forward 100 rotate 20 penDown forward 30