Laboratório de Programação I (UFBA 2009.1)

From AdonaiMedrado.Pro.Br
Revision as of 22:01, 2 July 2009 by Adonaimedrado (Talk | contribs) (Aula do dia 03/07/2009)

Jump to: navigation, search

Programa

O programa oficial da disciplina está disponível em PDF.

Links sugeridos

Avaliações

As avaliações da disciplina serão especificadas por escrito neste endereço. Mudanças podem ocorrer ao longo do semestre, porém a versões finais das especificações estarão disponíveis no mínimo 30 dias antes da data de entrega de cada atividade.

Segue abaixo as avaliações previstas e seus respectivos valores máximos:

  • Prova I - 2,5 pontos.
  • Prova II - 2,5 pontos.
  • Trabalho semestral - 3,0 pontos.
  • Resolução dos problemas propostos e participação nas atividades de laboratório - 2,0 pontos.

Especificação de trabalho

Cronograma

Aula do dia 06/03/2009

Atividade
Apresentação da disciplina, professor e alunos.
Apresentação da metodologia de trabalho.
Assuntos
Histórico
Principais características
Introdução ao ambiente de programação
Editores de texto e compiladores utilizados
Opções interessantes do GCC.
Principais erros da programação
Introdução à linguagem C
Tipos.
Operadores.
Expressões.
Estruturas de controle condicionais.
Estruturas de repetição.
Biblioteca padrão
stdio.h: Comandos printf e scanf.
Link sugerido
Using gdb.
Programas úteis
C: Limites definidos pela implementação.
Problemas propostos
C: Problema da média.
C: Problema da soma.
C: Problema do número espelho.
C: Problema da idade em dias.

Aula do dia 13/03/2009

Atividade
Dúvidas dos problemas propostos.
Problemas proposto
C: Problema da seqüência de Fibonacci.
C: Problema da conjectura de Goldbach.
C: Problema do quadrado gêmeo das partes.

Aula do dia 20/03/2009

Assuntos
A estrutura de um programa em Linguagem C
Uso de vetores de tamanho fixo e strings.
Vetores.
Matrizes.
Strings.
Atividade
Dúvidas dos problemas propostos.
Problemas propostos
C: Problema da competição alien.
C: Problema da transmissão de rádio.
Problema do giro da palavra - resolva utilizando a linguagem C.
Problema da codificação da string - resolva utilizando a linguagem C.

Aula do dia 27/03/2009

Assuntos
Passagem de parâmetro para o programa (argc, argv, ...)
Funções
Passagem de parâmetros por valor.
Passagem de parâmetros por referência.
Funções inline.
Atividade
Dúvidas dos exercícios.
Link sugerido
Inline Functions In C.
Problemas propostos
Problema da separação das sílabas (versão light).
C: Problema da freqüência do caractere.
C: Problema da sopa de letras na formação de palavras (versão light).

Aula do dia 03/04/2009

Atividade
Compartilhamento de soluções
Adriano Novais Queiroz: Solução: Problema da idade em dias (Adriano Queiroz).
Alessandro Santos da Silva: Solução: Problema da soma (Alessandro Santos).
Rafael Dourado Silvestre de Oliveira: Solução: Problema da freqüência do caractere (Rafael Oliveira).
Márcio Trindade de Oliveira: Solução: Problema da seqüência de Fibonacci (Márcio Trindade).
Maurício Souza Lage: Solução: Problema do giro da palavra (Maurício Souza Lage).
Tito Gardel do Prado Filho: Solução: Problema da competição alien (Tito Filho).
Dúvidas dos exercícios.
Problemas propostos

Aula do dia 17/04/2009

Assunto
Introdução a ponteiros.
Ponteiro para função (função callback).
Uso da função qsort (stdlib.h).
Uso da função bsearch (stdlib.h).
Atividade
Dúvidas dos exercícios.
Revisão dos conceitos.
Exemplos
C: Ponteiro para variável.
C: Ponteiro para ponteiro.
C: Ponteiro para array.
C: Ponteiro para string.
C: Ponteiro para função.
C: qsort.
C: bsearch.
Problemas propostos
Problema das seqüências alternadas.
Problema da seqüência de algarismos agrupados com ordenação.

