Linguagem de Programação - LCC - 2015.1

Grupo da Disciplina: Clique aqui

Plano de Ensino: Acesse o Sigaa.

Horário: Terça 8h-9h40 e Quinta:9h50-11h30

Horários dos monitores e tutores: Clique aqui.

Notas parciais: Clique aqui em breve.

Exercícios:

  • Exercício 1 (02/02/16): Construa um dos 3 programas pedidos abaixo em qualquer linguagem ou em pseudocódigo:

    • A1) Faça um programa que calcula a média do aluno e quanto ele precisa para a final, lendo a quantidade de notas e cada uma das notas. O programa deve imprimir a média parcial (MP) das notas e depois dizer se ele foi aprovado, reprovado por média (média menor que 4) ou se está na final, indicando neste caso quanto precisa para passar. Lembre que para passar ele deve ter média final 5.0, e que a nota na final (NF) tem peso 4 e a média parcial (MP) tem peso 6. Ou seja, 5.0 = MP*0.6 + NF*0.4. Ou seja, NF = (5-0.6*MP)/0.4

    • A2) Construa um programa que lê do jogador 1 o número a ser adivinhado (0-100) ou sorteia o número e vai lendo do jogador 2 suas tentativas de adivinhar o número e indicando se o número buscado é maior ou menor que o número lido. No final ele mostra a pontuação do jogador, que é (101-número de tentativas).

    • A3) Construa um jogo de forca. O jogo deve ler a palavra a ser adivinhada. Depois, vai perguntando ao jogador a letra da palavra. Quanto mais rápido acertar, mais pontos ganha. A medida em que erra uma letra, vai perdendo vidas (parte do corpo do boneco da forca) até o máximo permitido.

  • Exercício 2 (11/02/16): Como atividade para esta aula, vocês devem tentar instalar o Eclipse em suas máquinas:https://eclipse.org/downloads/

  • Depois disso, tentem fazer um programa simples, como o que fizemos na aula passada e que envio aqui. Nesse programa, leia 3 notas, calcule a sua média e imprima a média obtida. Para ler um número real, você pode fazer o seguinte:

  • double nota1 = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota 1"));

  • Para calcular a média, você pode fazer:

  • double media = (nota1+nota2+nota3)/3;

  • Roteiro 1

  • Roteiro 2 (aula do dia 25/02/16)

  • Roteiro 3 (aula do dia 03/03/16)

  • Exercício de revisão

  • Roteiro 4

  • Exercício para casa (29/03): Modificar o programa do Roteiro 4 para que utilize a classe Carrinho e que armazena um conjunto de Itens, implementada durante a aula e pode ser baixada daqui.

  • Roteiro 5

  • Exercício (7/4/16): Implementar o código do Roteiro 5, só que usando ArrayList ao invés de array para guardar a lista e alunos. Explore o for-each no seu código para varrer a coleção, além de métodos como "add", get(posição), remove(elemento) de ArrayList. Depois, tente fazer uma Agenda, que contém uma lista de contatos e onde podem ser feitas diferentes pesquisas (ex: pesquisa do telefone de alguém, de alguém que tem certo telefone, etc).

  • Roteiro 6 (Divulgado em 11/04/16)

  • Exercício de preparação para o 2o. estágio (Divulgado em 26/04)

  • Exercício (5/5/16): Com base no código do projeto do Banco, faça as seguintes mudanças:

    • Altere o método "debitar" de Conta para que retorne boolean e só debite caso haja saldo disponível na conta.

    • Na classe Agencia, adicione os seguintes métodos:

      • pesquisaConta(numConta: String): Conta

      • creditar(numConta:String, valor:double): void

      • debitar(numConta:String, valor:double): boolean

  • Roteiro 7 (Classes abstratas e herança)

  • Roteiro 8: Baixe para um novo projeto seu do Eclipse o código correspondente ao projeto e aguarde as instruções em sala:

  • Roteiro 9: Praticando exceções

  • Roteiro 10: Manipulando arquivos em Java.

