Programação de Computadores III

Propaganda
Programação de Computadores III
Aula 1
Professor Leandro Augusto Frata Fernandes
[email protected]
Material disponível em
http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063
Roteiro da Aula de Hoje
•
Parte I
Apresentação da Disciplina
•
Parte II
Introdução a Linguagens de Programação
TCC-03.063 Programação de Computadores III (2011.1)
2
1
Parte I
A
Apresentação
d
da Di
Disciplina
i li
TCC-03.063 Programação de Computadores III (2011.1)
3
Objetivos
•
Ensinar noções básicas
 Construção de algoritmos estruturados
 Programação de computadores
•
Ensinar a linguagem de programação FORTRAN
 FORmula TRANslation
 Criado pela IBM nos anos 50
 Linguagem mais antiga utilizada na engenharia
 FORTRAN 77 é a versão mais utilizada até hoje
TCC-03.063 Programação de Computadores III (2011.1)
4
2
Bibliografia Recomendada
•
FARRER, H. et al.
FORTRAN Estruturado
Editora Guanabara Koogan, 1992
•
GUIMARÃES, A.M.; LAGES, N.A.C.
Algoritmos e Estruturas de Dados
Editora LTC, 1994
•
CRISTO, H.P.
Programação em Linguagem FORTRAN
Belo Horizonte, 2003
TCC-03.063 Programação de Computadores III (2011.1)
5
Avaliação
•
Duas provas escritas (A1 e A2)
 Prova escrita
 Individual
 Sem consulta
•
Projeto final (A3)
 Implementação,
Implementação relatório e apresentação
 Em grupo
•
Média: (A1 + A2 + A3) / 3
TCC-03.063 Programação de Computadores III (2011.1)
6
3
Avaliação
Aprovado
• Freqüência >= 75%
Reprovado
• Freqüência < 75%
•
•
•
Média >= 6,0
Verificação Suplementar
•
•
•
Média < 4,0
Nota < 6,0 na
Verificação Suplementar
Freqüência >= 75%
4,0 <= Média < 6,0
Aprovado se nota >= 6,0
TCC-03.063 Programação de Computadores III (2011.1)
7
Presença
•
•
Cobrada por meio de lista de chamada
Regulamento dos cursos de graduação
 Presença mínima necessária de 75% das aulas
previstas (Art. 83, § 15)
 Em um total de 34 aulas, são toleradas até 8 faltas
 Nenhuma falta é abonada, exceto casos citados
no Art. 83, § 16
TCC-00.181 Interface Homem/Máquina (2011.1)
4
Projeto Final
•
•
Grupos de até três integrantes
Nota composta por
(Apresentação + Relatório + Implementação + Participação) / 4
•
Participação
 Cada integrante avalia os colegas de seu grupo
 Participação em sala também é levado em conta
 Seja pró-ativo desde o início
•
“Multa” de um ponto por dia de atraso na entrega
TCC-03.063 Programação de Computadores III (2011.1)
9
Informações Atualizadas
•
Lista de discussão
http://groups.google.com/group/uff_tcc03063_2011-1
Todos os alunos devem
se cadastrar nessa lista!
•
Página da disciplina
http://www ic uff br/ laffernandes/teaching/2011 1/tcc 03 063
http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063
TCC-03.063 Programação de Computadores III (2011.1)
10
5
Parte II
I
Introdução
d
a
Linguagens de Programação
TCC-03.063 Programação de Computadores III (2011.1)
Seis Camadas
11
Problema para Resolver
Projeto
Algoritmo
Linguagem de Programação
Software
Aplicativo (Programa)
Sistema Operacional
Arquitetura
TCC-03.063 Programação de Computadores III (2011.1)
Hardware
12
6
O que é dado?
•
•
Dado é o elemento a ser processado
Tipos de dados
 Numérico
o 42 (quarenta e dois), 3,14159265... (π), 10100 (um googol), etc.
 Alfabéticos
o Letras (A-Z)
(A Z)
 Alfanuméricos
