Você está na página 1de 44

2.

ALGORITMOS

Unesp Campus de Guaratinguet

Curso de Programao Computadores Prof. Anbal Tavares Profa. Cassilda Ribeiro

Unesp-Campus de Guaratinguet

2 - Algoritmo

2.1: Introduo
n

Antes de se utilizar uma linguagem de computador, necessrio organizar as aes a serem tomadas pela mquina de forma organizada e lgica, sem se preocupar com as regras rgidas da sintaxe de uma linguagem. Para isto utiliza-se uma forma de escrever tais aes, conhecida como algoritmo, ou pseudo-cdigo.
Algoritmos 2

Unesp-Campus de Guaratinguet

2 - Algoritmo

2.2 - Definio Um algoritmo um Procedimento passo a passo para resolver um Problema.


n

Pessoas tem inteligncia e habilidade racional fazem perguntas para se esclarecer.

Computador no tem senso prprio deve receber instrues explcitas (algoritmos)


Algoritmos 3

Unesp-Campus de Guaratinguet

2- Algoritmos

Um algoritmo correto deve possuir 3 qualidades:


1- Cada passo do algoritmo deve ser uma instruo que possa ser realizada. 2- A ordem dos passos deve ser precisamente determinada. 3- O algoritmo deve ter fim.

Algoritmos

Unesp-Campus de Guaratinguet

2.3 - Fluxo de Execuo

Para o algoritmo ser funcional,

deve existir uma relao lgica na execuo das aes. ordem em que os passos do algoritmo executado de Execuo.

Essa relao lgica determina a Essa ordem chamada de Fluxo Todo algoritmo possui um
Execuo
Algoritmos 5

Fluxo de Execuo e; Estruturas de Controle do Fluxo de

Unesp-Campus de Guaratinguet

2- Algoritmos

Escapando de um labirinto
Problema Rob E Instrues Possveis

Soluo Encontrar uma seqncia de instrues acerca dos movimentos do Rob tal que o mesmo seja capaz de entrar e sair do labirinto.
Algoritmos 6

Unesp-Campus de Guaratinguet

2 - Algoritmos

Algoritmo Conjunto finito de instrues que permitem a realizao de uma tarefa.


Soluo/Algoritmo do Labirinto I F

Leitor

S
Algoritmos 7

Unesp-Campus de Guaratinguet

2 - Algoritmos

E quando no se sabe de antemo qual o Labirinto ?

Aplicao: Navegao Autnoma de Veculos No Tripulados

Algoritmos

Unesp-Campus de Guaratinguet

2 - Algoritmos

Robocode

1 2

Algoritmos

Unesp-Campus de Guaratinguet

2 - Algoritmos

