Laboratório de Programação I (UFBA 2009.1)
From AdonaiMedrado.Pro.Br
Contents
- 1 Programa
- 2 Links sugeridos
- 3 Avaliações
- 4 Especificação de trabalho
- 5 Cronograma
- 5.1 Aula do dia 06/03/2009
- 5.2 Aula do dia 13/03/2009
- 5.3 Aula do dia 20/03/2009
- 5.4 Aula do dia 27/03/2009
- 5.5 Aula do dia 03/04/2009
- 5.6 Aula do dia 17/04/2009
- 5.7 Aula do dia 24/04/2009 (Sala 155)
- 5.8 Aula do dia 08/05/2009
- 5.9 Aula do dia 15/05/2009
- 5.10 Aula do dia 22/05/2009
- 5.11 Aula do dia 29/05/2009
- 5.12 Aula do dia 05/06/2009
- 5.13 Aula do dia 06/06/2009 (Sábado 13:00~17:00 Sala 151)
- 5.14 Aula do dia 12/06/2009
- 5.15 Aula do dia 19/06/2009
- 5.16 Aula do dia 26/06/2009
- 5.17 Aula do dia 03/07/2009
- 5.18 Aula do dia 17/07/2009
Programa
O programa oficial da disciplina está disponível em PDF.
Links sugeridos
- Site do Criador Dennis Ritchie
- Documentos recomendados: C Reference Manual, The Development of the C Language
- Site do Livro: The C Programming Language, Second Edition.
- cplusplus.com - The C++ Resources Network.
- Programar em C - Livro de C em Português na Web.
- Especificação
- Compiladores:
- Cygwin - selecione o pacote gcc (e, opcionalmente, o gdb) na instalação.
- MinGW: Minimalist GNU for Windows.
- TurboC.
- Bloodshed Software - Dev-C++.
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
- 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.
- Uso de vetores de tamanho fixo e 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
- 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
- Equipe 4 - Software de Backup para Linux (Gtk+)
- Componentes
- Alessandro Santos.
- Marcio Trindade.
- Raniere Viana.
- Produção
Aula do dia 08/05/2009
- Atividade
- Prova I.
Aula do dia 15/05/2009
- Atividade
- Resultado e comentário da Prova I
- 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.
- complp1_20091 (terceiro colocado):
- 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
- 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!!
- Documento
- 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.
- Documento
- 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.
- Documento
- 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?
- Documento
- Equipe 1
Aula do dia 17/07/2009
- Atividade
- Prova final.