Anda di halaman 1dari 37

CURSO DE ANLISE E DESENVOLVIMENTO DE SISTEMAS

DISCIPLINA: ALGORITMO
PROF.: LEANDRO GONZALEZ
E-MAIL: email.lgonzalez@gmail.com

ALGORITMO
Contedo programtico:
Introduo: Lgica; Algoritmo;

de representao de Algoritmo; Programa. Itens fundamentais: Tipos de dados; Constantes; Variveis; Comentrios; Expresses e Operadores; Comandos de entrada e sada;

Formas

ALGORITMO
Itens

fundamentais: Estrutura sequencial; Estrutura condicional; Estrutura de repetio. Estrutura de dados: Vetores; Matrizes; Arquivos; Modularizao: Sub-rotinas; Funes Utilizao da Ferramenta VisuALG

ALGORITMO
Bibliografia:

FORBELLONE, Luis e EBERSPACHER, Henri. Lgica de Programao. 3. ed. So Paulo: Makron Books, 2005.
APOSTILA ALGORITMO. Disponvel em: http://www.cefetsp.br/edu/adolfo/disciplinas/lpro/materiais/Ling uagem_Visualg2.0.pdf

Lgica

oriunda da palavra grega logik, que significa arte de raciocinar. filsofo grego (384-322 a.C.), foi o primeiro a estudar sobre os aspectos da lgica. o ramo da filosofia que cuida das regras do bem pensar ou do pensar correto. ensina a colocar Ordem no Pensamento.

Aristteles, Lgica

A lgica

Resolva

os seguintes problemas de lgica (5 minutos):

P1

Uma lesma deve subir um poste de 10m de altura. Durante o perodo diurno (manh e tarde) sobe 2m e noite desce 1m. Em quantos dias atingir o topo do poste?
- O pai do padre filho do meu pai. O que eu sou do Padre? Qual o prximo nmero da sequncia 7,8,10,13,17 ... ? - Trs gatos comem trs ratos em trs minutos. Cem gatos comem cem ratos em quantos minutos?

P2

P3

P4

Respostas:

R1 9 (nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e evidentemente no desce 1 metro
R2 Tio R3 22 R4 3 (trs) minutos

Sequencia

Lgica um conjunto de instrues executadas (sequencialmente) at atingir um objetivo ou soluo de um problema.

Na linguagem comum: Instruo a norma definida para a realizao de algo. Em informtica: Instruo indica ao computador uma ao elementar a ser executada. Uma

ordem isolada no permite realizar o processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica.

Ex:

ao fazer omelete de batatas, precisaremos colocar em prtica uma srie de instrues:


Descascar

as batatas, bater os ovos, fritar as batatas, etc...; instrues tem que ser executadas em uma ordem adequada; uma instruo tomada em separado no tem muito sentido.

Essas

Assim,

Algoritmo

uma sequencia de passos que visam atingir um objetivo bem definido.

Podemos

pensar em algoritmo como uma receita, uma sequncia de instrues para atingir uma meta especfica.

Algoritmo

a descrio de um conjunto finito de instrues para a soluo de um problema em um tempo finito.


tarefas no podem ser ambguas nem subjetivas na sua definio, devem ser claras e precisas.

Estas

Exemplo

de aplicao da lgica e construo de algoritmos:


Um

homem precisa atravessar um rio com um barco e suas trs cargas, que so: um cachorro, uma galinha e um saco de milho.
as restries desse problema?

Quais H O

limite na quantidade de viagens?

que o homem deve fazer para conseguir atravessar o rio sem perder as suas cargas?

Quais

as restries desse problema?

barco possui capacidade de transportar apenas o Homem e mais uma de suas trs cargas
cachorro no pode ficar s com a galinha

A galinha
H

no pode ficar s com o milho

limite na quantidade de viagens?

No O

que o homem deve fazer para atravessar a carga?

Incio: H C G M | vazio

Haste A

Haste B

Haste C

Pea Pequena

Pea

Mdia

Pea Grande

Objetivo: Mover Quais

os discos da haste A para a haste C.

as restries? Um disco maior no pode ficar em cima de um disco menor. S pode mover um disco de cada vez. a sequncia lgica para resolver este problema?

Qual

Um

problema pode ser solucionado atravs de diversos algoritmos. se aprende algoritmo copiando. S aprende algoritmo exercitando. algoritmo deve sempre possuir pelo menos um resultado, normalmente chamado de sada.

No Um

Abstrao

- todo o esforo concentrado na resoluo do problema e no em detalhes computacionais que podem ser acrescentados posteriormente. - uma soluo algortmica pode ser traduzida para qualquer linguagem de programao.

Portabilidade

Descrio

narrativa ou Linguagem Natural;

Fluxograma
Diagrama

ou Diagrama de Blocos;
Portugus estruturado ou Portugol.

de Chapin;

Pseudocdigo,

a forma mais espontnea de representao de algoritmos, pois descrevemos os passos do algoritmo utilizando o nosso linguajar quotidiano.
se emprega nenhum recurso diagramtico, e no h uma rigidez na estruturao das aes. contedo extenso.

No

Apresenta

Exemplo:

O uso de linguagem natural pode gerar ms interpretaes, ambiguidades e imprecises.

uma representao grfica de algoritmo onde formas geomtricas diferentes implicam aes distintas. Tal propriedade facilita o entendimento das ideias contidas nos algoritmos. ateno aos dados, no oferecendo recursos para descrev-los ou represent-los.
o fluxograma de cima para baixo e da esquerda para a direita. cruzamento nas linhas do fluxograma.

Pouca
Inicie

Evitar

No

fluxograma existem smbolos padronizados para incio, entrada de dados, clculos, sada de dados, fim, etc.

Exemplo:

ideia bsica deste diagrama representar as aes de um algoritmo dentro de um nico retngulo, subdividido em retngulos menores, que representam os diferentes blocos de sequncia de aes do algoritmo.

Sequncia

Seleo

Repetio

Exemplo

Representao Pode-se

rica em detalhes e assemelha-se bastante forma em que os programas so escritos. definir quais e como os dados vo estar estruturados. quase imediata do algoritmo para uma linguagem de programao qualquer. no padronizada.

Passagem Sintaxe

Exemplo:

Existem

trs estruturas bsicas para a construo de algoritmos: sequenciao, seleo e repetio. A combinao destas trs estruturas permite-nos a construo de algoritmos para a resoluo de problemas extremamente complexos. A programao estruturada se baseia nestas trs estruturas bsicas.

Imagine

a seguinte situao: precisamos elaborar um algoritmo para trocar uma lmpada. Utilizando apenas a estrutura de sequenciao.

No entanto, antes de trocarmos a lmpada devemos nos certificar de que ela realmente esteja queimada, para ento troc-la. Assim, podemos melhorar o nosso algoritmo.

Ainda

podemos deix-lo mais completo. Quando verificamos que a lmpada est queimada, subimos para troc-la, mas no consideramos a hiptese da lmpada nova tambm estar queimada, e se isso ocorrer, precisaremos executar algumas aes novamente, at que a lmpada acenda.

1. Identificar o problema (objetivo) mediante leitura atenta de seu enunciado; 2. Retirar do enunciado as entradas de dados, ou seja, identificar os dados que devem ser fornecidos;

3. Retirar do enunciado as sadas de dados que devem ser gerados como resultado da soluo;
4. Determinar o que deve ser feito para transformar (processar) as entradas nas sadas desejadas; 5. Construir o algoritmo; 6. Testar a soluo.

1- Construir um algoritmo para fazer um suco de Laranja natural. Entrada: Laranja Processamento: Cortar a laranja Espremer a laranja Sada: Suco de laranja

2- Construir um algoritmo para somar dois nmeros

Entrada: Primeiro nmero Segundo Nmero Processamento: Somar os nmeros


Sada: Resultado da soma

conhecimento de Lgica de Programao essencial para as pessoas que desejam trabalhar com desenvolvimento de sistemas e programas. boa lgica de programao desenvolvida a partir de um conjunto de elementos, entre eles: Integridade; Clareza; Eficincia; Modularidade; Generalidade. lgica de programao permite definir a sequncia correta para o desenvolvimento de algoritmo e programas computacionais.

Uma

Programas so algoritmos escritos em uma linguagem de programao (Java, PHP, C#, Ruby, Delphi, Visual Basic) e que so interpretados e executados por uma mquina.
Um computador somente capaz de realizar estritamente as tarefas que lhe forem delegadas e que faam parte do conjunto daquelas aes que ele pode executar (programa).