Académique Documents
Professionnel Documents
Culture Documents
Algoritmo
CONCEITO
5,0
5,0
5,0
O QUE UM ALGORITMO?
4,0
3,0
Algoritmos e Programao
O que um Algoritmo?
Um algoritmo uma seqncia finita de instrues bem definidas e no
ambguas, cada uma das quais pode ser executada mecanicamente num
perodo de tempo finito e com uma quantidade de esforo finita.
um conjunto determinstico de instrues que cumprem alguma tarefa, na
qual partindo
5,0 de um estado
5,0 inicial chegam a um determinado estado final.
5,0
4,0
3,0
Algoritmos e Programao
O que um Algoritmo?
Outras definies:
Um procedimento passo a passo para a soluo de um problema.
Uma seqncia detalhada de aes a serem executadas para realizar alguma
tarefa.5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
O que um Algoritmo?
O conceito de algoritmo freqentemente ilustrado pelo exemplo de uma
receita, embora muitos algoritmos sejam mais complexos.
5,0
4,0
3,0
Algoritmos e Programao
O que um Algoritmo?
Um algoritmo no representa, necessariamente, um programa de computador,
e sim os passos necessrios para realizar uma tarefa.
Sua implementao pode ser feita por um computador, por outro tipo de
autmato ou mesmo por um ser humano.
Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto
5,0 de instrues
5,0em mais ou menos tempo, espao ou esforo do que
diferenciado
outros.
5,0
4,0
3,0
Tal diferena pode ser reflexo da complexidade computacional aplicada, que
depende de estruturas de dados adequadas ao algoritmo.
Algoritmos e Programao
O que um Algoritmo?
Por exemplo, (algoritmo para se Vestir)
um algoritmo para se vestir pode especificar que voc vista primeiro as
meias e os sapatos antes de vestir a cala
enquanto outro algoritmo especifica que voc deve primeiro vestir a cala
e depois as meias e os sapatos.
5,0
5,0
Fica claro que o primeiro algoritmo mais difcil de executar que o segundo
apesar5,0
de ambos levarem
4,0ao mesmo resultado.
3,0
O conceito de um algoritmo foi formalizado em 1936 pela Mquina de Turing
de Alan Turing e pelo clculo lambda de Alonzo Church, que formaram as
primeiras fundaes da Cincia da Computao.
Algoritmos e Programao
O que um Algoritmo?
5,0
5,0
5,0
4,0
Algoritmos e Programao
O que um Algoritmo?
Histrico
No sculo XVIII na Europa, a traduo do nome de al-Khwarizmi
deu origem palavra algoritmo.
O primeiro caso de um algoritmo escrito para um computador foi
um programa
de Ada5,0
Byron para a mquina analtica de Charles
5,0
Babbage.
5,0
4,0
3,0
No sculo XX, as pesquisas de Alan Turing e Alonzo Church
formalizaram o que um algoritmo. A partir disto foi possvel definir
quais tipo de problemas um algoritmo pode resolver.
Algoritmos e Programao
O que um Programa?
Um programa de computador essencialmente um algoritmo que diz ao
computador os passos especficos e em que ordem eles devem ser executados,
como por exemplo, os passos a serem tomados para calcular as notas que sero
impressas nos boletins dos alunos de uma escola.
Para qualquer processo computacional, o algoritmo precisa estar
5,0
5,0
rigorosamente
definido,
especificando a maneira que ele se comportar em
todas as circunstncias.
5,0
4,0
3,0
Chamamos de programa de computador um conjunto de instrues que ser
executado pelo processador em uma determinada seqncia. Esse programa
leva o computador a executar alguma tarefa.
Algoritmos e Programao
Linguagens de Programao
Como podemos perceber, um programa nada mais que um tipo de
algoritmo.
Sua particularidade que suas operaes so especficas para o computador
e restritas ao conjunto de instrues que o processador pode executar.
Algoritmos e Programao
Linguagens de Programao
Classificamos as linguagens de programao segundo a sua proximidade com
a linguagem de mquina.
Quanto maior a semelhana com a linguagem de mquina, mais baixo o
nvel da linguagem.
5,0
Classificao:
5,0
5,0
4,0nvel: Linguagens
3,0de Programao
Linguagem de baixo
mais
Algoritmos e Programao
Linguagens de Programao
Linguagem de baixo nvel: trata-se de uma linguagem de programao que
compreende as caractersticas da arquitetura do computador.
Assim, utiliza somente instrues do processador, para isso necessrio
conhecer os registradores da mquina.
5,0sentido, as linguagens
5,0 de baixo nvel esto diretamente relacionadas
Nesse
com5,0
a arquitetura do computador.
4,0
3,0
Um exemplo a linguagem Assembly (no Assembler) que trabalha
diretamente com os registradores do processador, manipulando dados.
Algoritmos e Programao
Linguagens de Programao
ASSEMBLER
Algumas das desvantagens podem ser superadas fazendo com que o computador
seja o responsvel pelo estgio de traduo.
O programa
ainda escrito
em termos de operaes bsicas de mquina, mas a
5,0
5,0
traduo em cdigo binrio feita pelo computador.
Algoritmos e Programao
Linguagens de Programao
Linguagem de programao de alto nvel o que se chama na Cincia da
Computao de linguagens de programao com um nvel de abstrao
relativamente elevado, longe do cdigo de mquina e mais prximo
linguagem humana.
Desse
5,0modo, as linguagens
5,0 de alto nvel no esto diretamente relacionadas
arquitetura do computador. O programador de uma linguagem de alto nvel
no 5,0
precisa conhecer4,0
caractersticas 3,0
do processador, como instrues e
registradores. Essas caractersticas so abstradas na linguagem de alto nvel.
Algoritmos e Programao
Linguagens de Programao
Alguns exemplos de linguagens de alto nvel:
ASP
ActionScript
C/C++
C#
5,0
5,0
Pascal/Object Pascal
Euphoria
5,0
4,0
3,0
Java
PHP
Python
Tcl
Basic/Visual Basic
Algoritmos e Programao
Linguagens de Programao
A evoluo das linguagens de programao pode ser dividida em 5 etapas ou
geraes.
Primeira gerao: Linguagem mquina.
Segunda gerao: Criaram-se as primeiras linguagens assembler.
Terceira gerao: Criam-se as primeiras linguagens de alto nvel. Ex: C, Pascal,
Cobol5,0
5,0
Quarta gerao: So linguagens capazes de gerar cdigo por si s, so os
5,0 RAD, com o qual
4,0pode-se realizar
3,0aplicaes sem ser um expert na
chamados
linguagem. Aqui tambm se encontram as linguagens orientadas a objetos,
tornando possvel a reutilizao de partes do cdigo para outros programas.
Ex: Visual, Natural Adabes
Quinta gerao: Aqui se encontram as linguagens orientadas inteligncia
artificial. Estas linguagens ainda esto pouco desenvolvidas. Ex: LISP
Algoritmos e Programao
5,0
5,0
Para que um programa escrito em linguagem de montagem possa ser
5,0
4,0
executado pelo compilador, necessrio3,0
que seu cdigo seja traduzido para o
cdigo de mquina.
Algoritmos e Programao
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Compilador
O compilador, a partir do cdigo em linguagem de alto nvel, chamado de
cdigo-fonte, gera um arquivo com cdigo em linguagem de mquina,
conhecido como cdigo-objeto.
Este cdigo-objeto fica em disco e s carregado em memria no momento
da execuo.
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Compilador
Linguagem de 5,0
5,0
alto nvel
5,0
4,0
3,0
Algoritmos e Programao
Interpretador
O interpretador faz o mesmo trabalho, porm no gera o arquivo em cdigoobjeto.
As instrues so traduzidas para linguagem de mquina em tempo de
execuo, instruo a instruo.
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Interpretador
Linguagem de 5,0
5,0
alto nvel
5,0
4,0
3,0
Algoritmos e Programao
Cdigo-fonte
5,0
5,0
Memria
Compilador
(etapa 1)
5,0
4,0 Cdigo-objeto
3,0
executvel
Biblioteca do sistema
operacional
Cdigo-objeto
Compilador
(etapa 2)
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Mquina B
Mquina A
Cdigo-fonte
Java
Compilador
Bytecode
Java Virtual
Machine
Memria
Traduo de cada
instruo na fase de
execuo do programa
Algoritmos e Programao
Linguagem C
A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da
Bell Laboratories. Sua primeira utilizao importante foi a reescrita do Sistema
Operacional UNIX, que at ento era escrito em assembly.
Em meados de 1970 o UNIX saiu do laboratrio para ser liberado para as
universidades. Foi o suficiente para que o sucesso da linguagem atingisse
5,0 tais que, 5,0
propores
por volta de 1980, j existiam vrias verses de
compiladores
5,0 C oferecidas
4,0por vrias empresas,
3,0 no sendo mais restritas apenas
ao ambiente UNIX, porm compatveis com vrios outros sistemas operacionais.
O C uma linguagem de propsito geral, sendo adequada programao
estruturada. No entanto mais utilizada para escrever compiladores,
analisadores lxicos, bancos de dados, editores de texto, etc..
Algoritmos e Programao
Linguagem C
A linguagem C pertence a uma famlia de linguagens cujas caractersticas so:
portabilidade, modularidade, compilao separada, recursos de baixo nvel,
gerao de cdigo eficiente, confiabilidade, regularidade, simplicidade e
facilidade de uso.
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Linguagem C
C uma linguagem de programao compilada de propsito geral, estruturada,
imperativa, procedural, de alto nvel, e padronizada, criada em 1972, por Dennis
Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional UNIX (que foi
originalmente escrito em Assembly).
A linguagem C classificada de alto nvel pela prpria definio desse tipo de
5,0
5,0
linguagem.
5,0
4,0 de alto nvel
3,0 tem como caracterstica no ser
A programao
em linguagens
necessrio conhecer o processador, ao contrrio das linguagens de baixo nvel.
As linguagens de baixo nvel esto fortemente ligadas ao processador.
Algoritmos e Programao
Linguagem C
Assim, o baixo nvel realizado por Assembly e no C.
Desde ento, espalhou-se por muitos outros sistemas, e tornou-se uma das
linguagens de programao mais usadas, e influenciou muitas outras linguagens,
especialmente C++, que foi originalmente desenvolvida como uma extenso para
C.
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Linguagem C
4,0
3,0
Algoritmos e Programao
Linguagem C - Compiladores
5,0
5,0
5,0
4,0
Algoritmos e Programao
Linguagem C - Compiladores
5,0
5,0
Baixar e instalar.
4,0
3,0
Algoritmos e Programao
Linguagem C - Compiladores
www.codeblocks.org
5,0
5,0
Baixar e instalar.
5,0
4,0
3,0
Algoritmos e Programao
Fluxograma
5,0
5,0
Algoritmos e Programao
Fluxograma
5,0
5,0
4,0
3,0
Algoritmos e Programao
Fluxograma
A representao de algoritmos por
fluxogramas tem uma srie de vantagens:
meio
de
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Fluxograma
5,0
5,0
5,0
4,0
3,0
Trident E-23
Algoritmos e Programao
Fluxograma
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Fluxograma
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Algoritmos e Programao
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
5,0
DESVANTAGEM:
4,0
3,0
Algoritmos e Programao
Portugol
Portugol uma pseudo-linguagem de programao, criada para demonstrar o
uso de algoritmos. Est presente na maioria dos materiais didticos de
programao, em portugus, sobre o assunto.
Portugol (juno de Portugus com Algol [ALG96] [PRO04]).
5,0
5,0
5,0
4,0
3,0
Algoritmos e Programao
Portugol
Exemplo:
var num1, num2, maior: inteiro;
inicio
leia(num1, num2);
se(num1 > num2) ento
5,0
maior5,0
num1;
5,0seno maior4,0
num2;
escreva(maior);
fim
3,0