Aula do dia 24/04/2009 (Sala 155)

Atividade
Apresentação das propostas dos trabalhos semestrais.
Equipe 1 - Software de bate-papo (Qt).
Componentes
Eduardo Ramos.
Maurício Lage.
Produção
Documento.
Equipe 2 - Sokobox (Allegro).
Componentes
Adriano Queiroz.
Rafael Dourado.
Tito Gardel.
Produção
Documento.
Equipe 3 - Jogo de Damas (Allegro).
Componentes
Bruno Barbosa.
Lúcio Ribeiro.
Produção
Documento.
Equipe 4 - Software de Backup para Linux (Gtk+)
Componentes
Alessandro Santos.
Marcio Trindade.
Raniere Viana.
Produção
Documento.

Aula do dia 08/05/2009

Atividade
Prova I.
Problema dos casais.
Problema da soma reservada.
Problema da palavra mágica.
Problema do conjunto e seus elementos únicos.

Aula do dia 15/05/2009

Atividade
Resultado e comentário da Prova I
Resultados dos testes e notas.
Testes executados.
Respostas do professor.
Assuntos
Estruturas não primitivas.
Tabelas (vetor de struct).
Revisão & lembrete
C: Uso do scanf.
Problemas propostos
Problema do professor de terceiro ano.

Aula do dia 22/05/2009

Assuntos
Ponteiros.
Alocação de dinâmica de memória.
Links sugeridos
malloc.
realloc.
calloc.
free.
Problemas propostos
Problema dos sucessores.
Problema do quadrado perfeito.
Problema do baile de casais.

Aula do dia 29/05/2009

Assunto
Arquivos
Links sugeridos
fopen.
fscanf.
feof.
fclose.
Problemas propostos
Problema da moda.

Aula do dia 05/06/2009

Atividade
Compartilhamento de soluções
Adriano Queiroz: Solução: Problema do baile de casais (Adriano Queiroz).
Bruno Barbosa: Solução: Problema da simplificação das frações (Bruno Barbosa) (incompleto).
Eduardo Ramos: Solução: Problema da moda - dificuldade 2 (Eduardo Ramos).
Eduardo Ramos: Solução: Problema das seqüências alternadas (Eduardo Ramos).
Lúcio Ribeiro: Solução: Problema da moda - dificuldade 4 (Lúcio Ribeiro).
Márcio Trindade: Solução: Problema do professor de terceiro ano (Márcio Trindade).
Rafael Dourado: Solução: Problema do quadrado perfeito (Rafael Dourado).
Tito Gardel: Solução: Problema do professor de terceiro ano (Tito Gardel).
Assunto
Arquivos.
Links sugeridos
fgets.
fputs.
Exemplo
C: Uso de fgets e fputs com stdin e stdout.
Problemas propostos
Problema da simplificação das frações.

Aula do dia 06/06/2009 (Sábado 13:00~17:00 Sala 151)

Assunto
Competição de programação.
complp1_20091 (terceiro colocado):
Bruno.
Márcio.
complp2_20091 (primeiro colocado):
Adriano.
Tito.
Mateus.
complp3_20091 (quarto colocado):
Lucas.
Flávio.
complp4_20091 (segundo colocado):
Carlos.
Rafael.
complp5_20091 (não classificado):
Denildo.
Israel.
Problemas propostos
Antecessores.
Documentos
Problemas da Competição.

Aula do dia 12/06/2009

Atividade
Compartilhamento de soluções
Bruno Barbosa: Solução: Problema da simplificação das frações (Bruno Barbosa).
Lúcio Ribeiro: Solução: Problema da moda - dificuldade 5 (Lúcio Ribeiro).
Links sugeridos
fread.
fwrite.
fseek.
Exemplos
bmpinfo.c.
crise_cad.c.
crise_print.c.
Problemas propostos
Problema da prefeitura em crise (sem XML).