Planejamento:

1a. Unidade:

1. Introdução à linguagem Java e suas IDEs

1.1 Declaração de variáveis e dos seus tipos

1.2 Comandos condicionais em Java (if-then-else e switch)

1.3 Declaração de métodos estáticos em Java, incluindo os recursivos.

1.4 Operadores, Laços de Repetição e arrays em Java.

1.5 Manipulação de Strings em Java.

2a. Unidade:

2. Orientação a objetos

2.1. Criação de classes (construtores, métodos, atributos, visibilidade)

2.2. Coleções (Ex: ArrayList e LinkedList)

2.3. Interfaces e polimorfismo

2.4. Reuso com herança

2.5. Classes abstratas

2.6. Tratamento de erros usando exceções

3a. Unidade:

3.1. Regras básicas de design (Encapsulamento, herança, composição)

3.2. Persistência de objetos com arquivos

Aulas:

02/02/16: Apresentação do plano de curso da disciplina e revisão de algoritmos com exercício (Exercício 1).

04/02/16: Introdução à sintaxe Java. (Vídeo da aula)

11/02/16: Não tivemos aula. Exercício para casa (Exercício 2)

16/02/16: Declaração de variáveis, comando condicional if. Divulgação do Roteiro 1. (Vídeo da aula)

18/02/16: Laços usando for e while em Java. Uso de arrays e switch. Exercícios sobre uso de laços.

23/02/16: Revisão sobre declaração de variáveis, uso de if, for e while. Declaração e uso de Métodos. Introdução ao switch.

25/02/16: Exercício sobre criação de métodos e uso do switch.

01/03/16: Revisão e introdução à manipulação de Strings (uso do equals).

03/03/16: Exercício sobre métodos e recursividade.

08/03/16: Manipulação de Strings.

10/03/16: Exercício sobre manipulação de Strings e demais conteúdos vistos. (Exercício de revisão)

15/03/16: Primeiro Estágio.

17/03/16: Introdução à orientação a objetos: Criação de classes e objetos dessas classes.

22/03/16: Exercício sobre criação e uso de novas classes. (Roteiro 4)

29/03/16: Criação de classes e manipulação de objetos dessas classes. (discussão do Roteiro 4)

31/03/16: Exercício sobre criação de classes e manipulação de objetos. Roteiro 5

05/04/16: Introdução a Coleções em Java. Exercício sobre coleções em Java e construtores.

07/04/16: Exercício sobre coleções em Java e criação de construtores.

12/04/16: Introdução a interfaces. Exercício sobre listas e interfaces. Uso de construtores com this. (Roteiro 6)

14/04/16: Polimorfismo com toString. Comparando objetos com compareTo. Interface Comparable.

19/04/16: Resolução do exercício sobre listas, criação e manipulação de objetos, e polimorfismo.

26/04/16: Criação de interfaces e exercício sobre o uso de interfaces.

28/04/16: Exercício de revisão sobre orientação a objetos e uso de listas.

03/05/16: Segundo Estágio.

05/05/16: Herança. Exercício sobre o Banco.

10/05/16: Herança e classes abstratas. Vídeo sobre o Roteiro 7. (Não tivemos aula - manifesto)

12/05/16: Criação de classes abstratas. Exercício sobre herança e classes abstratas.

17/05/16: Introdução a exceções em Java.

19/05/16: Mais sobre exceções em Java. Regras básicas de design (encapsulamento, herança, composição)

24/05/16: Exercício sobre exceções (Video aula e exercício pra casa)

31/05/16: Exercício de revisão sobre exceções e demais assuntos vistos.

02/06/16: Uso de arquivos em Java. Apresentação dos roteiros.

07/06/16: Terceiro estágio

09/06/16: Reposição.

14/06/16: Apresentação dos roteiros/projeto.

16/06/16: Prova Final