• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
34
0
0

Texto

(1)

Universidade Federal do Maranhão Universidade Federal do Maranhão

Curso de Engenharia El

Curso de Engenharia Eléétricatrica

Adelman

Adelman WallysonWallyson de Sousa Benignode Sousa Benigno

ALGORITMOS

ALGORITMOS

Supervisão: Prof. Dr.

Supervisão: Prof. Dr.ºº DenivaldoDenivaldo Lopes Lopes

Engineering for a better life

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

(2)

Sum

Sum

á

á

rio

rio

Introdu

Introduçção a algoritmosão a algoritmos

-- PseudolinguagemPseudolinguagem--PortugolPortugol

-- VariVariááveisveis

-- Operadores aritmOperadores aritmééticosticos

-- Operadores relacionaisOperadores relacionais

-- Operadores LOperadores Lóógicosgicos Controle de Fluxo

Controle de Fluxo

-- Estruturas Estruturas sequenciaissequenciais

-- Estruturas condicionaisEstruturas condicionais

-- Estruturas de repetiEstruturas de repetiççãoão

-- Estruturas de mEstruturas de múúltipla escolhaltipla escolha

Fun

Funççãoão

-- ConceitoConceito

-- ObjetivosObjetivos

-- Como funcionaComo funciona

-- Algoritmo exemploAlgoritmo exemplo

Recursividade

Recursividade

-- ConceitoConceito

-- Vantagens e DesvantagensVantagens e Desvantagens

-- Algoritmo exemploAlgoritmo exemplo

Gerenciamento de Exce

Gerenciamento de Exceççõesões

-- ConceitoConceito

-- Tratamento de exceTratamento de exceççõesões

-- Algoritmo exemploAlgoritmo exemplo

Considera

Consideraçções finaisões finais Referências bibliogr

(3)

INTRODU

INTRODU

Ç

Ç

ÃO A ALGORITMOS

ÃO A ALGORITMOS

Conceito

Conceito

Algoritmo

Algoritmo

é

é

a descri

a descri

ç

ç

ão de um conjunto de

ão de um conjunto de

a

a

ç

ç

ões que resultam numa sucessão finita de

ões que resultam numa sucessão finita de

passos, com o intuito de resolver um

passos, com o intuito de resolver um

determinado problema.

determinado problema.

“O conceito central da programaO conceito central da programaçção e da ciência da computaão e da ciência da computaçção ão éé o o conceito de algoritmo

