Você está na página 1de 34

Laboratory of Software Engineering and Computer Network

Engineering for a better life

Universidade Federal do Maranhão


Curso de Engenharia Elétrica

ALGORITMOS
Supervisão: Prof. Dr.º Denivaldo Lopes

Adelman Wallyson de Sousa Benigno


LESERC
(Laboratório de Engenharia de Software e Rede de Computadores)
Web Site: http://www.leserc.dee.ufma.br/
Contato: denivaldo.lopes AT dee.ufma.br
Sumário
Introduç
Introdução a algoritmos
- Pseudolinguagem-
Pseudolinguagem-Portugol
- Variá
Variáveis
- Operadores aritmé
aritméticos
- Operadores relacionais
- Operadores Ló
Lógicos
Controle de Fluxo
- Estruturas sequenciais
- Estruturas condicionais
- Estruturas de repetiç
repetição
- Estruturas de mú
múltipla escolha
Funç
Função
- Conceito
- Objetivos
- Como funciona
- Algoritmo exemplo
Recursividade
- Conceito
- Vantagens e Desvantagens
- Algoritmo exemplo
Gerenciamento de Exceç
Exceções
- Conceito
- Tratamento de exceç
exceções
- Algoritmo exemplo
Consideraç
Considerações finais
Referências bibliográ
bibliográficas
INTRODUÇÃO A ALGORITMOS
Conceito

Algoritmo é a descrição de um conjunto de


ações que resultam numa sucessão finita de
passos, com o intuito de resolver um
determinado problema.
“O conceito central da programação e da ciência da computação é o
conceito de algoritmo”.
(WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsá
responsável
pela criaç
criação de linguagens de programaç
programação como ALGOL e PASCAL)
INTRODUÇÃO A ALGORITMOS
Pseudolinguagem-Portugol

- O Portugol (simbiose do Português com o ALGOL


e PASCAL) é uma pseudolinguagem de
programação, que permite pensarmos no problema
sem perder a flexibilidade e a proximidade com a
linguagem humana, facilitando a interpretação.

- Neste tutorial, nós usamos o software Visualg


