Buscar

Curso completo de algorítimos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução
Alison Zille Lopes
Aula 0
Conceitos Iniciais
2
HardwareSoftware
A presença dos programas
3
Entrada e Saída
Dispositivos de entrada Dispositivos de saída
4
Arquitetura Básica
5
Introdução
• Lentos
• Pouco confiáveis
Década de 40 e início da década de 50
• Caros
•Memória pequena
• Difícil programação
ENIAC (Electronic Numerical Integrator Analyzer and Computer)
Contituído por 17.468 válvulas 
Programado por 6000 chaves manuais
6
Introdução
Complexidade Complexidade
Custo
Custo
7
Introdução
Hardware
Linguagem de máquina
Programação
Programação e leitura difíceis
Linguagens de nível mais elevado 
Solução?
8
Introdução
• Linguagem: Qualquer meio que sirva para 
exprimir sensações ou idéias.
Linguagens 
de 
Programação
9
Linguagem de Programação
Linguagens de alto nível
Linguagem de máquina
10
Linguagem de Programação
• Algoritmo: conjunto finito de instruções, 
numa determinada seqüência, que quando é 
executado leva à solução de um problema.
• Em geral, algoritmos trabalham sobre 
Estruturas de Dados
– Conjunto de dados que representa uma situação 
real
– Abstração da realidade
11
Tradução
• Um programa é uma formulação concreta de 
um algoritmo abstrato, baseado em 
representações de dados específicas
Linguagem de 
Programação
Algoritmo Tradução
Linguagem de 
Máquina
12
Tradução
• Compilação: A tradução ocorre pela conversão em 
linguagem de máquina, que pode ser executada no 
computador.
• Interpretação: Um programa chamado interpretador 
é responsável pela tradução e execução, mas sem a 
conversão.
• Sistema de implementação Híbrido: 
Compilação/Interpretação
13
Compilação
Código fonte
Analisador 
léxico
Analisador 
sintático
Otimização (opcional)
sintático
Gerador de 
código 
intermediário
Gerador de 
código
Computador
Tabela de 
símbolos
Resultados
Dados de entrada
14
Interpretação
Código fonte
Interpretador
Dados de entrada
Computador
Resultados
15
Sistema de Implementação Híbrido
Código fonte
Analisador 
léxico
Analisador 
sintático
Otimização (opcional)
sintático
Gerador de 
código 
intermediário
Tabela de 
símbolos
Resultados
Dados de entrada
Computador
Interpretador
16
Pseudocódigo
• Assemblers e linguagens de montagem
– Short code: interpretada, codificação de difícil 
compreensão, utilizado no UNIVAC I, códigos de 
12 bits em palavras de 72 bits.12 bits em palavras de 72 bits.
– Speed coding: interpretada, incluía pseudo-
instruções para as 4 operações aritméticas, além 
de raiz, seno, arco-tangente, exponenciação e 
logaritmo.
– Assembly: mnemônicos representavam instruções 
de máquina, uso de assemblers.
17
Linguagens imperativas
• As primeiras linguagens de programação 
surgiram no final da década de 50 e 60 para 
facilitar o trabalho de programação
• Por conta da cultura de programação e 
limitações dos recursos computacionais à 
época, as linguagens foram fortemente 
influenciadas pela linguagem de máquina e 
pela arquitetura dos computadores.
18
Linguagens imperativas
• FORTRAN (1957):
– Primeira linguagem imperativa
– Desenvolvida inicialmente para o IBM 704
– Enfatizava a eficiência Computacional– Enfatizava a eficiência Computacional
– Não enfocava eficiência do programador (uso da 
estrutura de controle GOTO)
– Sua ultima versão FORTRAN 90, incorpora avanços 
de outras LPs
19
Linguagens imperativas
• COBOL (1960)
– Primeira linguagem encomendada pelo 
Departamento de defesa americano
– Destinada a aplicações comerciais (muitos dados e – Destinada a aplicações comerciais (muitos dados e 
pouca computação)
– Tentou enfatizar a legibilidade e acabou 
comprometendo a redigibilidade
20
Linguagens imperativas
• ALGOL (1960)
– Criada por um comitê especialista
– Grande importância teórica
– Influenciou fortemente as linguagens imperativas – Influenciou fortemente as linguagens imperativas 
subsequentes
– Não foi uma linguagem muito utilizada
21
Linguagens imperativas
(Instruções + Dados)
Memória
Arquitetura de Von Neumann
Unidade lógica e 
aritmética
Unidade de 
controle
CPU
Entrada e Saída
22
Linguagens imperativas
• Variáveis modelam as posições de memória
• Instruções de atribuição são baseadas na 
operação de canalizaçãooperação de canalização
• Forma iterativa de repetição, sendo o método 
mais eficiente na arquitetura de Von 
Neumann
23
Variáveis
• Variáveis são abstrações de posições de 
memória. Podem armazenar tipos de dados 
tais como inteiro, real, caractere...
• Variáveis, em linguagens de programação, são 
representadas por nomes chamados 
identificadores.
24
Atribuição
• Considerando, por exemplo, as variáveis 
inteiras nomeadas como soma e parcela:
– soma = soma + parcela;
– soma e parcela são canalizados da memória para a – soma e parcela são canalizados da memória para a 
CPU
– Então, o resultado é canalizado para a memória 
(posição ocupada pela variável soma)
soma e 
parcela
CPU soma
25
Iteração
Memória
Programa
26
Linguagens imperativas
• O uso indiscriminado do comando de controle 
GOTO trouxe sérios problemas a legibilidade 
dos códigos fonte.
• No final dos anos 60, as LPs passaram a 
enfocar a eficiência na produtividade dos 
programadores.
27
Linguagens imperativas
• Surgimento da programação estruturada.
• Linguagens que surgiram nessa época:
– Pacal (1971): projetada para o ensino de – Pacal (1971): projetada para o ensino de 
programação estruturada.
– C (1972): projetada para ser utilizada no 
desenvolvimento de sistemas de programação 
(em particular o sistema operacional UNIX)
28
Programação estruturada
• A programação estruturada preconiza que 
todos os programas possíveis podem ser 
reduzidos a apenas três estruturas:
– Sequência: execução sequencial de instruções
– Seleção: escolha efetuada de acordo com a 
avaliação de um dada condição
– Repetição: repetição de instruções até a 
ocorrência de um determinado evento
29
Programação estruturada
• A programação estruturada orienta os 
programadores para a criação de estruturas 
simples em seus programas, através do uso de 
sub-rotinas.sub-rotinas.
• Sub-rotinas são conjuntos de instruções com 
função bem definida. Muitas vezes 
mencionadas como sub-programas.
30
Programação estruturada
• As subrotinas podem ser de dois tipos:
– Procedimentos: não retornam valor.
• Ex: Exibir um valor na tela, mover cursor, ...• Ex: Exibir um valor na tela, mover cursor, ...
– Funções: retornam valor.
• Ex: somar, enviar uma carta com aviso de recebimento.
31

Outros materiais