Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2016-1"
Ir para navegação
Ir para pesquisar
Linha 214: | Linha 214: | ||
==Orientações para entrega dos trabalhos== | ==Orientações para entrega dos trabalhos== | ||
− | * | + | *Para listas a serem entregues via moodle: |
+ | **Nome do arquivo: "seu nome completo/ demais colegas do grupo" - "lista de exercícios 1", "desafio 1", etc. | ||
+ | **Formato do arquivo em anexo: PDF (cada lista num único arquivo feito em editor de texto, exportado para PDF). | ||
+ | *Para listas a serem entregues por email (para cleber.amaral@ifsc.edu.br), período válido até a meia noite do prazo: | ||
**Assunto do e-mail: "PRG29002 - xxx" onde xxx é "lista de exercicios 1", "desafio 1", etc. | **Assunto do e-mail: "PRG29002 - xxx" onde xxx é "lista de exercicios 1", "desafio 1", etc. | ||
**Nome do arquivo anexo: "seu nome completo/ demais colegas do grupo" - "lista de exercícios 1", "desafio 1", etc. | **Nome do arquivo anexo: "seu nome completo/ demais colegas do grupo" - "lista de exercícios 1", "desafio 1", etc. | ||
**Formato do arquivo em anexo: PDF (cada lista num único arquivo feito em editor de texto, exportado para PDF). | **Formato do arquivo em anexo: PDF (cada lista num único arquivo feito em editor de texto, exportado para PDF). | ||
***Regra válida a partir de 14/04 (isento apenas trabalhos "lista 1") | ***Regra válida a partir de 14/04 (isento apenas trabalhos "lista 1") | ||
+ | |||
+ | ===Trabalhos entregues com atraso=== | ||
*Para os trabalhos não entregues no prazo (não justificados) temos a penalidade de 1 ponto por dia de atraso | *Para os trabalhos não entregues no prazo (não justificados) temos a penalidade de 1 ponto por dia de atraso | ||
**Excepcionalmente para as lista1 e lista7 com até 6 dias de atraso terá desconto de 1 ponto apenas, seguindo a regra acima para entregas deste trabalho após este prazo | **Excepcionalmente para as lista1 e lista7 com até 6 dias de atraso terá desconto de 1 ponto apenas, seguindo a regra acima para entregas deste trabalho após este prazo |
Edição das 12h33min de 6 de junho de 2016
Professor da Disciplina: Cleber Jorge Amaral
e-mail: cleber.amaral@ifsc.edu.br
Critérios e instrumentos de avaliação
- Conceito => Somatório(Nota)/QtNotas
- Esta é uma previsão, eventuais mudanças serão comunicadas no decorrer das atividades
- Nota[1]: Nota da Avaliação 1 (a definir data e formato)
- Nota[2]: Nota da Avaliação 2 (a definir data, formato e necessidade desta segunda avaliação)
- Nota[3]: Média das notas das Listas de exercícios
- Nota[4]: Nota do Projeto final
- Frequência
- Mínimo 75%
Datas importantes
- 13/04/2016
- Lista de exercícios 1: Entregar por e-mail ou manuscrito
- Desafio 1 (projeto de cafeteira): Entregar por e-mail ou manuscrito a Narrativa, Fluxograma e Pseudocódigo
- 20/04/2016
- Lista de exercícios 2: Entregar por e-mail (seguir instruções) ou manuscrito
- Lista de exercícios 3: Entregar por e-mail (seguir instruções) ou manuscrito
- O estudante deve entregar na forma de fluxograma cada desafio que resolvemos na aula de 13/04 na forma de pseudocódigo, e devem ser entregues na forma de pseudocódigo os fluxogramas que fizemos em sala -
- Os títulos dos algoritmos são citados na mídia 1.3 (link abaixo) mas os detalhes foram trabalhados em sala e fotografados pelos próprios alunos
- 27/04/2016
- Lista de exercícios 4: Entregar por e-mail (seguir instruções) ou manuscrito
- 11/05/2016
- Lista de exercícios 5: Entregar por e-mail (seguir instruções)
- 17/05/2016
- Prova 1: Algoritmos e lógica utilizando pseudocódigo e fluxogramas
- 25/05/2016
- Lista de exercícios 6: Entregar via moodle
- 28/05/2016
- Desafio 2 (jogo da velha): Entregar via moodle
- 08/06/2016
- Lista de exercícios 7: Entregar via moodle (atraso nos 6 primeiros dias contarão -1)
- 14/06/2016
- Apresentação das propostas de projeto final
- 22/06/2016
- Prova 2: Prática
- 26 e 27/07/2016
- Avaliação 3: Apresentação do projeto
Material de aula
Inauguração
- 0.0: Ementa da disciplina
- Ementa da disciplina na wiki: Engenharia de Telecomunicações 2ª Fase
Introdução aos Algoritmos e Pseudocódigo
- 1.0: Introdução aos algoritmos
- 1.1: Algoritmos continuação
- 1.2: Algoritmos - repetição e subrotinas
- 1.3: Algoritmos - fixação
- 1.4 Algoritmos - Preparação para avaliação
Programação em C
- 2.0: Introdução ao C
- 2.1: Introdução - continuação
- 2.2: Condicionais no C
- 2.3: Estruturas de repetição no C
- 2.4: Funções no C
- 2.5: Funçoes no C - continuação
- 2.6 Vetores em C
Exercicios complementares - Vetores |
---|
Exemplo: Para os vetores x[]={1,1,3,4,5} e y[]={1,2,3,3,5} temos três elementos iguais (nas posições 0, 2 e 4). |
Variáveis locais e Globais |
---|
|
Gerando números pseudo-aleatórios |
---|
|
Tabela ASCII |
---|
|
Dicas para resolução dos exercícios da lista 7 |
---|
|
Obtendo o código de um caractere UTF-8 |
---|
Para obter o código UTF-8 de um caracter especial (retorno 0xC3) é necessário executar um segundo scanf, conforme exemplo: #include <stdio.h>
int main()
{
unsigned char c;
printf("Digite um caracter especial ou não:\n");
//Primeiro scanf
scanf("%c", &c);
//Se for um caracter especial
if(0xC3 == c)
{
//Segundo scanf para obter segunda codificação deste char UTF8
scanf("%c", &c);
printf("Digitado um caracter especial: 0x%x\n",c);
}
else
{
printf("Digitado um caracter convencional: 0x%x\n",c);
}
return 0;
}
|
Referências importantes
- Códigos de formatação do printf
- Ordem de precedência de operadores C
- Tabela ASCII (ISO 8859-1)
- Lista de Caracteres codificação UTF-8
Ferramentas úteis
- VisualG3: Uma IDE para desenvolvimento de programas em pseudocódigo (freeware), permite editar e compilar programas utilizando uma sintaxe própria de pseudocódigo muito parecida com a que trabalhamos em sala. Muito útil para verificar o funcionamento real dos algoritmos.
- LibreOffice: O LibreOffice é um programa gratuito (freeware) e de código aberto (opensource). Além de editor de textos, planilhas e apresentações tem a ferramenta Draw que permite a criação de fluxogramas.
- VirtualBox: O Oracle VirtualBox é um programa gratuito (freeware) que permite criar e instanciar máquinas virtuais. O uso de máquinas virtuais é bastante interessante quando desejamos ter diferentes sistemas operacionais em um computador bem como quando se está realizando ensaios e deseja-se isolar estes experimentos do sistema principal.
- Ubuntu: O Ubuntu é uma distribuição linux (freeware e opensource) bastante estável e com uma comunidade bastante ativa que está sempre atualizando o sistema e presente nos foruns e redes sociais para dirimir dúvidas.
- LinuxMint: O LinuxMint é uma distribuição linux (freeware e opensource) bastante estável e confortável aos usuários windows, pois traz um gerenciador de janelas configurado de uma forma mais natural para estes usuários e vem com um conjunto de programas pré-instalados que consegue atender a maior parte das demandas inicias.
Orientações para entrega dos trabalhos
- Para listas a serem entregues via moodle:
- Nome do arquivo: "seu nome completo/ demais colegas do grupo" - "lista de exercícios 1", "desafio 1", etc.
- Formato do arquivo em anexo: PDF (cada lista num único arquivo feito em editor de texto, exportado para PDF).
- Para listas a serem entregues por email (para cleber.amaral@ifsc.edu.br), período válido até a meia noite do prazo:
- Assunto do e-mail: "PRG29002 - xxx" onde xxx é "lista de exercicios 1", "desafio 1", etc.
- Nome do arquivo anexo: "seu nome completo/ demais colegas do grupo" - "lista de exercícios 1", "desafio 1", etc.
- Formato do arquivo em anexo: PDF (cada lista num único arquivo feito em editor de texto, exportado para PDF).
- Regra válida a partir de 14/04 (isento apenas trabalhos "lista 1")
Trabalhos entregues com atraso
- Para os trabalhos não entregues no prazo (não justificados) temos a penalidade de 1 ponto por dia de atraso
- Excepcionalmente para as lista1 e lista7 com até 6 dias de atraso terá desconto de 1 ponto apenas, seguindo a regra acima para entregas deste trabalho após este prazo
- Desafios não tem extensão de prazo, não adianta enviar se o prazo se esgotou
- Para o desafio1 o sistema de desconto por dia de atraso foi utilizado, este ficou como exceção
Eventos da área de desenvolvimento
- Maio de 2016 - Florianópolis TDC2016
- Outubro de 2016 - Rio de Janeiro QConRio2016
Horário de Monitoria
Sites úteis
- cplusplus.com: Traz tutoriais, artigos e descrições de funções C e C++
- codechef.com: Permite a edição, compilação e testes online de códigos em várias linguagens inclusive ANSI C
- codecademy.com: Tem cursos gratuitos de programação, bastante didáticos em inclusive em português. Porém não tem curso de C, uma alternativa interessante para quem quiser aprender uma outra linguagem que tem boa aceitação inclusive para desenvolvimento de sistemas embarcados é o Python
- kaggle.com: Site tem publicado centenas de algoritmos em diversas linguagens para resolver os mais variados problemas. Tem também competições de algoritmos
Projeto
O aluno deve propor ao professor um projeto de sua preferência que respeite os requisitos mínimos. Sendo aceito deverá desenvolver o projeto e apresentá-lo.
Requisitos mínimos
- Realizar acesso a arquivo, lendo e escrevendo informações
- Utilizar funções (ao menos duas sendo ao menos uma com argumentos)
- Apresentar menu utilizando switch case e conter laço infinito
- Aceitar argumento de entrada no programa
- Utilizar comentários
- Utilizar alguma biblioteca (além da stdio.h)
- Utilizar ao menos 3 dos seguintes recursos
- Utilizar diretivas de pré-compilação
- Utilizar Ponteiros
- Utilizar Structs ou Unions
- Utilizar alocação dinâmica de memória
Modelo
- Trabalho individual
Metodologia
- Apresentar a proposta de projeto ao professor
- Documentar o escopo do projeto utilizando descrição narrativa (descrição simples)
- Cenário
- Problema
- Dados de entrada e saída
- O planejamento do cronograma não será cobrado porém cabe ao aluno se organizar quanto ao tempo para entrega no prazo
- Desenvolver o projeto
- Apresentar individualmente ao professor
- Serão realizados testes diversos, arguido sobre o funcionamento, possibilidades de alterações, etc
Algumas ideias de projetos
- Sugestão geral: veja em outras disciplinas que processos podem ser automatizados e proponha um projeto que realiza esta tarefa como de cálculos diversos de eletrônica, de rádio transmissão, etc.
- Implementar o jogo Pedra, papel ou tesoura. Neste jogo dois ou mais jogadores em diferentes computadores devem rodar um aplicativo que fará a leitura de um arquivo compartilhado. O algoritmo deve tratar as etapas do jogo (Setup do aplicativo, entrada na sala, escolha da figura e apresentação do resultado)
- Implementar o jogo da velha escrevendo em arquivo. Neste jogo dois jogadores em diferentes computadores devem rodar um aplicativo que fará a leitura de um arquivo compartilhado. O algoritmo deve tratar as etapas do jogo (Setup do aplicativo, entrada na sala, seleção das casas e apresentação do resultado)
- Implementar controle de empréstimo de objetos. Neste software o usuário poderá digitar nomes de objetos que emprestou, a pessoa a quem emprestou e automaticamente o software guarda a data. Deve haver uma opção para gerar relatório dos itens emprestados e opção para marcar a devolução (podendo manter o registro em histórico ou apagando o registro).
- Implementar software gerador de lista de compras. Neste software o usuário poderá digitar itens de supermercado com nome e quantidade. O software escreve num arquivo que poderá depois ser impresso. O software também pode ter função de numa segunda execução já trazer a antiga listagem digitada e permitir que o usuário apenas selecione novas quantidades ou inclua novos itens.
- Implementar software para realização de cálculos de eletrônica. Neste software um menu apresenta várias opções de cálculo como de potencia através de tensão e corrente, como obtenção do valor de um resistor, como solução de equivalência de paralelo de vários resistores e outras. Num arquivo texto pode ser armazenado um histórico de operações realizadas.
- Implementação de software para apostas na mega sena. Neste software são dadas sugestões de números para apostas de acordo com o número do sorteio da mega sena. Com este histórico armazenado é possível então entrar com um número de sorteio e digitar quais foram os números verdadeiramente sorteados na loteria federal checagem os acertos.
Turma Conceitos Numéricos
Conceitos Individuais - Avaliações principais
Matrícula | A1 |
151002039-0 | 6 |
152000674-8 | 0 |
151001400-4 | 0 |
152000542-3 | 8 |
152001576-3 | 9 |
151006902-0 | 3 |
151005163-5 | 10 |
151005591-6 | 4 |
151003419-6 | 0 |
152000616-0 | 0 |
152000226-2 | 8 |
152000502-4 | 4 |
152001502-0 | 5 |
151001656-2 | 4 |
152000293-9 | 7 |
152000120-7 | 6 |
152006025-4 | 8 |
152000331-5 | 5 |
Consolidação - Avaliações principais
Conceito | A1 |
10 | 5% |
9 | 5% |
8 | 16% |
7 | 5% |
6 | 11% |
<=5 / Ausentes | 55% |
Conceitos Individuais - Avaliações secundárias
Matrícula | L1 | D1 | L2 | L3 | L4 | L5 | T7 | T8 |
151002039-0 | 10 | 0 | 0 | 0 | 8 | 0 | ||
152000674-8 | 0 | 10 | 0 | 0 | 0 | 0 | ||
151001400-4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
152000542-3 | 10 | 0 | 8 | 10 | 10 | 9 | ||
152001576-3 | 6 | 10 | 3 | 0 | 10 | 10 | ||
151006902-0 | 0 | 10 | 0 | 0 | 0 | 0 | ||
151005163-5 | 0 | 0 | 0 | 0 | 0 | 0 | ||
151005591-6 | 10 | 10 | 9 | 9 | 10 | 9 | ||
151003419-6 | 8 | 0 | 3 | 10 | 6 | 0 | ||
152000616-0 | 10 | 0 | 0 | 0 | 8 | 0 | ||
152000226-2 | 6 | 10 | 0 | 0 | 0 | 0 | ||
152000502-4 | 10 | 10 | 7 | 4 | 9 | 5 | ||
152001502-0 | 10 | 10 | 10 | 10 | 8 | 8 | ||
151001656-2 | 10 | 10 | 6 | 9 | 9 | 9 | ||
152000293-9 | 10 | 10 | 4 | 0 | 9 | 10 | ||
152000120-7 | 10 | 0 | 7 | 10 | 9 | 4 | ||
152006025-4 | 10 | 0 | 5 | 10 | 7 | 0 | ||
152000331-5 | 8 | 10 | 3 | 9 | 10 | 10 |
Turma Conceitos por Letras
Conceitos Individuais - Avaliações principais
Matrícula | A1 |
142003344-1 | D |
141005012-2 | 0 |
142001814-0 | D |
142001213-4 | D |
142002143-5 | B |
142001834-5 | 0 |
142003393-0 | 0 |
142001425-0 | 0 |
132005743-8 | D |
121003322-4 | X |
Consolidação - Avaliações principais
Conceito | A1 |
A | 0% |
B | 10% |
C | 0% |
D | 40% |
Ausentes | 50% |
Conceitos Individuais - Avaliações secundárias
Matrícula | L1 | D1 | L2 | L3 | L4 | L5 | T7 | T8 |
142003344-1 | C | A | D | X | X | X | ||
141005012-2 | X | X | X | X | X | X | ||
142001814-0 | A | X | C | C | C | X | ||
142001213-4 | C | A | X | D | X | B | ||
142002143-5 | C | A | X | X | B | C | ||
142001834-5 | X | X | X | X | X | X | ||
142003393-0 | X | X | X | X | X | X | ||
142001425-0 | X | X | X | X | X | X | ||
132005743-8 | X | X | X | X | X | X | ||
121003322-4 | X | C | X | X | X | X |
Critério de conversão Numérico x Letra
- A: 9,0 a 10,0
- B: 7,5 a 8,9
- C: 6,0 a 7,4
- D: 0,0 a 5,9