Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2018-1"
Ir para navegação
Ir para pesquisar
Linha 123: | Linha 123: | ||
#Implemente em pseudocódigo o algoritmo descrito no fluxograma abaixo (clique na imagem para ampliar) (id:0.08): <br> [[Image:bhaskara.png|200px]] | #Implemente em pseudocódigo o algoritmo descrito no fluxograma abaixo (clique na imagem para ampliar) (id:0.08): <br> [[Image:bhaskara.png|200px]] | ||
#Implementar em pseudocódigo algoritmo que imprime em tela o ranking de países através das medalhas obtidas nas olimpíadas. Sabendo que fica melhor colocado no ranking o país que soma mais medalhas de ouro, caso haja empate aquele que soma mais prata entre os empetados e caso haja empate na quantidade de prata também será melhor colocado no ranking o que tiver mais bronzes. O algoritmo deve ser capaz de armazenar e ranquear três países. Dica: crie as variáveis paisA_ouro, paisA_prata e paisA_bronze como numéricas para armazenar as medalhas obtidas pelo país A, da mesma forma para o país B e país C. Você pode limitar a quantidade de medalhas total e determinar pesos para obter um valor absoluto de pontuação. (id:0.18) | #Implementar em pseudocódigo algoritmo que imprime em tela o ranking de países através das medalhas obtidas nas olimpíadas. Sabendo que fica melhor colocado no ranking o país que soma mais medalhas de ouro, caso haja empate aquele que soma mais prata entre os empetados e caso haja empate na quantidade de prata também será melhor colocado no ranking o que tiver mais bronzes. O algoritmo deve ser capaz de armazenar e ranquear três países. Dica: crie as variáveis paisA_ouro, paisA_prata e paisA_bronze como numéricas para armazenar as medalhas obtidas pelo país A, da mesma forma para o país B e país C. Você pode limitar a quantidade de medalhas total e determinar pesos para obter um valor absoluto de pontuação. (id:0.18) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#Implemente um algoritmo que solicita ao usuário entrar com 10 temperaturas, o algoritmo deve usar um laço de repetição para isso. No final deve mostrar a maxima, minima e média das temperaturas (id:0.16) | #Implemente um algoritmo que solicita ao usuário entrar com 10 temperaturas, o algoritmo deve usar um laço de repetição para isso. No final deve mostrar a maxima, minima e média das temperaturas (id:0.16) | ||
#Desenvolva em pseucodigo um algortimo que testa o vencedor de uma rodada de truco. A sequencia das cartas esta descrita na imagem abaixo bem como dos naipes franceses. Além da sequencia ali descrita, uma carta será sorteada e fará com que se torne a mais forte (manilha) aquela de força imediatamente superior sorteada (no caso da carta sorteada ser um 3 a manilha é o 4). A rodada é vencida numa disputa de melhor de três. As manilhas nunca empatam, neste caso prevalesce o naipe conforme sequencia. No caso de empate no último turno vence a rodada quem venceu o primeiro turno. Na ocorrência de empate nos três turnos vence a rodada quem foi o primeiro a jogar. Este algoritmo não precisa embaralhar ou distribuir cartas, faz apenas a checagem de quem venceu cada turno e finalmente quem venceu a rodada de um jogo entre dois jogadores. (id:0.19)<br> [[Image:truco.jpg]] | #Desenvolva em pseucodigo um algortimo que testa o vencedor de uma rodada de truco. A sequencia das cartas esta descrita na imagem abaixo bem como dos naipes franceses. Além da sequencia ali descrita, uma carta será sorteada e fará com que se torne a mais forte (manilha) aquela de força imediatamente superior sorteada (no caso da carta sorteada ser um 3 a manilha é o 4). A rodada é vencida numa disputa de melhor de três. As manilhas nunca empatam, neste caso prevalesce o naipe conforme sequencia. No caso de empate no último turno vence a rodada quem venceu o primeiro turno. Na ocorrência de empate nos três turnos vence a rodada quem foi o primeiro a jogar. Este algoritmo não precisa embaralhar ou distribuir cartas, faz apenas a checagem de quem venceu cada turno e finalmente quem venceu a rodada de um jogo entre dois jogadores. (id:0.19)<br> [[Image:truco.jpg]] |
Edição das 18h49min de 14 de fevereiro de 2018
Dados importantes
- Professor da Disciplina: Heron Eduardo de Lima Ávila
- Email: heron.avila@ifsc.edu.br
- Atendimento paralelo: quartas das 14:30 às 15:30 e sextas das 09:00 às 10:00 na Sala dos Professores de Tele II
Dados da Disciplina
- Ementa da disciplina na wiki: Engenharia de Telecomunicações 2ª Fase
- Página no moodle: moodle
- Monitoria: Programa_de_monitoria_dos_cursos_superiores_de_Telecomunicações
Algoritmos utilizando fluxograma
Introdução aos algoritmos utilizando fluxograma
Introdução aos algoritmos utilizando fluxograma |
---|
|
Desenvolvendo algoritmos na forma de fluxogramas
Desenvolvendo algoritmos na forma de fluxogramas |
---|
Exercícios para resolver em sala de aula:
|
Pseudo-código
Pseudo-código utilizando Portugol - Introdução e condicionais
- Slides sobre pseudocódigo disponibilizados no moodle.
Ver exemplos de códigos Portugol dentro do software portugol (menu Arquivo->Abrir exemplo)
Desenvolvendo algoritmos na forma de pseudo-código - condicionais |
---|
Exercícios para resolver em sala de aula:
|
Desenvolvendo algoritmos na forma de pseudo-código - repetição |
---|
|
Pseudo-código utilizando Portugol - repetições
Exercícios - Pseudocodigo (série 1) |
---|
Exercícios - Pseudocodigo (série 1):
|
Pseudo-código utilizando Portugol - sub-rotinas e registros
Exercícios - Pseudocodigo (série 3) | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Exercícios - Pseudocodigo (série 3):
Parte da implementação do problema das funções trigonométricas
|
Projeto final
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
- Utilizar funções (ao menos três além do main, sendo que devem receber argumentos e possuir retorno);
- Apresentar menu utilizando switch case e conter laço infinito;
- Utilizar Structs ou Unions;
- Utilizar bibliotecas (além da stdio.h);
- Utilizar diretivas de pré-compilação;
- Utilizar comentários;
- Utilizar Ponteiros;
- Aceitar argumento de entrada no programa;
- Realizar acesso a arquivo, lendo e escrevendo informações (busque requisitos que requerem persistência de dados);
- Gravar informações de operações em log;
Modelo
- Trabalho individual
Metodologia
- Apresentar a proposta de projeto ao professor
- Opcional: 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.
Referências
Referências bibliográficas |
---|
|
Ferramentas úteis |
---|
|
Plano de aula
Aula | Data | Horas | Conteúdo | Recursos | |
---|---|---|---|---|---|
1 | 15/2 | 2 | Aula inaugural, apresentação do professor e turma, apresentação da disciplina e introdução aos algoritmos | Sala 10 | |
2 | 19/2 | 2 | Prática de fluxogramas | Lab Redes 1 | |
3 | 22/2 | 2 | Introdução ao pseudocódigo até condicionais com resolução de exercícios | Lab Redes 1 | |
4 | 26/2 | 2 | Prática: Resolução de problemas em pseudocódigo e fluxogramas (declaração de variáveis, leia e escreva, uso de condicionais e biblioteca portugol) | Lab Redes 1 | |
5 | 1/3 | 2 | Pseudocódigo: Uso de vetores e sub-rotinas | Lab Redes 1 | |
6 | 5/3 | 2 | Prática: Resolução de problemas com vetores e sub-rotinas | Lab Redes 1 | |
7 | 8/3 | 2 | Pseudocódigo e fluxogramas: Registros e revisão geral | Lab Redes 1 | |
8 | 12/3 | 2 | Pseudocódigo e fluxogramas: Exercícios de preparação para prova | Lab Redes 1 | |
9 | 15/3 | 2 | Avaliação1: Introdução a algoritmos (fluxograma e pseudocódigo) | Lab Redes 1 | |
10 | 22/3 | 2 | Prática: Correção da Avaliação | Lab Redes 1 | |
11 | 26/3 | 2 | Recuperação1? / Introdução ao C, primeiros conceitos de compilação, variáveis, controle de fluxo, entrada e saída de dados | Lab Redes 1 | |
12 | 29/3 | 2 | Continuação C, condicionais, operadores relacionais, operadores lógicos. Prática: Controle de fluxo em C, entrada e saída de dados | Lab Redes 1 | |
13 | 2/4 | 2 | Prática C | Lab Redes 1 | |
14 | 5/4 | 2 | Continuação C: estruturas de repetição | Lab Redes 1 | |
15 | 9/4 | 2 | Prática: estruturas de repetição | Lab Redes 1 | |
16 | 12/4 | 2 | Continuação C: funções | Lab Redes 1 | |
17 | 16/4 | 2 | Prática: Funções em C | Lab Redes 1 | |
18 | 19/4 | 2 | Avaliação2: C até funções | Lab Redes 1 | |
19 | 23/4 | 2 | Correção da prova | Lab Redes 1 | |
20 | 26/4 | 2 | Recuperação2? / Prática para resolução de exercícios | Lab Redes 1 | |
21 | 3/5 | 2 | Introdução a vetores e matrizes em C. | Lab Redes 1 | |
22 | 7/5 | 2 | Resolução de exercícios de vetores Prática: Resolução de exercícios de fixação de vetores. | Lab Redes 1 | |
23 | 10/5 | 2 | Structs e Unions | Lab Redes 1 | |
24 | 14/5 | 2 | Prática: Structs e unions | Lab Redes 1 | |
25 | 17/5 | 2 | Prática: Structs e unions / Compreendendo melhor a função main e exit, gerando números pseudo-aleatórios, defines e operadores e precedências | Lab Redes 1 | |
26 | 21/5 | 2 | Ponteiros | Lab Redes 1 | |
27 | 24/5 | 2 | Prática: Exercicios ponteiros | Lab Redes 1 | |
28 | 28/5 | 2 | Vetor de Ponteiros e Ponteiro Para Estruturas, typedef, recursividade, apresentação do projeto | Lab Redes 1 | |
29 | 4/6 | 2 | Prática de Ponteiros e structs | Lab Redes 1 | |
30 | 7/6 | 2 | Avaliação: C até structs e ponteiros | Lab Redes 1 | |
31 | 11/6 | 2 | Prática: Correção da Avaliação / Desenvolvimento do projeto | Lab Redes 1 | |
32 | 14/6 | 2 | Apresentação do projeto. Prática: Desenvolvimento do Projeto | Lab Redes 1 | |
33 | 18/6 | 2 | Recuperação3? / Prática: Desenvolvimento do Projeto | Lab Redes 1 | |
34 | 21/6 | 2 | Prática: Desenvolvimento do Projeto | Lab Redes 1 | |
35 | 25/6 | 2 | Prática: Desenvolvimento do Projeto | Lab Redes 1 | |
36 | 28/6 | 2 | Avaliação4: Apresentação do projeto | Lab Redes 1 | |
37 | 2/7 | 2 | Avaliação4 (continuação): Apresentação do projeto | Lab Redes 1 | |
38 | 5/7 | 2 | Encerramento da disciplina / Recuperação4? | Lab Redes 1 | |
TOTAL | 76 |