Aula do dia 19/06/2009

Atividade
Prova II.
Problema do checksum.
Problema do TMA.
Escolha um dos problema abaixo:
Problema da codificação da string (aula do dia 20/03/2009).
Problema da seqüência de algarismos agrupados com ordenação (aula do dia 17/04/2009).
Problema da prefeitura em crise (sem XML) (aula do dia 12/06/2009).

Aula do dia 26/06/2009

Atividade
Prova II (segunda chamada).
Apresentação dos trabalhos semestrais.

Aula do dia 03/07/2009

Atividade
Compartilhamento de soluções
Bruno Barbosa.
Mauricio Lage.
Feedback da disciplina.
Entrega dos resultados parciais
Resultado e comentário da Prova II
Resultados dos testes e notas.
Testes executados.
Resultado da participação.
Resultado dos trabalhos.
  • Equipe 1
    • Documento
      • Conforme a norma solicitada, o nome dos autores deve ser colocado na capa.
      • Não explicou a motivação para criação de fato. Fez propaganda da Qt.
      • De quem é a propriedade das imagens utilizadas?
    • Programa
      • O Makefile não funcionou (Netbeans?)
      • Para compilar tive que alerar o arquivo defines.h que estava errado (tinha */*/)
      • Parte do cliente está em português, parte em inglês!!
  • Equipe 2
    • Documento
      • Na capa do documento o nome da instituição é o primeiro e não o penúltimo elemento.
      • Referências?
    • Programa
      • Quando você tira o foco da janela a música não deveria ficar "zunindo" e sim continuar ou ser colocado em mute.****Deveria dar uma mensagem do motivo de não poder salvar a fase.
      • No construtor de fase:
        • Qual a diferença entre as duas caixas (a com predominância amarela e a com predominância lilás?)
        • Deveria ter confirmação para apagar as fases, bem como uma mensagem avisando que foi apagado.
        • Se você fizer uma fase que tenha elemento em todas as linhas, ao jogar a última aparece como a a primeira.
  • Equipe 3
    • Documento
      • A licença não é GPL.
      • "...ainda sim deve..." não deveria ser "ainda assim"?
      • O nome do programa é Synaptic (http://www.nongnu.org/synaptic/) e não synapitc.
      • Erro de concordância: "Outras opções e regras do jogo estará disponível..." (grifo meu).
      • Inferir significa "fazer inferência sobre; concluir, deduzir" (Houaiss) o que não tem nada com o sentido do texto: "Bruno ficará responsável pela interface gráfica e Lúcio será encarregado de integra-lá[sic] com o algoritmo principal do jogo. É importante ressaltar que isso não impedirá um componente de inferir na implementação do outro." (e integrá-la tem acento).
    • Programa
      • Só por abrir o jogo média de 82% do meu processador AMD 64bits!?
      • Uma vez seleciona a peça a ser jogada não é possível fazer uma nova seleção, mesmo que seja impossível movimentar a peça selecionada (o que obriga a reiniciar o jogo).
      • Não "come" duas vezes seguidas.
      • Não "vira" dama.
      • Não "come" para trás.
  • Equipe 4
    • Documento
      • A motivação poderia ser melhor explicada.
      • Item 3 totalmente copiado de http://pt.wikipedia.org/wiki/LGPL e sem referências (deixou inclusive os links!!!) - isto seria motivo para zerar a pontuação do trabalho conforme a especificação.
      • Trecho sem sentido "...o usuário pode pedir uma criação naquele instante do mesmo."
    • Programa
      • Não funcionou praticamente nada aqui comigo.
      • Não deveria ser possível ver os agendamentos também?
      • Não consegui fazer nenhum backup.
      • Só fica gravado um agendamento.
      • Onde é que se criaria o projeto?

Aula do dia 17/07/2009

Atividade
Prova final.