Você está na página 1de 34

Laboratory of Software Engineering and Computer Network

Engineering for a better life

Universidade Federal do Maranho Curso de Engenharia Eltrica

ALGORITMOS
Superviso: Prof. Dr. Denivaldo Lopes

Adelman Wallyson de Sousa Benigno


LESERC (Laboratrio de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/ Contato: denivaldo.lopes AT dee.ufma.br

Sumrio
Introdu Introduo a algoritmos - PseudolinguagemPseudolinguagem-Portugol - Vari Variveis - Operadores aritm aritmticos - Operadores relacionais - Operadores L Lgicos Controle de Fluxo - Estruturas sequenciais - Estruturas condicionais - Estruturas de repeti repetio - Estruturas de m mltipla escolha Fun Funo - Conceito - Objetivos - Como funciona - Algoritmo exemplo Recursividade - Conceito - Vantagens e Desvantagens - Algoritmo exemplo Gerenciamento de Exce Excees - Conceito - Tratamento de exce excees - Algoritmo exemplo Considera Consideraes finais Referncias bibliogr bibliogrficas

INTRODUO A ALGORITMOS
Conceito

Algoritmo a descrio de um conjunto de aes que resultam numa sucesso finita de passos, com o intuito de resolver um determinado problema.
O conceito central da programao e da cincia da computao o conceito de algoritmo.
(WIRTH - Professor da Universidade de Zurique, autor de diversos livros na rea e respons responsvel pela cria criao de linguagens de programa programao como ALGOL e PASCAL)

INTRODUO A ALGORITMOS
Pseudolinguagem-Portugol
- O Portugol (simbiose do Portugus com o ALGOL e PASCAL) uma pseudolinguagem de programao, que permite pensarmos no problema sem perder a flexibilidade e a proximidade com a linguagem humana, facilitando a interpretao. - Neste tutorial, ns usamos o software Visualg (http://www.apoioinformatica.inf.br/) para emular a execuo dos algoritmos em portugol.

INTRODUO A ALGORITMOS
Variveis
- como so chamados os locais onde so armazenados possveis valores do tipo bsico associado. O nome da varivel um identificador. - Tipos bsicos de dados: INTEIRO: qualquer nmero inteiro, negativo, nulo ou positivo. Ex.: -15, 0, 101 REAL: qualquer nmero real, negativo, nulo ou positivo. Ex.: -1, -0.5, 0, 5, 9.5 CARACTER: qualquer conjunto de caracteres alfanumricos. Ex.: 123, A123 , CASA LGICO: conjunto de valores (FALSO ou VERDADEIRO)

INTRODUO A ALGORITMOS
Operadores aritmticos
Operador
+ * / DIV Adio Subtrao Multiplicao Diviso (onde o resultado ser um nmero real) Diviso (onde o resultado ser um nmero inteiro) Resto de uma diviso Exponenciao

Operao

Exemplo
10 + 15 20 10 3*5 5 / 2 = 2,5 10 div 2 = 5 7 div 2 = 3 7 mod 2 = 1 5 ** 2 ou exp(5, 2)

MOD ^ ou exp(a, b)

INTRODUO A ALGORITMOS
Operadores relacionais Operador
= <> > >= < <= Igualdade Diferente Maior que Maior ou igual a Menor que Menor ou igual a

Relao

INTRODUO A ALGORITMOS
Operadores lgicos
Operador E (And) Ou (Or) No (Not) Ou-X (Xor) P F F V V Q F V F V E lgico Ou lgico Negao lgica Ou Exclusivo PeQ F F F V P ou Q F V V V P ou-X Q F V V F Relao

CONTROLE DE FLUXO
Conceito - Habilidade de ajustar a maneira como um programa realiza suas tarefas. Por meio de instrues especiais, chamadas comandos, essas tarefas podem ser executadas.

CONTROLE DE FLUXO
Estruturas Sequenciais
-Conjunto de comandos que sero executados numa seqncia linear de cima para baixo.
comando 1 comando 2 incio comando 3 meio comando 3 fim comando 3 ... comando n

CONTROLE DE FLUXO
Algoritmo exemplo

CONTROLE DE FLUXO
Estruturas Condicionais
-Quando um conjunto de aes para ser executado, depender de uma condio.
se <condio> ento <comando 1> <comando 2> <comando n> seno <comando 3> <comando 4> <comando m> fimse

CONTROLE DE FLUXO
Algoritmo exemplo

CONTROLE DE FLUXO
Estruturas de repetio
- Quando um conjunto de aes executado repetidamente enquanto uma determinada condio permanece vlida.
Para - Quando precisamos repetir um conjunto de comandos um nmero pr-definido de vezes. para varControle de ValInicial ate ValFinal faca <comando 1> <comando 2> <comando n> fimpara

Enquanto - Utilizada quando no sabemos o nmero de repeties e quando possumos uma expresso que deve ser avaliada para que os comandos da estrutura sejam executados.
enquanto <condio> faca <comando 1> <comando 2> <comando n> fimenquanto

Repita ... At que - Utilizada quando no sabemos o nmero de repeties e quando os comandos devem ser executados pelo menos uma vez, antes da expresso ser avaliada.
repita <comando 1> <comando 2> <comando n> ate <condio>

CONTROLE DE FLUXO
Algoritmo exemplo

CONTROLE DE FLUXO
Algoritmo exemplo

CONTROLE DE FLUXO
Algoritmo exemplo

CONTROLE DE FLUXO
Estruturas de mltipla escolha
- Utilizada quando temos muitas possibilidades para uma determinada situao, onde a aplicao da estrutura se...ento...seno...fim-se, tornaria o algoritmo muito complexo.
escolha <expresso> caso valor1 : <comando 1> caso valor2 : <comando 2> ... seno <comando n> fimescolha

CONTROLE DE FLUXO
Algoritmo exemplo

FUNO
Conceito - Mecanismo que tem a caracterstica especial de retornar ao programa que a chamou, um valor associado ao nome da funo.

FUNO
Objetivos
Facilitar a compreenso e manuteno do cdigo. Melhor estruturao do programa. Possibilitar o reaproveitamento de cdigo. O cdigo da funo fica isolado, sendo a ligao com o programa principal feita pelos argumentos enviados pelo programa chamador da funo.

FUNO
Como funciona
Aps ser chamada transfere o controle para a funo Executa a tarefa desejada Coloca o resultado da execuo em um lugar (rea de memria ou registradores). - Retornar o controle (fluxo do programa) para o ponto de origem.

FUNO
Algoritmo exemplo

RECURSIVIDADE
Conceito - Mecanismo que permite a uma funo chamar a si mesma.

RECURSIVIDADE
Como funciona
- Diminui sucessivamente o problema em um problema menor, at que o tamanho ou a simplicidade do problema permita resolv-lo de forma direta. - Uma condio de finalizao deve estar presente em pelo menos um local do algoritmo, pois sem esta condio, o algoritmo no pra de chamar a si mesmo, at estourar a capacidade da pilha de execuo. - A cada nova execuo, vai se aproximando da condio de finalizao.

RECURSIVIDADE
Vantagens - Cdigo mais claro (legvel) e mais compacto do que os correspondentes no-recursivos; - Algoritmos para resolver problemas de natureza recursiva so fceis de serem implementados em linguagens de programao de alto nvel.

RECURSIVIDADE
Desvantagens - Maior consumo de recursos; - Algoritmos recursivos so mais difceis de serem depurados, especialmente quando existem muitas chamadas em espera na pilha de execuo.

RECURSIVIDADE
Algoritmo exemplo

GERENCIAMENTO DE EXCEES
Conceito - um conjunto de medidas na estrutura de um algoritmo, que possuem o intuito de evitar possveis falhas em um programa, como overflow aritmtico e diviso por zero.

GERENCIAMENTO DE EXCEES
Tratamento de excees
- Identificar as causas de uma possvel falha do algoritmo. - Estabelecer estruturas ao algoritmo, que analisem as condies, e gerenciem um tratamento a essas causas. - Configurar o algoritmo de forma que seja retomado, aps a anlise das condies, o processamento normal do programa.

GERENCIAMENTO DE EXCEES
Algoritmo exemplo

CONSIDERAES FINAIS
Os algoritmos so a base para o aprendizado de todos os assuntos presentes em nosso cronograma. Entender as estruturas bsicas e principalmente a lgica de programao, extremamente importante para a absoro de conhecimentos que sero necessrios futuramente.

REFERNCIAS BIBLIOGRFICAS
PINTO, Wilson. Introdu Introduo ao Desenvolvimento de Algoritmos e Estruturas de Dados. So Paulo: Editora rica, 1990. MANZANO, Jos Jos Augusto N.G. Algoritmos: l lgica para desenvolvimento de programa programao. So Paulo: rica, 1996. SANTOS, Wellington Lima dos. Algoritmos e Estruturas de Dados II. Dispon Disponvel em: http://www.ufgd.edu.br/~wlsantos/Algo/Recursividade.PDF Acesso em: 13/02/07 RUBIRA, Cec Ceclia. Tratamento de Exce Excees. Dispon Disponvel em: http://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJavahttp://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJava-cap_12.pdf Acesso em: 14/02/07 NIELEBOCK, Denise Guedes. Reviso de Introdu Introduo a Algoritmos. Dispon Disponvel em: http://www.eduardostefani.eti.br/bennett/classificacao/mpchttp://www.eduardostefani.eti.br/bennett/classificacao/mpc-lista1.doc Acesso em: 14/02/07 Visualg, Visualg, Dispon Disponvel em: http://www.apoioinformatica.inf.br/

Você também pode gostar