/* *run: Comportamento padro do Newone. */ public void run() { // Replace the next 4 lines with any behavior you would like ahead(100); turnGunRight(360); back(100); turnGunRight(360); }

/* onScannedRobot: O que fazer quando detectar outro rob. */ public void onScannedRobot(ScannedRobotEvent e) { fire(1); }

Algoritmos

10

Unesp-Campus de Guaratinguet

2.3 - Fluxo de Execuo

As Estruturas de controle do Fluxo de Execuo do algoritmo podem ser de trs tipos:

I.

Estrutura elementar ou seqencial;

Nesta estrutura, o conjunto de aes elementares executado de modo linear; de cima para baixo e da esquerda para a direita. As aes so seguidas por pontoe vrgula (;) ou ponto (.) com o objetivo de separar as aes.
Algoritmos 11

Unesp-Campus de Guaratinguet

2.3 - Fluxo de Execuo

II. Estrutura de seleo (deciso) ou condicional;

Permitem escolher um conjunto de aes (bloco) a serem realizadas. A escolha depende de uma condio ser ou no satisfeita. A condio representada por expresses lgicas ou relacionais. Essas estruturas podem ser de:

v Seleo simples. v Seleo composta. v Seleo encadeada.


Algoritmos 12

Unesp-Campus de Guaratinguet

2.3 - Fluxo de Execuo

III. Estrutura de repetio.

So estruturas de controle de fluxo que permitem repetir uma seqncia de comandos.

Os trechos repetidos so chamados de LAOS DE REPETIO.

Algoritmos

13

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo

Caractersticas dos Algoritmos:


Utiliza certas palavras-chave, que indicam a natureza da operao a ser realizada; Utiliza tabulao no comeo de cada passo, para ressaltar a estrutura do algoritmo

Algoritmos

14

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo

Os algoritmos tero a seguinte estrutura: ALGORITMO <Nome do algoritmo> <definies> INCIO <Comandos> FIM

Algoritmos

15

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo Exemplo de algoritmo Algoritmo: Soma_dois_nmeros Incio Pegar primeiro nmero Pegar segundo nmero Somar o primeiro com o segundo nmero Mostrar o resultado Fim

Algoritmos

16

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


2.4.1 Apresentao das Estruturas de Algoritmos - Pseudo Cdigo
EX1: ALGORITMO PARA TROCAR PNEU DE UM CARRO

Incio Trocar Pneu Fim


E se o estepe estiver vazio? Isto traz a necessidade de uma deciso entre dois cursos
Algoritmos 17

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo ESTRUTURA CONDICIONAL

Incio se <o estepe est vazio> ento Chamar borracheiro seno Trocar o pneu fim se Fim
A atividade de Trocar o pneu pode ser mais detalhada
Algoritmos 18

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo ESTRUTURA SEQUENCIAL Incio se <o estepe est vazio> ento Chamar borracheiro seno desparafusar a roda levantar o carro remover a roda colocar o estepe abaixar o carro parafusar a roda fim se Fim
Algoritmos 19

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo ESTRUTURA SEQUENCIAL Incio se <o estepe est vazio> ento Chamar borracheiro seno A atividade de desparafusar a roda desparafusar a roda pode ser mais detalhada levantar o carro remover a roda colocar o estepe abaixar o de carro A atividade parafusar a roda pode ser mais detalhada parafusar a roda fim se Fim
Algoritmos 20

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo ESTRUTURA SEQUENCIAL


Incio se <o estepe est vazio> ento chamar borracheiro seno desparafusar o 1o parafuso Esta repetio desparafusar o 2o parafuso inconveniente desparafusar o 3o parafuso desparafusar o 4o parafuso levantar o carro remover a roda colocar o estepe abaixar o carro parafusar o 1o parafuso Esta repetio parafusar o 2o parafuso inconveniente parafusar o 3o parafuso parafusar o 4o parafuso fim se Algoritmos Fim

21

PD

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo ESTRUTURA DE REPETIO


Incio se <o estepe est vazio> ento chamar borracheiro seno enquanto houver parafuso para desapertar faa desparafusar a roda fim enquanto levantar o carro remover a roda colocar o estepe abaixar o carro enquanto houver parafuso para apertar faa parafusar a roda fim do enquanto fim se Fim
Algoritmos 22

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX 2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

Incio remova a lmpada queimada coloque a nova lmpada Fim

Algoritmos

23

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX 2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

Incio remova a lmpada queimada coloque a nova lmpada Fim

O que necessrio para remover a lmpada queimada?

Algoritmos

24

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo

EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

posicione a escada debaixo da lmpada queimada suba na escada at que a lmpada possa ser Oalcanada que necessrio para gire a lmpada queimada no remover a lmpada queimada? sentido anti-horrio at que se solte
Algoritmos 25

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

Incio remova a lmpada queimada coloque a nova lmpada Fim

O que necessrio para colocar a lmpada nova?


Algoritmos 26

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo

EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

escolha uma lmpada da mesma potncia da queimada posicione a nova lmpada no soquete O que necessrio para gire a lmpada no sentido colocar lmpada nova? horrioaat que ela se firme desa a escada

Algoritmos

27

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio posicione a escada debaixo da lmpada queimada suba na escada at que a lmpada possa ser alcanada gire a lmpada queimada no sentido anti-horrio at que se solte remova a lmpada queimada escolha uma lmpada da mesma potncia da queimada posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Algoritmos 28

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio posicione a escada debaixo da lmpada queimada suba na escada at que a lmpada possa ser alcanada gire a lmpada queimada no sentido anti-horrio at que se soltepassos deste Diversos remova a lmpada queimada algoritmo implicam

em escolha uma lmpada da mesma potncia da operaes mais elaboradas queimada que devem ser expressas posicione a nova lmpada no soquete explicitamente
gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Algoritmos 29

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio posicione a escada debaixo da lmpada queimada suba na escada at que a lmpada possa ser alcanada

enquanto <no alcanar a lmpada> faa


remova a lmpada queimada queimada posicione a nova lmpada no soquete

gire a lmpada queimada no sentido anti-horrio at que se solte

suba um degrau da escada

escolha uma lmpada da mesma potncia da fim enquanto

gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Algoritmos 30

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio posicione a escada debaixo da lmpada queimada suba na escada at que a lmpada possa ser alcanada gire a lmpada queimada no sentido antihorrio at que se solte

enquanto <a lmpada no soltar> faa

remova a lmpada queimada

escolha uma lmpada da mesma potncia da queimada gire a lmpada no sentido anti-horrio posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa a escada
Algoritmos 31

fim enquanto

Fim

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio

seposicione <tiver lmpada mesma potncia> a escadada debaixo da lmpada ento queimada selecione a lmpada suba na escada at que a lmpada possa ser posicione alcanada a nova lmpada no soquete gireaa lmpada no sentido horrio at que gire lmpada queimada no sentido anti-horrio se firme at que se solte desa a remova a escada lmpada queimada seno desa a escada escolha uma lmpada da mesma potncia da fim se queimada
posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Algoritmos 32

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO Incio

seposicione <tiver lmpada mesma potncia> a escadada debaixo da lmpada ento queimada selecione a lmpada suba na escada at que a lmpada possa ser posicione alcanada a nova lmpada no soquete gireaa lmpada no sentido horrio at que gire lmpada queimada no sentido anti-horrio se firme at que se solte desa a remova a escada lmpada queimada seno desa a escada escolha uma lmpada da mesma potncia da fim se queimada
posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Algoritmos 33

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


EX2. ALGORITMO PARA TROCAR UMA LMPADA NO TETO

se <tiver lmpada da mesma potncia> ento selecione a lmpada posicione a nova lmpada no soquete enquanto <a lmpada no prender> faa gire a lmpada no sentido horrio at que se gire a lmpada no sentido horrio firme fim enquanto desa a escada seno desa a escada fim se

Algoritmos

34

Unesp-Campus de Guaratinguet

2.4 - Pseudo cdigo


Incio

remova a lmpada queimada se <tiver lmpada da mesma potncia> ento - selecione a lmpada - posicione a nova lmpada no soquete - enquanto <a lmpada no prender> faa gire a lmpada no sentido horrio fim enquanto - desa a escada seno desa a escada fim se Fim
Algoritmos

Algoritmo para Trocar uma Lmpada


35

posicione a escada debaixo da lmpada queimada enquanto <no alcanar a lmpada> faa suba um degrau da escada fim enquanto enquanto <a lmpada no soltar> faa gire a lmpada no sentido anti-horrio fim enquanto

Unesp-Campus de Guaratinguet

2 - Algoritmo 2.5 - Desenvolvimento do Algoritmo

Comeamos com uma afirmao genrica da soluo do problema e prosseguimos at o algoritmo final, aumentando sistematicamente o nvel de detalhamento. Como saber se j temos um nvel suficiente de detalhes no algoritmo?

Algoritmos

36

Unesp-Campus de Guaratinguet 2.5 - Desenvolvimento do Algoritmo

Isso depende do agente que ir executar o algoritmo

Os computadores tm um conjunto muito limitado de instrues e o algoritmo deve ser expresso nos termos dessas instrues.

Algoritmos

37

Unesp-Campus de Guaratinguet

2 - Algoritmo 2.5.1 Metodologia de Desenvolvi-mento de Algoritmos

Algoritmos

38

Unesp-Campus de Guaratinguet 2.5 - Desenvolvimento do Algoritmo

2.5.1 Metodologia de Desenvolvimento de Algoritmos Passo 1:ler 1: cuidadosamente a especificao do problema at o final. Passo 2: se depois de ler vrias vezes, ainda no entender o problema, pergunte ao professor at entender. Passo 3: levantar e analisar todas as sadas exigidas na especificao do problema. Passo 4: levantar e analisar todas as entradas citadas na especificao do problema.

Algoritmos

39

Unesp-Campus de Guaratinguet 2.5 - Desenvolvimento do Algoritmo

Passo 5: verificar se necessrio gerar valores internamente ao algoritmo e levantar as variveis necessrias e os valores iniciais de cada uma. Passo 6: levantar e analisar todas as transformaes necessrias para, dadas as entradas e valores gerados internamente, produzir as sadas especificadas.

Algoritmos

40

Unesp-Campus de Guaratinguet 2.5 - Desenvolvimento do Algoritmo

Passo 7: testar cada passo do algoritmo, verificando se as transformaes intermedirias executada esto conduzindo aos objetivos desejados. Utilizar, sempre que possvel, valores de teste que permitam prever os resultados. Passo 8: fazer uma reavaliao geral, elaborando o algoritmo atravs da integrao das partes.

Algoritmos

41

Unesp-Campus de Guaratinguet

2.6 - Algoritmos Numricos Agora, vamos considerar problemas envolvendo clculos numricos EX 1: Dados vrios cartes numerados escolha o que tem maior nmero.

Algoritmo: maior_numero 1- pegue um carto e guarde. 2 - Repita pegue um carto se o nmero deste for > que o do carto guardado ento guarde este carto e descarte o anterior seno descarte esse e conserve o anterior At que se acabem os cartes. 3 - Mostre o carto guardado Algoritmos 42 4 - fim

Unesp-Campus de Guaratinguet

2.6 Algoritmos Numricos

Ex2: Verificar se um nmero N1 divisvel por N2


Algoritmo: Divisvel Inicio {algoritmo} 1 pegue os nmeros N1 e N2 2 Se N1 < N2 ento escreva no divisvel seno Inicio 2.1- divida N1 por N2 e pegue a parte inteira da diviso { INT (N1/N2)} 2.2 Faa RestoN1 ( N2*INT(N1/N2)) 2.3 Se Resto 0 ento escreva no divisvel seno escreva divisvel fim seno Fim {algoritmo}
Algoritmos 43

Unesp-Campus de Guaratinguet

FIM Aula 2

Algoritmos

44

Você também pode gostar