PRG1-2013-2-Engenharia Programação 1 - Engenharia

De MediaWiki do Campus São José
Revisão de 08h41min de 14 de agosto de 2013 por Eraldo (discussão | contribs) (Criou página com '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...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

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

Bibliografia Básica

  • SCHILDT, Herbert. C Completo e Total - 3.ed. [S.l.]: Makron, 1997. 830p. ISBN 978-8534605953

Referências Complementares

AULA 1 DIA 15/08/2013

AULA 1 DIA 15/08/2013

Como fazer um churrasco

Vamos 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 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
A PENSAR: É possível mudar a ordem das instruções?
É possível paralelizar algumas instruções?

O problema da raposa, do milho e da galinha

EmbedVideo received the bad id "yifW9XueSaI#!" for the service "youtube".


EXERCÍCIO 1: Descrever na forma de etapas um 
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 uma 
solução para o problema dos canibais/padres.

Torres de Hanoi

Veja este jogo:

EmbedVideo received the bad id "hLnuMXO95f8#!" for the service "youtube".
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 é 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, 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:
    • UCP (CPU) (Unidade Central de Processamento)
    • Barramentos
    • Memórias: Primária (semicondutora -> RAM e ROM) e Secundárias (disco, pendrive)
    • Dispositivos de Entrada e Saída de Dados (Teclado, Monitor etc)
  • 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.