conceito de algoritmo””.. (

(WIRTH WIRTH --Professor da Universidade de Zurique, autor de diversos livros Professor da Universidade de Zurique, autor de diversos livros na na áárea e responsrea e responsáável vel

pela cria

(4)

Pseudolinguagem

Pseudolinguagem

-

-

Portugol

Portugol

-- O O PortugolPortugol (simbiose do Português com o ALGOL (simbiose do Português com o ALGOL e PASCAL)

e PASCAL) éé uma uma pseudolinguagempseudolinguagem de de programa

programaçção, que permite pensarmos no problema ão, que permite pensarmos no problema sem perder a flexibilidade e a proximidade com a

sem perder a flexibilidade e a proximidade com a

linguagem humana, facilitando a interpreta

linguagem humana, facilitando a interpretaçção.ão.

-- Neste tutorial, nNeste tutorial, nóós usamos o software s usamos o software VisualgVisualg (

(http://www.apoioinformatica.inf.br/http://www.apoioinformatica.inf.br/) para emular a ) para emular a execu

execuçção dos algoritmos em ão dos algoritmos em portugolportugol..

INTRODU

(5)

Vari

Vari

á

á

veis

veis

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

possííveis valores do tipo bveis valores do tipo báásico associado. O sico associado. O ““nomenome”” da da vari

variáável vel éé um identificador.um identificador.

-- Tipos bTipos báásicos de dados:sicos de dados:

INTEIRO

INTEIRO: : qualquer nqualquer núúmero inteiro, negativo, nulo ou positivo. mero inteiro, negativo, nulo ou positivo. Ex.:

Ex.: --15, 0, 10115, 0, 101

REAL

REAL: : qualquer nqualquer núúmero real, negativo, nulo ou positivo. Ex.: mero real, negativo, nulo ou positivo. Ex.:

--1, 1, --0.5, 0, 5, 9.50.5, 0, 5, 9.5

CARACTER

CARACTER: : qualquer conjunto de caracteres alfanumqualquer conjunto de caracteres alfanumééricos. ricos. Ex.:

Ex.: ““123123””, , ““A123A123”” , , ““CASACASA””

L

LÓÓGICOGICO: : conjunto de valores (FALSO ou VERDADEIRO)conjunto de valores (FALSO ou VERDADEIRO)

INTRODU

(6)

5 ** 2 ou exp(5, 2) Exponenciação

^ ou exp(a, b)

7 mod 2 = 1 Resto de uma divisão

MOD

10 div 2 = 5 7 div 2 = 3 Divisão (onde o resultado

será um número

inteiro) DIV

5 / 2 = 2,5 Divisão (onde o resultado

será um número real) / 3 * 5 Multiplicação * 20 – 10 Subtração -10 + 15 Adição + Exemplo Operação Operador

INTRODU

INTRODU

Ç

Ç

ÃO A ALGORITMOS

ÃO A ALGORITMOS

Operadores aritm

(7)

Menor ou igual a <= Menor que < Maior ou igual a >= Maior que > Diferente <> Igualdade =

Relação

Operador

Operadores relacionais

Operadores relacionais

INTRODU

(8)

F V V V V V V F F V V V F V F F F F F F P ou-X Q P ou Q P e Q Q P Ou ‘Exclusivo’ Ou-X (Xor) Negação lógica Não (Not) Ou lógico Ou (Or) E lógico E (And) Relação Operador

INTRODU

INTRODU

Ç

Ç

ÃO A ALGORITMOS

ÃO A ALGORITMOS

Operadores l

(9)

CONTROLE DE FLUXO

CONTROLE DE FLUXO

Conceito

Conceito

--

Habilidade de ajustar a maneira como um

Habilidade de ajustar a maneira como um

programa realiza suas tarefas. Por meio de

programa realiza suas tarefas. Por meio de

instru

instru

ç

ç

ões especiais, chamadas comandos,

ões especiais, chamadas comandos,

essas tarefas podem ser executadas.

(10)

--Conjunto de comandos que serão executados numa Conjunto de comandos que serão executados numa seq

seqüüência linear de cima para baixo.ência linear de cima para baixo.

comando 1 comando 1 comando 2 comando 2

in

iníício comando 3 cio comando 3 meio comando 3 meio comando 3 fim comando 3 fim comando 3 ... ... comando n comando n

CONTROLE DE FLUXO

CONTROLE DE FLUXO

Estruturas

(11)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(12)

--Quando um conjunto de aQuando um conjunto de açções para ser executado, ões para ser executado, depender de uma condi

depender de uma condiçção.ão.

se <condi

se <condiçção> ão> entãoentão <comando 1> <comando 1> <comando 2> <comando 2> <comando n> <comando n> senão <comando 3> <comando 3> <comando 4> <comando 4> <comando m> <comando m> fimse

Estruturas Condicionais

Estruturas Condicionais

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(13)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(14)

-- Quando um conjunto de aQuando um conjunto de açções ões éé executado executado repetidamente enquanto uma determinada

repetidamente enquanto uma determinada

condi

condiçção permanece vão permanece váálida.lida.

» Para - Quando precisamos repetir um conjunto de comandos um número pré-definido de vezes.

para

para varControlevarControle de de ValInicialValInicial ate ate ValFinalValFinal facafaca <comando 1> <comando 1> <comando 2> <comando 2> <comando n> <comando n> fimpara fimpara

Estruturas de repeti

Estruturas de repeti

ç

ç

ão

ão

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(15)

enquanto <condi

enquanto <condiçção> facaão> faca <comando 1> <comando 1> <comando 2> <comando 2> <comando n> <comando n> fimenquanto fimenquanto repita repita <comando 1> <comando 1> <comando 2> <comando 2> <comando n> <comando n> ate <condi

ate <condiçção>ão>

» 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.

» 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

(16)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(17)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(18)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(19)

-- Utilizada quando temos muitas possibilidades para Utilizada quando temos muitas possibilidades para uma determinada situa

uma determinada situaçção, onde a aplicaão, onde a aplicaçção da ão da estrutura se...então...senão...

estrutura se...então...senão...fimfim--sese, tornaria o , tornaria o algoritmo muito complexo.

algoritmo muito complexo.

escolha <expressão> escolha <expressão>

caso valor1 : <comando 1> caso valor1 : <comando 1> caso valor2 : <comando 2> caso valor2 : <comando 2>

... ... senão <comando n> senão <comando n> fimescolha fimescolha

Estruturas de m

Estruturas de m

ú

ú

ltipla escolha

ltipla escolha

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(20)

Algoritmo exemplo

Algoritmo exemplo

CONTROLE DE FLUXO

CONTROLE DE FLUXO

(21)

FUN

FUN

Ç

Ç

ÃO

ÃO

Conceito

Conceito

--

Mecanismo que tem a caracter

Mecanismo que tem a caracter

í

í

stica

stica

especial de retornar ao programa que a

especial de retornar ao programa que a

chamou, um valor associado ao nome da

chamou, um valor associado ao nome da

fun

(22)

Objetivos

Objetivos

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

-- Melhor estruturaMelhor estruturaçção do programa.ão do programa.

-- Possibilitar o reaproveitamento de cPossibilitar o reaproveitamento de cóódigo.digo.

-- O cO cóódigo da fundigo da funçção fica ão fica ““isoladoisolado””, sendo a liga, sendo a ligaçção com o ão com o programa principal feita pelos argumentos enviados pelo

programa principal feita pelos argumentos enviados pelo

programa

programa chamadorchamador da funda funçção.ão.

FUN

(23)

FUN

FUN

Ç

Ç

ÃO

ÃO

Como funciona

Como funciona

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

-- Executa a tarefa desejadaExecuta a tarefa desejada

-- Coloca o resultado da execuColoca o resultado da execuçção em um lugar (ão em um lugar (áárea de rea de mem

memóória ou registradores).ria ou registradores).

-- Retornar o controle (fluxo do programa) para o ponto de Retornar o controle (fluxo do programa) para o ponto de origem.

(24)

Algoritmo exemplo

Algoritmo exemplo

FUN

(25)

RECURSIVIDADE

RECURSIVIDADE

Conceito

Conceito

--

Mecanismo que permite a uma fun

Mecanismo que permite a uma fun

ç

ç

ão

ão

chamar a si mesma.

(26)

RECURSIVIDADE

RECURSIVIDADE

Como funciona

Como funciona

-- Diminui sucessivamente o problema em um problema Diminui sucessivamente o problema em um problema menor, at

menor, atéé que o tamanho ou a simplicidade do problema que o tamanho ou a simplicidade do problema permita resolvê

permita resolvê--lo de forma direta. lo de forma direta.

-- Uma condiUma condiçção de finalizaão de finalizaçção deve estar presente em pelo ão deve estar presente em pelo menos um local do algoritmo, pois sem esta condi

menos um local do algoritmo, pois sem esta condiçção, o ão, o algoritmo não p

algoritmo não páára de chamar a si mesmo, atra de chamar a si mesmo, atéé estourar a estourar a capacidade da pilha de execu

capacidade da pilha de execuçção.ão.

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

(27)

RECURSIVIDADE

RECURSIVIDADE

Vantagens

Vantagens

--

C

C

ó

ó

digo mais claro (leg

digo mais claro (leg

í

í

vel) e mais compacto

vel) e mais compacto

do que os correspondentes não

do que os correspondentes não

-

-

recursivos;

recursivos;

--

Algoritmos para resolver problemas de

Algoritmos para resolver problemas de

natureza recursiva

natureza recursiva

são f

são f

á

á

ceis de serem

ceis de serem

implementados em linguagens de programa

implementados em linguagens de programa

ç

ç

ão

ão

de alto n

(28)

RECURSIVIDADE

RECURSIVIDADE

Desvantagens

Desvantagens

--

Maior consumo de recursos;

Maior consumo de recursos;

--

Algoritmos recursivos são mais dif

Algoritmos recursivos são mais dif

í

í

ceis

ceis

de

de

serem depurados, especialmente quando

serem depurados, especialmente quando

existem muitas chamadas em espera na pilha

existem muitas chamadas em espera na pilha

de execu

(29)

Algoritmo exemplo

Algoritmo exemplo

RECURSIVIDADE

RECURSIVIDADE

(30)

GERENCIAMENTO

GERENCIAMENTO

DE EXCE

DE EXCE

Ç

Ç

ÕES

ÕES

Conceito

Conceito

-- ÉÉ um conjunto de medidas na estrutura de um um conjunto de medidas na estrutura de um algoritmo, que possuem o intuito de evitar

algoritmo, que possuem o intuito de evitar

poss

possííveis falhas em um programa, como veis falhas em um programa, como overflow

(31)

Tratamento de exce

Tratamento de exce

ç

ç

ões

ões

-- Identificar as causas de uma possIdentificar as causas de uma possíível falha do vel falha do algoritmo.

algoritmo.

-- Estabelecer estruturas ao algoritmo, que Estabelecer estruturas ao algoritmo, que analisem as condi

analisem as condiçções, e gerenciem um ões, e gerenciem um tratamento a essas causas.

tratamento a essas causas.

-- Configurar o algoritmo de forma que seja Configurar o algoritmo de forma que seja retomado, ap

retomado, apóós a ans a anáálise das condilise das condiçções, o ões, o processamento normal do programa.

processamento normal do programa.

GERENCIAMENTO

(32)

GERENCIAMENTO DE EXCE

GERENCIAMENTO DE EXCE

Ç

Ç

ÕES

ÕES

Algoritmo exemplo

(33)

CONSIDERA

CONSIDERA

Ç

Ç

ÕES FINAIS

ÕES FINAIS

Os algoritmos são a base para o aprendizado

Os algoritmos são a base para o aprendizado

de todos os assuntos presentes em nosso

de todos os assuntos presentes em nosso

cronograma. Entender as estruturas b

cronograma. Entender as estruturas báásicas e sicas e

principalmente a l

principalmente a lóógica de programagica de programaçção, ão, éé extremamente importante para a absor

extremamente importante para a absorçção de ão de

conhecimentos que serão necess

conhecimentos que serão necessáários rios

futuramente.

(34)

REFERÊNCIAS BIBLIOGR

REFERÊNCIAS BIBLIOGR

Á

Á

FICAS

FICAS

PINTO, Wilson.

PINTO, Wilson. IntroduIntroduçção ao Desenvolvimento de Algoritmos e Estruturas de ão ao Desenvolvimento de Algoritmos e Estruturas de

Dados

Dados. São Paulo: Editora É. São Paulo: Editora Érica, 1990.rica, 1990. MANZANO, Jos

MANZANO, Joséé Augusto N.G. Augusto N.G. Algoritmos: lAlgoritmos: lóógica para desenvolvimento de gica para desenvolvimento de programa

programaççãoão. São Paulo: É. São Paulo: Érica, 1996.rica, 1996. SANTOS, Wellington Lima dos.

SANTOS, Wellington Lima dos. Algoritmos e Estruturas de Dados II. Algoritmos e Estruturas de Dados II. DisponDisponíível vel em:

em: http://www.ufgd.edu.br/~wlsantos/Algo/Recursividade.PDFhttp://www.ufgd.edu.br/~wlsantos/Algo/Recursividade.PDF Acesso em: 13/02/07Acesso em: 13/02/07 RUBIRA, Cec

RUBIRA, Cecíília. Tratamento de Excelia. Tratamento de Exceçções. Disponões. Disponíível em: vel em:

http://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJava

http://www.ic.unicamp.br/~zanoni/mc600/java/LivroJava/LivroJava--cap_12.pdfcap_12.pdf Acesso em: 14/02/07

Acesso em: 14/02/07

NIELEBOCK, Denise Guedes. Revisão de Introdu

NIELEBOCK, Denise Guedes. Revisão de Introduçção a Algoritmos. Disponão a Algoritmos. Disponíível em: vel em: http://www.eduardostefani.eti.br/bennett/classificacao/mpc

http://www.eduardostefani.eti.br/bennett/classificacao/mpc--lista1.doclista1.doc Acesso em: Acesso em: 14/02/07

14/02/07 Visualg

Referências

Documentos relacionados

O presente documento pretende registar a análise efectuada pela equipa gestora do Portal CampingCar Portugal (Portal Português de Autocaravanismo) ao estudo de

Conforme Contrato de Locação Atípico BTS assinado com a FEMSA – Coca - Cola, o Retrofit no Imóvel Parque Novo Mundo visa atender as demandas da locatária..

Acerca da psicopatologia da religião, juntamente a Freud e Jung, Ales Bello cita novamente Callieri: este autor aborda a questão da experiência religiosa não

Fernandes, morador no lugar de Ourentã, termo da Vila de Cantanhede e de Francisco Afonso, morador no lugar de Fornos, termo da cidade de Coimbra, para fornecimento de

Na questão que abordou o conhecimento sobre a localização da doença, o deficiente saber quanto à percepção sobre a saúde bucal foi comprovado quando somente 30 indivíduos

Portanto, deve-se reconhecer que o tipo de movimento ortodôntico pode influenciar no risco de desenvolvimento de recessão óssea e gengival, como nos casos de movimento

REDES INSTALACAO E COMERCIO DE REDES

tação de mestrado e, portanto, ainda em fase de conclusões parciais, pretende comparar as características dos sistemas de captação e dispensa da água utilizados pelos