(http://www.apoioinformatica.inf.br/) para emular a
execução dos algoritmos em portugol.
INTRODUÇÃO A ALGORITMOS
Variáveis

- É como são chamados os locais onde são armazenados


possíveis valores do tipo básico associado. O “nome” da
variável é um identificador.
- Tipos básicos de dados:
INTEIRO: qualquer número inteiro, negativo, nulo ou positivo.
Ex.: -15, 0, 101
REAL: qualquer número real, negativo, nulo ou positivo. Ex.:
-1, -0.5, 0, 5, 9.5
CARACTER: qualquer conjunto de caracteres alfanuméricos.
Ex.: “123”, “A123” , “CASA”
LÓGICO: conjunto de valores (FALSO ou VERDADEIRO)
INTRODUÇÃO A ALGORITMOS
Operadores aritméticos
Operador Operação Exemplo
+ Adição 10 + 15
- Subtração 20 – 10
* Multiplicação 3*5
/ Divisão (onde o resultado 5 / 2 = 2,5
será um número real)
DIV Divisão (onde o resultado 10 div 2 = 5
será um número 7 div 2 = 3
inteiro)
MOD Resto de uma divisão 7 mod 2 = 1
^ ou exp(a, b) Exponenciação 5 ** 2 ou exp(5, 2)
INTRODUÇÃO A ALGORITMOS
Operadores relacionais
Operador Relação
= Igualdade
<> Diferente
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
INTRODUÇÃO A ALGORITMOS
Operadores lógicos
Operador Relação
E (And) E lógico
Ou (Or) Ou lógico
Não (Not) Negação lógica
Ou-X (Xor) Ou ‘Exclusivo’
P Q PeQ P ou Q P ou-X Q
F F F F F
F V F V V
V F F V V
V V V V F
CONTROLE DE FLUXO
Conceito

- Habilidade de ajustar a maneira como um


programa realiza suas tarefas. Por meio de
instruções especiais, chamadas comandos,
essas tarefas podem ser executadas.
CONTROLE DE FLUXO
Estruturas Sequenciais
-Conjunto de comandos que serão executados numa
seqüência linear de cima para baixo.

comando 1
comando 2
início comando 3
meio comando 3
fim comando 3
...
comando n
CONTROLE DE FLUXO
Algoritmo exemplo
CONTROLE DE FLUXO
Estruturas Condicionais

-Quando um conjunto de ações para ser executado,


depender de uma condição.

se <condição> então
<comando 1>
<comando 2>
<comando n>
senão
<comando 3>
<comando 4>
<comando m>
fimse
CONTROLE DE FLUXO
Algoritmo exemplo
CONTROLE DE FLUXO
Estruturas de repetição
- Quando um conjunto de ações é executado
repetidamente enquanto uma determinada
condição permanece válida.

» Para - Quando precisamos repetir um conjunto de


comandos um número pré-definido de vezes.

para varControle de ValInicial ate ValFinal faca


<comando 1>
<comando 2>
<comando n>
fimpara
» Enquanto - Utilizada quando não sabemos o número de
repetições e quando possuímos uma expressão que
deve ser avaliada para que os comandos da estrutura
sejam executados.
enquanto <condição> faca
<comando 1>
<comando 2>
<comando n>
fimenquanto

» Repita ... Até que - Utilizada quando não sabemos o


número de repetições e quando os comandos devem
ser executados pelo menos uma vez, antes da
expressão ser avaliada.
repita
<comando 1>
<comando 2>
<comando n>
ate <condição>
CONTROLE DE FLUXO
Algoritmo exemplo
CONTROLE DE FLUXO
Algoritmo exemplo
CONTROLE DE FLUXO
Algoritmo exemplo
CONTROLE DE FLUXO
Estruturas de múltipla escolha

- Utilizada quando temos muitas possibilidades para


uma determinada situação, onde a aplicação da
estrutura se...então...senão...fim-se, tornaria o
algoritmo muito complexo.

escolha <expressão>
caso valor1 : <comando 1>
caso valor2 : <comando 2>
...
senão <comando n>
fimescolha
CONTROLE DE FLUXO
Algoritmo exemplo
FUNÇÃO
Conceito

- Mecanismo que tem a característica


especial de retornar ao programa que a
chamou, um valor associado ao nome da
função.
FUNÇÃO
Objetivos

- Facilitar a compreensão e manutenção do código.


- Melhor estruturação do programa.
- Possibilitar o reaproveitamento de código.
- O código da função fica “isolado”, sendo a ligação com o
programa principal feita pelos argumentos enviados pelo
programa chamador da função.
FUNÇÃO
Como funciona

- Após ser chamada transfere o controle para a função


- Executa a tarefa desejada
- Coloca o resultado da execução em um lugar (área de
memória ou registradores).
- Retornar o controle (fluxo do programa) para o ponto de
origem.
FUNÇÃO
Algoritmo exemplo
RECURSIVIDADE
Conceito

- Mecanismo que permite a uma função


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 condição de finalização deve estar presente em pelo


menos um local do algoritmo, pois sem esta condição, o
algoritmo não pára de chamar a si mesmo, até estourar a
capacidade da pilha de execução.

- A cada nova execução, vai se aproximando da condição


de finalização.
RECURSIVIDADE
Vantagens

- Código mais claro (legível) e mais compacto


do que os correspondentes não-recursivos;
- Algoritmos para resolver problemas de
natureza recursiva são fáceis de serem
implementados em linguagens de programação
de alto nível.
RECURSIVIDADE
Desvantagens

- Maior consumo de recursos;


- Algoritmos recursivos são mais difíceis de
serem depurados, especialmente quando
existem muitas chamadas em espera na pilha
de execução.
RECURSIVIDADE
Algoritmo exemplo
GERENCIAMENTO DE EXCEÇÕES

Conceito

- É um conjunto de medidas na estrutura de um


algoritmo, que possuem o intuito de evitar
possíveis falhas em um programa, como
overflow aritmético e divisão por zero.
GERENCIAMENTO DE EXCEÇÕES

Tratamento de exceções

- Identificar as causas de uma possível falha do


algoritmo.
- Estabelecer estruturas ao algoritmo, que
analisem as condições, e gerenciem um
tratamento a essas causas.
- Configurar o algoritmo de forma que seja
retomado, após a análise das condições, o
processamento normal do programa.
GERENCIAMENTO DE EXCEÇÕES
Algoritmo exemplo
CONSIDERAÇÕES FINAIS
Os algoritmos são a base para o aprendizado
de todos os assuntos presentes em nosso
cronograma. Entender as estruturas básicas e
principalmente a lógica de programação, é
extremamente importante para a absorção de
conhecimentos que serão necessários
futuramente.
REFERÊNCIAS BIBLIOGRÁFICAS
PINTO, Wilson. Introduç
Introdução ao Desenvolvimento de Algoritmos e Estruturas de
Dados.
Dados. São Paulo: Editora Érica, 1990.
MANZANO, JoséJosé Augusto N.G. Algoritmos: ló lógica para desenvolvimento de
programaç
programação.ão. São Paulo: Érica, 1996.
SANTOS, Wellington Lima dos. Algoritmos e Estruturas de Dados II. DisponíDisponível
em: http://www.ufgd.edu.br/~wlsantos/Algo/Recursividade.PDF Acesso em: 13/02/07
RUBIRA, Cecí
Cecília. Tratamento de Exceç
Exceções. Disponí
Disponível em:
http://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJava-
http://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJava-cap_12.pdf
Acesso em: 14/02/07
NIELEBOCK, Denise Guedes. Revisão de Introduç
Introdução a Algoritmos. Disponí
Disponível em:
http://www.eduardostefani.eti.br/bennett/classificacao/mpc-
http://www.eduardostefani.eti.br/bennett/classificacao/mpc-lista1.doc Acesso em:
14/02/07
Visualg, Disponível em: http://www.apoioinformatica.inf.br/
Visualg, Disponí

Você também pode gostar