PRG29002 - Programação I - Eng.Telecom 2017-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Dados importantes

Dados da Disciplina

Plano de aula

Aula Data Horas Conteúdo Recursos
1 9/2 2 Aula inaugural, apresentação do professor e turma, apresentação da disciplina e introdução aos algoritmos Lab Redes 2
2 14/2 2 Introdução ao fluxograma com resolução de exercícios Lab Redes 1
3 16/2 2 Prática de fluxogramas Lab Redes 2
4 21/2 2 Introdução ao pseudocódigo com resolução de exercícios Lab Redes 1
5 23/2 2 Pseudocódigo: Estruturas de repetição e sub-rotinas Lab Redes 2
6 2/3 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 2
7 7/3 2 Pseudocódigo: Uso de vetores e sub-rotinas Lab Redes 1
8 9/3 2 Prática: Resolução de problemas com vetores e sub-rotinas Lab Redes 2
9 14/3 2 Pseudocódigo: Registros e revisão geral (preparação para prova) Lab Redes 1
10 16/3 2 Pseudocódigo e fluxogramas: Resolução de exercícios (preparação para prova) Lab Redes 2
11 21/3 2 Avaliação: Introdução a algoritmos (fluxograma e pseudocódigo) Lab Redes 1
12 23/3 2 Prática: Correção da Avaliação / possível realização de recuperação Lab Redes 2
13 28/3 2 Introdução ao C, primeiros conceitos de compilação, variáveis, controle de fluxo com if… else, switch, entrada e saída de dados com printf e scanf, Lab Redes 1
14 30/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 2
15 4/4 2 Continuação C: estruturas de repetição Lab Redes 1
16 6/4 2 Prática: estruturas de repetição Lab Redes 2
17 11/4 2 Continuação C: funções Lab Redes 1
18 13/4 2 Prática: Funções em C Lab Redes 2
19 18/4 2 Introdução a vetores e matrizes em C. Resolução de exercícios de vetores Lab Redes 1
20 20/4 2 Prática: Resolução de exercícios de fixação de vetores. Lab Redes 2
21 25/4 2 Compreendendo melhor a função main e exit, gerando números pseudo-aleatórios, defines e operadores e precedências Lab Redes 1
22 27/4 2 Prática: Exercícios de C Lab Redes 2
23 2/5 2 Avaliação: C até funções Lab Redes 1
24 4/5 2 Prática: Correção da Avaliação / possível realização de recuperação Lab Redes 2
25 9/5 2 Structs e Unions Lab Redes 1
26 11/5 2 Prática: Structs e unions Lab Redes 2
27 16/5 2 Ponteiros Lab Redes 1
28 18/5 2 Prática: Exercicios ponteiros Lab Redes 2
29 23/5 2 Vetor de Ponteiros e Ponteiro Para Estruturas, typedef, recursividade, apresentação do projeto Lab Redes 1
30 25/5 2 Prática de Ponteiros e structs Lab Redes 2
31 30/5 2 Avaliação: C até structs Lab Redes 1
32 1/6 2 Prática: Correção da Avaliação / possível realização de recuperação / Desenvolvimento do projeto Lab Redes 2
33 6/6 2 Alocação dinâmica de memória, apresentação do projeto Lab Redes 1
34 8/6 2 Prática: Desenvolvimento do Projeto Lab Redes 2
35 13/6 2 Desenvolvimento do Projeto Lab Redes 1
36 20/6 2 Desenvolvimento do Projeto Lab Redes 1
37 22/6 2 Prática: Desenvolvimento do Projeto Lab Redes 2
38 27/6 2 Desenvolvimento do Projeto Lab Redes 1
39 29/6 2 Avaliação: Apresentação do projeto Lab Redes 2
40 4/7 2 Recuperação: Projeto Lab Redes 1
TOTAL 80

Diário de aula

Introdução aos algoritmos utilizando fluxograma

  • Apresentada ementa através dos slides disponibilizados.
  • 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).
    • 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
  • 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.
  • Exemplo:
    • Calcula média de dois números
      Media de dois numeros.jpg
    • Observar uso de Terminador de inicio, Entrada de dados: NUM1, Entrada de dados: NUM2, Calcula, Exibe a média e Terminador de fim
  • 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
    • Cozinhar macarrão instantâneo
    • Cozinhar miojo com ovo
    • Trocar o pneu de um carro
    • Enviar um e-mail
    • Pegar um livro na biblioteca
    • Calcular a área de um cômodo

Ansi flowchart.jpg
Flowchart libreoffice.png

  • Outros conceitos trabalhados
    • abstração
    • estruturas de dados

Desenvolvendo algoritmos na forma de fluxogramas

Exercícios:

  • Desenvolve um algoritmo na forma de fluxograma para cálculo da média de dois números fracionários exibindo o resultado
  • Desenvolva um algoritmo na forma de fluxograma que calcula a média de consumo de um veículo. Deve obter a distância que um veículo percorreu e a quantidade de litros consumida, exibindo em tela o consumo médio em km/l.
  • Desenvolva um algoritmo na forma de fluxograma que lê dois valores inteiros e apresenta qual é o valor maior
  • Desenvolva um algoritmo na forma de fluxograma que lê dois valores inteiros e apresenta a diferença do maior para o menor
  • Desenvolva um algoritmo na forma de fluxograma que obtém a nota do aluno e mostra em tela o conceito sabendo que A se for >= 9.0, B >= 7.5 e < 9.0, C >= 6.0 e < 7.5 e D < 6.0
  • Desenvolva um algoritmo na forma de fluxograma que obtém do usuário 10 valores, calcula a média e exibe (utilize uma estrutura de repetição)
  • Desenvolva um algoritmo na forma de fluxograma que implementa a técnica de pomodoro, mostrando ao usuário o cronômetro e mensagens de quando deve fazer pausas (Siga os passos descritos aqui
    1. Choose a task you want to get done. Write it down.
    2. Set the your Pomodoro/timer to 25 minutes.
    3. Work on the task until the timer goes off. Tick the task off.
    4. Take a 5 minute break.
    5. Repeat.
    6. Every 4 Pomodoros take a longer break between 15 and 30 minutes.