o Números, letras, caracteres especiais ({, >, +, #)
TCC-03.063 Programação de Computadores III (2011.1)
13
Processamento de Dados
•
É o processo de receber dados, manipulá-los e
produzir
p
odu novos
o os dados ou resultados
esu tados
Dados Iniciais
Processamento
Entrada
Saída
Dados Finais
(Resultados Finais)
Transformações
•
Exemplos de processamento manual
 Procurar um número telefônico na lista telefônica
e anotá-lo numa caderneta
 Somar valores de compra de supermercado
TCC-03.063 Programação de Computadores III (2011.1)
14
7
Computador
•
Máquina que processa dados
 Menos tempo
 Maior segurança contra erro humano
•
Funções básicas do computador
 Entrada de dados
“A computer lets
make more mistakes faster
 Processamento
de you
dados
than any invention in human history - with the possible exceptions
 Saída de informações
of handguns and tequila.”
Mitch Ratcliffe
 Armazenamento de informações
TCC-03.063 Programação de Computadores III (2011.1)
15
Dado x Instrução x Programa
•
Dado
 Informação a ser processada
 Exemplos: Nome do aluno, número de matrícula, notas
•
Instrução
 Operação elementar que o computador pode
processar sobre os dados
 Tipos: transferência de dados, E/S, aritmética, comparação,
controle da seqüência do programa
programa, etc
etc.
•
Programa
 Conjunto de instruções, organizadas de forma que o
computador as execute em determinada ordem
TCC-03.063 Programação de Computadores III (2011.1)
16
8
Dado x Instrução x Programa
Definição do Problema
L i os cinco
Leia
i
números
ú
lilistados
t d abaixo:
b i
3, 5, 2, 4 e -13
Dado
Calcule o somatório desses números e
informe o resultado
Programa,
escrito, aqui, em uma
linguagem de programação
hipotética
Solução em um
Computador Hipotético
1. Iniciar acumulador com 0 (zero)
2. Ler primeiro valor
3. Acumular valor lido
4. Ler segundo valor
5. Acumular valor lido
6. Ler terceiro valor
7. Acumular valor lido
8. Ler quarto valor
9. Acumular valor lido Instrução
10. Ler quinto valor
11. Acumular valor lido
12. Mostrar valor no acumulador
TCC-03.063 Programação de Computadores III (2011.1)
17
Linguagens de Programação
•
•
Método padronizado para expressar instruções
Conjunto
C
j t d
de regras sintáticas
i táti
e semânticas
â ti
para definir
d fi i
um programa de computador
Sintaxe
Conjunto de regras formais
para a escrita de um programa
Semântica
Diz respeito ao significado do
programa sintaticamente válido
TCC-03.063 Programação de Computadores III (2011.1)
18
9
Linguagens de Programação
•
•
Método padronizado para expressar instruções
•
Permite ao programador especificar
Conjunto
C
j t d
de regras sintáticas
i táti
e semânticas
â ti
para definir
d fi i
um programa de computador
 ... sobre quais dados o computador vai atuar
 ... como os dados serão armazenados
 ... como os dados serão transmitidos
 ... quais ações devem ser tomadas
•
Exemplos: Pascal, C, Java, FORTRAN, C#
TCC-03.063 Programação de Computadores III (2011.1)
19
Gerações de Linguagens de Programação
•
1ª Geração – Linguagens de máquina
0010 0001 0110 1100
•
2ª Geração – Linguagens de montagem (Assembly)
Baixo Nível
ADD R1, TOTAL
•
3ª Geração – Linguagens orientadas ao usuário
Alto Nível
LET SOMA = VAR1 + TOTAL
IF SOMA > 3 THEN EXIT
•
4ª Geração – Linguagens orientadas à aplicação
LIST ALL NOME, ENDERECO, TELEFONE FOR CIDADE = “NITERÓI”
•
5ª Geração – Linguagens de conhecimento (IA)
TCC-03.063 Programação de Computadores III (2011.1)
20
10
1ª Geração
Linguagens de Máquina
•
Linguagem de máquina escrita em notação binária
0010 0001 0110 1100
Código da operação: adição
Endereço do registrador
Endereço da posição de
memória
ó i que contém
té o d
dado
d
•
Tradução
 Soma o dado armazenado no registrador 0001 com o dado
armazenado na posição de memória 0110 1100
TCC-03.063 Programação de Computadores III (2011.1)
21
2ª Geração
Linguagens de Montagem
•
•
Linguagem de baixo nível
Elimina a notação binária
 Introduz o uso de assemblers (montadores)
•
Usam códigos mnemônicos com letras e números para
representar os comandos
•
Exemplo de comandos
 LOAD B
Carrega no registrador o dado que está no endereço B
 ADD A
Adiciona ao registrador o dado que está no endereço A
TCC-03.063 Programação de Computadores III (2011.1)
22
11
3ª Geração
Linguagens Orientadas ao Usuário
•
•
Linguagens de alto nível
Usam comandos com nomes geralmente
auto-explicativos
 read, write, if, open, etc.
•
Exemplos de linguagens
 FORTRAN(1954)
Cobol ((1959)
959)
 Cobo
 Basic (1965)
 Pascal (1975)
 C (1980)
TCC-03.063 Programação de Computadores III (2011.1)
23
Exemplo FORTRAN
C Primeiro programa de Programacao de Computadores III
C Calcula e imprime a soma de dois valores inteiros
PROGRAM Soma2Int
INTEGER Int1, Int2, Soma
Int1 = 5
Int2 = 10
Soma = Int1 + Int2
PRINT* Int1,
PRINT*,
I t1 ‘+’,
‘ ’ Int2,
I t2 ‘=’,
‘ ’ Soma
S
STOP
END
TCC-03.063 Programação de Computadores III (2011.1)
24
12
4ª Geração
Linguagens Orientadas à Aplicação
•
•
Geram código a partir de expressões de alto nível
E
Exemplo
l d
de lilinguagens
 DBASE, SQL
•
Exemplo em DBASE
List All Nome, Endereco, Telefone
For Cidade = “Niterói”
•
Tradução: lê todos os registros que compõem um
arquivo e, para cada registro lido, seleciona aqueles
cuja cidade é “Niterói”
TCC-03.063 Programação de Computadores III (2011.1)
25
5ª Geração
Linguagens de Conhecimento
•
•
Inteligência artificial
Princípio
 São criadas bases de conhecimento, obtidas a partir de
especialistas, e as linguagens fazem deduções,
inferências e tiram conclusões baseadas no
conhecimento armazenado
•
Exemplos: Prolog, Lisp, Art
TCC-03.063 Programação de Computadores III (2011.1)
26
13
Nível das Linguagens de Programação
•
Alto Nível
 Capacidade da linguagem em compreender escritas em
dialetos próximos do inglês (Ada e Pascal, por exemplo)
•
Baixo Nível
 Aproximam-se da linguagem própria da máquina
 Compostas por instruções binárias e outras incompreensíveis
para alguém não treinado
•
Quanto mais clara para o ser humano
(simplicidade maior), mais obscura a linguagem será
para a máquina (velocidade menor)
TCC-03.063 Programação de Computadores III (2011.1)
27
Nível das Linguagens de Programação
Nível Baixo
Nível Médio
Nível Alto
Velocidade
Assembler
Clareza
C
Basic
COBOL
FORTRAN
Pascal
TCC-03.063 Programação de Computadores III (2011.1)
Ada
Modula-2
28
14
Montador x Compilador x Interpretador
Código Fonte
(linguagem de prog.)
... 000101101110010110010 ...
... LET SOMA = VAR1 + TOTAL ...
•
Código Objeto
(executável)
Tradutor
Montador
 Tradutor para linguagens de 2ª geração
•
Compilador
 Traduz linguagens de alto nível
nível, convertendo todo o código
fonte em código intermediário ou código objeto
•
Interpretador
 Traduz o programa instrução por instrução
TCC-03.063 Programação de Computadores III (2011.1)
29
Linguagens de Programação Bizarras
•
Top 10 Truly Bizarre Programming Languages
http://listverse.com/2011/02/17/top-10-truly-bizarre-programming-languages
Fonte: Listverse
Postado em 17 de fevereiro de 2011
TCC-03.063 Programação de Computadores III (2011.1)
30
15
Download