PRG1-2014-1-Engenharia Programação 1 - Engenharia
PRG1 - PROGRAMAÇÃO I
DADOS DA DISCIPLINA
CARGA HORÁRIA
TOTAL: 72 HORAS (4 HORAS/SEMANA)
TEÓRICA: 36 HORAS
LABORATÓRIO: 36 HORAS
DIAS COM AULA: 36 (18 semanas)
AVALIAÇÂO
Avaliações Semanais
Toda semana nas quinta feiras (aproximadamente 16 avaliações) - conceito se possível na hora
- meses de avaliação (março a junho)
- a última avaliação do mês terá caráter de recuperação
- não será permitida a consulta na avaliação
PROJETO FINAL
- grupos com 3 alunos;
- avaliação individual.
RECUPERAÇÃO FiNAL
- Ficará para recuperação o aluno que não conseguiu obter o conceito mínimo para passar em pelo menos uma das etapas avaliadas (mês) OU não obteve o sucesso no PROJETO FINAL
- última aula do semestre
- recuperação toda matéria
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.
Aula | Data | Horas | Conteúdo | Recursos | |
---|---|---|---|---|---|
1 | 13/2 | 2 | Aula introdução a lógica de programa. Conceito de algoritmos. Representação de algoritmos. Fluxograma. Variáveis e constantes. Expressões com operadores aritméticos e de atribuição. | ||
2 | 14/2 | 2 | Estruturas de decisão. Expressões com operadores lógicos e relacionais. | ||
3 | 20/2 | 2 | Introdução a programação C. Declaração de variáveis inteiras, reais e char no C. Uso do compilador gcc. Estruturas de decisçao com if e i eles. Expressões com operadores aritméticos, lógicos e relacionais. Operador de atribuição. | ||
4 | 21/2 | 2 | Lógica de programação: estruturas de repetição usando fluxogramas | ||
5 | 27/2 | 2 | Estruturas de repetição com a linguagem C: while, do while, for, goto. Uso do break e do continue. Uso do gdb em linha de comando. | ||
6 | 28/2 | 2 | Exercícios de Fixação | ||
7 | 6/3 | 2 | Estruturas de decisão. Comando switch. Outros comandos. Precedência de operadores no C. | ||
8 | 7/3 | 2 | Exercícios de Fixação. | ||
9 | 13/3 | 2 | Lógica de programação: quebrando problemas em subproblemas. Uso de subrotinas. Funções no C. Passagem de parâmetro e retorno de valor. AVALIAÇÂO 1 | ||
10 | 14/3 | 2 | Conceito de vetores. Vetores no C | ||
11 | 20/3 | 2 | Exercícios de vetores. AVALIAÇÂO 2 | ||
12 | 21/3 | 2 | Strings no C. Processamento de Strings. Exercícios | ||
13 | 27/3 | 2 | Strings no C. Processamento de Strings. AVALIAÇÂO 3 | ||
14 | 28/3 | 2 | Strings no C. Processamento de Strings. Exercícios | ||
15 | 3/4 | 2 | Exercícios de Fixação; AVALIAÇÂO 4 | ||
16 | 4/4 | 2 | RECUPERAÇÃO I | ||
17 | 10/4 | 2 | Operação com Matrizes no C | ||
18 | 11/4 | 2 | Exercícios com matrizes. AVALIAÇÃO 5 | ||
19 | 17/4 | 2 | Estruturas | ||
20 | 24/4 | 2 | Exercícios. AVALIAÇÂO 6 | ||
21 | 25/4 | 2 | Estruturas e vetores (Tabelas com estruturas). Typedef | ||
22 | 8/5 | 2 | Exercícios. AVALIAÇÃO 7 | ||
23 | 9/5 | 2 | RECUPERAÇÃO II | ||
24 | 15/5 | 2 | Tópicos adicionais: diretivas de préprocessamento. Compilação condicional; | ||
25 | 16/5 | 2 | Ponteiros – parte 1 | ||
26 | 22/5 | 2 | Exercícios. AVALIAÇÃO 8 | ||
27 | 23/5 | 2 | Ponteiros – parte 2 | ||
28 | 29/5 | 2 | Exercícios. AVALIAÇÃO 9 | ||
29 | 30/5 | 2 | Uso do make. Apresentação do Projeto Final. | ||
30 | 5/6 | 2 | Operação com arquivos – parte 1 | ||
31 | 6/6 | 2 | Exercícios. AVALIAÇÃO 10 | ||
32 | 12/6 | 2 | Operação com arquivos – parte 2 | ||
33 | 13/6 | 2 | Exercícios. AVALIAÇÂO 11 | ||
34 | 26/6 | 2 | RECUPERAÇÃO III | ||
35 | 27/6 | 2 | Projeto Final – Avaliação | ||
36 | 3/7 | 2 | Aula de Recuperação | ||
37 | 4/7 | 2 | Aula de Recuperação | ||
38 | 10/7 | 2 | Aula de Recuperação | ||
39 | 11/7 | 2 | RECUPERAÇÂO FINAL | ||
40 | / | ||||
TOTAL | 78 |
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 DIA 13/02/2014 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
AULA 1 DIA 13/03/2014Como fazer um churrascoVamos observar atentamente este vídeo para iniciarmos o nosso curso de programação: EmbedVideo received the bad id "U0xSYIXE9vo#!" for the service "youtube". O que tem o churrasco com a nossa aula?? Trata-se de uma sequência de passos para execução de um objetivo. EXERCÍCIO: Na forma textual, descrever as etapas para fazer um bom churrasco. O que é um algoritmoUm 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:
A PENSAR: É possível mudar a ordem das instruções? É possível paralelizar algumas instruções?
E para quem são os algoritmos?Uma receita de bolo é 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 - a linguagem C , por exemplo. 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 (próxima aula) A Descrição de Algoritmos usando FluxogramasUm fluxograma é uma linguagem semi-gráfica que pode ser utilizada para descrição de algoritmos. Exemplo: O algoritmo de cálculo da média de dois números: Pontos fortes:
Ponto fraco:
Observe no exemplo anterior que nada é dito sobre as variáveis NUM1, NUM2 e MEDIA. Símbolos de um FluxogramaTeste de MesaConstantes, VariáveisAlgoritmos operam sobre dados. O que podem ser estes dados? Variáveis e Constantes No exemplo anterior podemos identificar três variáveis NUM1, NUM2 e MEDIA Também podemos identificar uma CONSTANTE. O número 2.
Ex: NUM1 = 5.5 /* NUM1 é uma variável real */
Ex: RES = TRUE /* RES é uma variável booleana */
Ex: LETRA = 'A'
Ex: FRASE = "ALO MUNDO" E como estas variáveis armazenam os dados?? Depende da linguagem usada. Vamos passar uma primeira noção do C ExpressõesExpressões sentenças que relacionam variáveis e constantes através de operadores matemáticos e que RESULTAM em um valor. A instrução do algoritmo: MEDIA = (NUM1 + NUM2) / 2 será considerada como uma expressão, que usa os operadores '+', '/' e '=' O operador '=' é um OPERADOR DE ATRIBUIÇÃO e indica que a expressão do lado direito do '=' será atribuída a variável do lado esquerdo. Neste curso, para mantermos coerência com a Linguagem C, consideraremos que a expressão como um todo resulta no valor que é atribuído a variável. Operadores AritméticosOs operadores aritméticos que usaremos neste curso serão os disponíveis no C:
O único operador desconhecido aqui é o resto, cujo significado é o resto entre dois númerosinteiros. Exemplo, se B possui o valor 9, então o resultado da atribuição na expressão: A = B%2 será 1. Representando o algoritmo com pseudo-código
|
AULA 2 DIA 14/02/2014 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AULA 2 DIA 14/02/2014ObjetivosO aluno deverá saber utilizar comandos e expressões em pseudo-código e fluxogramas usando:
Expressões com operadores relacionaisNa aula anterior estudamos como construir expressões usando operadores aritméticos e o operador de atribuição. Vamos continuar este tópico aumentando o poder das expressões através dos operadores relacionais e lógicos. Os operadores relacionais permitem realizar comparações entre dois operandos. Os operadores são os seguintes:
Note que com operadores lógicos podemos construir expressões tais como indicado no exemplo abaixo: Exemplo: O algoritmo abaixo lê dois número inteiros para dentro das variáveis A e B e atribue à variável X o resultado da comparação do primeiro com o segundo. Observe que a variável X é do tipo booleano.
|