Mudanças entre as edições de "PRG1-2012-2-Engenharia"
Linha 193: | Linha 193: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | EXERCÌCIO 5: Implementar o algoritmo com o Scratch. | ||
=== Plano de Ensino === | === Plano de Ensino === |
Edição das 23h44min de 3 de outubro de 2012
PRG1 - PROGRAMAÇÃO I
CARGA HORÁRIA
TOTAL: 72 HORAS (4 HORAS/SEMANA)
TEÓRICA: 36 HORAS
LABORATÓRIO: 36 HORAS
DIAS COM AULA: 36 (18 semanas)
PRÉ REQUISITOS: LÓGICA
EMENTA
Introdução a lógica de programação e algoritmos. Constantes, variáveis e tipos de dados. Operadores aritméticos, relacionais e lógicos. Concepção de fluxograma e pseudocódigo. Estruturas de decisão e estruturas de repetição. Introdução a linguagem de programação c. Vetores de caracteres e multidimensionais. Ponteiros e aritmética de ponteiros. Funções: chamada por valor e por referência. Chamada recursiva de funções. Tipos de dados compostos. Operação com arquivos textos e binários.
Bibliografia Básica
- SCHILDT, Herbert. C Completo e Total - 3.ed. [S.l.]: Makron, 1997. 830p. ISBN 978-8534605953
Referências Complementares
- Apostila adotada: Curso de Linguagem C - Engenharia Elétrica - UFMG
AULAS
AULA 1
Como fazer um churrasco
Vamos observar atentamente este vídeo para iniciarmos o nosso curso de programação:
O que tem o churrasco com a nossa aula?? Bem, trata-se de uma sequência de passos para execução de um objetivo.
EXERCÍCIO: Na forma textual, enumerar as etapas para fazer um bom churrasco.
O que é um algoritmo
Um algoritmo pode ser visto como uma sequência de instruções ou operações que resolvem um dado problema.
A receita de um bom churrasco corresponde a um algoritmo.
Como representar um algoritmo ?
Uma forma é representar na forma textual ordenada:
1.Comprar a carne 2.Colocar carvão na churrasqueira 3.Acender o carvão 4.Cortar a carne (picanha) 5.Espetar a carne 6.Salgar a carne 7.Colocar a carne na churrasqueira 8.Aguardar a carne ficar no ponto desejado 9.Bater a carne 10.Servir a carne
Outras formas são mais apropriadas para o uso no meio computacional:
- pseudo-código
- fluxogramas
Um outro exemplo
O problema da raposa, do milho e da galinha.
EXERCÍCIO 1: Descrever na forma de etapas a solução para o problema da raposa, do milho e da galinha.
Note que somente é possível escrever o algoritmo se tivermos uma solução para o problema.
EXERCÍCIO 2: Descrever na forma de etapas a solução para o problema dos canibais/padres.
Torres de Hanoi
Veja este jogo:
EXERCÍCIO 3: Escrever na forma de etapas numeradas a solução para o problema das torres de Hanói usando 3 discos.
EXERCÍCIO 4: Escrever na forma de etapas numeradas a solução para o problema das torres de Hanói usando 4 discos.
E para quem são os algoritmos?
Uma receita de bolo serve é apropriada para ser executada por um ser humano. Um procedimento de como trocar um pneu também. Mas muitas vezes queremos que o algoritmo seja executado por uma máquina! O computador é perfeito para isto!
Neste curso vamos nos concentrar no desenvolvimento de algoritmos simples, desde a sua concepção até a sua implementação através de uma LINGUAGEM DE PROGRAMAÇÃO, em um computador.
Um PROGRAMA implementa um algoritmo. É o algoritmo materializado na forma de uma sequência de instruções.
Neste sentido, vamos entender minimamente o funcionamento de um computador.
Como funciona um computador? Como ele executa programas ("receitas")?
- Partes de um computador:
- O computador é digital:
- Dados e Instruções são sequências de bits
- Representação de dados em sistemas computacionais: uso de códigos (ex:código ASCII);
A -> 01000001 B -> 01000010
- As instruções também são palavras binárias interpretadas pela CPU;
De forma simplificada podemos dizer que as instruções ficam em uma memória de programa enquanto os dados a serem processados pelo programa ficam em uma memória de DADOS;
O programa que está na memória de programa está escrito em LINGUAGEM DE MÁQUINA
- Funcionamento Simplificado de um Computador
Suponha que um programa a ser executado se encontra em uma memória de programa. Ao ligar o sistema, a CPU busca na memória de programa uma instrução a ser executada (ciclo de busca) e, então, executa a instrução (ciclo de execução). Na SEQUÊNCIA, a CPU busca a PRÓXIMA instrução na memória de programa, e assim sucessivamente...
O fluxo de execução do programa é, a princípio SEQUENCIAL no sentido que a execução de uma instrução é realizada somente após a execução da instrução antecedente.
(apresentação do Prof.Semprebom sobre computadores)
Possíveis linguagens de programação
Na prática, é inviável desenvolver programas complexos em LINGUAGEM DE MÁQUINA. Em geral, utilizamos linguagens de ALTO NÍVEL que podem, de alguma forma, serem traduzidas (compiladas) para a linguagem de baixo nível ou interpretadas em tempo de execução.
Exemplo:
- Linguagem C
- Fortran
- Basic
- C++
- Pascal
- Java
- Python
Neste curso utilizaremos a linguagem C. Por que? É uma linguagem muito usada na implementação de produtos eletrônicos, incluindo àqueles voltados as Telecomunicações.
Um exemplo completo
PROBLEMA: Computar a média de dois números reais fornecidos pelo teclado. Mostrar o resultado no monitor.
SOLUÇÃO:
ALGORITMO DADOS DE ENTRADA: NUM1 e NUM2 DADOS DE SAÍDA: MEDIA INÍCIO 1.Ler NUM1 2.Ler NUM2 3.MEDIA <- (NUM1+NUM2)/2 4.Mostrar MEDIA FIM
/* Calculador de media de dois números reais */
#include <stdio.h>
main()
{
float num1,num2;
scanf(&num1);
scanf(&num2);
media = (num1+num2)/2;
printf ("media =\n", media);
}
EXERCÌCIO 5: Implementar o algoritmo com o Scratch.
Plano de Ensino
Agora que temos uma ideia do que será tratado neste curso, vamos apresentar o plano de ensino.