Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2017-2"
Ir para navegação
Ir para pesquisar
Linha 166: | Linha 166: | ||
#Implemente em pseudocódigo um programa que obtém o nome de 10 alunos e suas 4 notas para cada aluno. No final deve imprimir um relatório mostrando cada aluno por nome, a média de suas notas e sua situação final (aprovado se a média for >= 6). Utilize vetores, matrizes e estruturas de repetição PARA. | #Implemente em pseudocódigo um programa que obtém o nome de 10 alunos e suas 4 notas para cada aluno. No final deve imprimir um relatório mostrando cada aluno por nome, a média de suas notas e sua situação final (aprovado se a média for >= 6). Utilize vetores, matrizes e estruturas de repetição PARA. | ||
#Desenvolva uma algoritmo na forma de pseudocódigo para calcular o consumo médio de energia de uma casa ao longo de 12 meses. Para isso implemente um loop principal que solicita ao usuário que digite os valores de potencia em kWh consumidos em cada mês. Armazene em uma matriz 3x4, onde cada linha representa uma estação do ano. Apresente a média de consumo em cada estação, exibindo nome da estação e valor. Deve também exibir a média geral do ano no final. Considere verão os meses 12, 1 e 2; Outono 3, 4 e 5; Inverno 6, 7 e 8 e Primavera 9, 10 e 11. | #Desenvolva uma algoritmo na forma de pseudocódigo para calcular o consumo médio de energia de uma casa ao longo de 12 meses. Para isso implemente um loop principal que solicita ao usuário que digite os valores de potencia em kWh consumidos em cada mês. Armazene em uma matriz 3x4, onde cada linha representa uma estação do ano. Apresente a média de consumo em cada estação, exibindo nome da estação e valor. Deve também exibir a média geral do ano no final. Considere verão os meses 12, 1 e 2; Outono 3, 4 e 5; Inverno 6, 7 e 8 e Primavera 9, 10 e 11. | ||
− | #Implemente em pseudocódigo o código descrito no fluxograma abaixo:<br> [[Imagem: Fluxograma_Mediana.png]] | + | #Implemente em pseudocódigo o código descrito no fluxograma abaixo:<br> [[Imagem: Fluxograma_Mediana.png|200px]] |
Exercícios complementares: | Exercícios complementares: |
Edição das 10h28min de 29 de agosto de 2017
Dados importantes
- Professor da Disciplina: Cleber Jorge Amaral
- Email: cleber.amaral@ifsc.edu.br
- Atendimento paralelo: terças e quintas das 12:00 as 13:00 na Sala Multimeios de Tele (ao lado da reprografia)
- Agenda do professor: Ver página
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
- Ementa disponível nos slides disponibilizados no moodle.
- Conceito de Algoritmo: Sequência ordenada de passos para resolução de um dado problema.
- Para que serve e como abordaremos?
- Algoritmos estão associados a automação de processos, permitem descrever os passos que uma máquina (mecânica ou eletrônica) irá realizar geralmente de maneira repetitiva (garantindo repetibilidade). Vídeo What is an Algorithm
- Trabalharemos neste curso com problemas bem definidos que possuem objetivos, caminhos de solução e expectativa de solução claros.
- Formas de representação
- Descrição narrativa: Descrição informal de uma situação e passos para solução de um problema
- Fluxograma: Operações são representadas por formas geométricas
- Pseudo-código: Representação de comportamento e ações por meio de regra predefinida
- Códigos de programação: Um PROGRAMA implementa um algoritmo. É o algoritmo materializado na forma de uma sequência de instruções.
- Descrição narrativa
- Trata-se de um texto livre mas é sugerido organizar em tópicos como os seguintes:
- Cenário;
- Problema;
- Dados de entrada e saída;
- Solução esperada;
- Etapas;
- Solução proposta.
- Exemplos comuns são receitas de culinária, mas pode-se descrever de forma narrativa qualquer tipo de algoritmo.
- Descreva o algoritmo para fazer um ovo frito
- Descreva o algoritmo para cozinhar macarrão instantâneo
- Trata-se de um texto livre mas é sugerido organizar em tópicos como os seguintes:
- Fluxogramas
- Um fluxograma é uma linguagem semi-gráfica que pode ser utilizada para descrição de algoritmos.
- Existem diferentes padrões, aqui utilizaremos o ANSI.
- Para desenvolver um algoritmo utilizaremos operações basicamente as seguintes operações:
- Sinalização de início e fim do algoritmo (ovalado): representam quando o programa é instanciado e quando é destruído
- Processamento (Instrução): são ações gerais, podem ser processamentos matemáticos, ações físicas de movimentação e muitas outras. Há outros símbolos de fluxograma que especificam mais ações como gravar em banco de dados, gerar relatório, neste caso aqui podemos usar o símbolo de processamento para representar estas ações bastando especificá-las.
- Entrada de dados: representa algo que o programa lê, alguma informação vinda, normalmente do usuário, que está sendo inserida no programa.
- Saída de dados: representa alguma informação que o programa gerou ao usuário, pode ser uma mensagem na tela, uma luz piscando, etc.
- Decisão: Este bloco representa a tomada de decisão, a resposta a uma pergunta que normalmente pode ser SIM ou NÃO. Terá portanto duas flexas de saída. Observe que o programa poderá tomar cursos diferentes a partir deste bloco.
- Processo pré-definido (subrotina): Usado na abstração de alguns processos que seriam melhor descritos isoladamente. O início e fim de uma subrotina utiliza os mesmos blocos início e fim descritos acima (utilizando o nome da subrotina para especificar).
- Terminador (início/fim) redondo: representa normalmente um concentrador de fluxo, quando vários caminhos chegam a um certo ponto. Pode também ser usado na paginação numerando términos parciais para representação em outra área do desenho.
- No libreoffice utilize a ferramenta Libreoffice Draw, há uma paleta específica para fluxogramas.
- Exemplos de algoritmos (como seriam os fluxogramas destes algoritmos?):
- Outros exemplos de algoritmos para exercitar fluxogramas (pode-se abstrair e fazer de modo simplificado na forma de uma série de processos ou modo mais completo com condicionais):
- Fritar um ovo
- Trocar o pneu de um carro
- Enviar um e-mail
- Pegar um livro na biblioteca
- Calcular a área de um cômodo
- Cozinhar macarrão instantâneo
- Cozinhar miojo com ovo Vídeo Manual do Mundo
- Outros conceitos trabalhados
- abstração
- estruturas de dados
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
|
Plano de aula
Aula | Data | Horas | Conteúdo | Recursos | |
---|---|---|---|---|---|
1 | 28/7 | 2 | Sem atividades de PRG – reposição de férias – horário disponível para outras atividades letivas | Lab Redes 1 | |
2 | 1/8 | 2 | Sem atividades de PRG – reposição de férias – horário disponível para outras atividades letivas | Lab Redes 1 | |
3 | 4/8 | 2 | Aula inaugural, apresentação do professor e turma, apresentação da disciplina e introdução aos algoritmos | Lab Redes 1 ou Redes 2 | |
4 | 8/8 | 2 | Prática de fluxogramas | Lab Redes 1 | |
5 | 11/8 | 2 | Introdução ao pseudocódigo até condicionais com resolução de exercícios | Lab Redes 1 ou Redes 2 | |
6 | 15/8 | 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 | |
7 | 18/8 | 2 | Pseudocódigo: Uso de vetores e sub-rotinas | Lab Redes 1 ou Redes 2 | |
8 | 22/8 | 2 | Prática: Resolução de problemas com vetores e sub-rotinas | Lab Redes 1 | |
9 | 25/8 | 2 | Pseudocódigo e fluxogramas: Registros e revisão geral | Lab Redes 1 ou Redes 2 | |
10 | 29/8 | 2 | Pseudocódigo e fluxogramas: Exercícios de preparação para prova | Lab Redes 1 | |
11 | 1/9 | 2 | Avaliação1: Introdução a algoritmos (fluxograma e pseudocódigo) | Lab Redes 1 ou Redes 2 | |
12 | 5/9 | 2 | Prática: Correção da Avaliação | Lab Redes 1 | |
13 | 12/9 | 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 | |
14 | 15/9 | 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 ou Redes 2 | |
15 | 19/9 | 2 | Prática C | Lab Redes 1 | |
16 | 22/9 | 2 | Continuação C: estruturas de repetição | Lab Redes 1 ou Redes 2 | |
17 | 26/9 | 2 | Prática: estruturas de repetição | Lab Redes 1 | |
18 | 29/9 | 2 | Continuação C: funções | Lab Redes 1 ou Redes 2 | |
19 | 3/10 | 2 | Prática: Funções em C | Lab Redes 1 | |
20 | 6/10 | 2 | Avaliação2: C até funções | Lab Redes 1 ou Redes 2 | |
21 | 10/10 | 2 | Correção da prova | Lab Redes 1 | |
22 | 17/10 | 2 | Recuperação2? / Prática para resolução de exercícios | Lab Redes 1 | |
23 | 20/10 | 2 | Introdução a vetores e matrizes em C. | Lab Redes 1 ou Redes 2 | |
24 | 24/10 | 2 | Resolução de exercícios de vetores Prática: Resolução de exercícios de fixação de vetores. | Lab Redes 1 | |
25 | 27/10 | 2 | Structs e Unions | Lab Redes 1 ou Redes 2 | |
26 | 31/10 | 2 | Prática: Structs e unions | Lab Redes 1 | |
27 | 7/11 | 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 | |
28 | 10/11 | 2 | Ponteiros | Lab Redes 1 ou Redes 2 | |
29 | 14/11 | 2 | Prática: Exercicios ponteiros | Lab Redes 1 | |
30 | 17/11 | 2 | Vetor de Ponteiros e Ponteiro Para Estruturas, typedef, recursividade, apresentação do projeto | Lab Redes 1 ou Redes 2 | |
31 | 21/11 | 2 | Prática de Ponteiros e structs | Lab Redes 1 | |
32 | 24/11 | 2 | Avaliação: C até structs e ponteiros | Lab Redes 1 ou Redes 2 | |
33 | 28/11 | 2 | Prática: Correção da Avaliação / Desenvolvimento do projeto | Lab Redes 1 | |
34 | 1/12 | 2 | Apresentação do projeto. Prática: Desenvolvimento do Projeto | Lab Redes 1 ou Redes 2 | |
35 | 5/12 | 2 | Recuperação3? / Prática: Desenvolvimento do Projeto | Lab Redes 1 | |
36 | 8/12 | 2 | Prática: Desenvolvimento do Projeto | Lab Redes 1 ou Redes 2 | |
37 | 12/12 | 2 | Avaliação4: Apresentação do projeto | Lab Redes 1 | |
38 | 15/12 | 2 | Avaliação4 (continuação): Apresentação do projeto | Lab Redes 1 ou Redes 2 | |
39 | 19/12 | 2 | Encerramento da disciplina / Recuperação4? | Lab Redes 1 | |
TOTAL | 80 |
Conceitos
Ver moodle da disciplina.