Você está na página 1de 47

CURSO DE ANÁLISE E DESENVOLVIMENTO

DE SISTEMAS

DISCIPLINA: ALGORITMO

PROFº.: LEANDRO GONZALEZ


E-MAIL: email.lgonzalez@gmail.com
ALGORITMO
Conteúdo programático:
 Introdução:
 Lógica;
 Algoritmo;
 Formas de representação de Algoritmo;
 Programa.
 Itens fundamentais:
 Tipos de dados;
 Constantes;
 Variáveis;
 Comentários;
 Expressões e Operadores;
 Comandos de entrada e saída;
ALGORITMO
 Itens fundamentais:
 Estrutura sequencial;
 Estrutura condicional;
 Estrutura de repetição.
 Estrutura de dados:
 Vetores;
 Matrizes;
 Modularização:
 Sub-rotinas;
 Funções.
 Utilização da Ferramenta VisuALG
ALGORITMO
 Bibliografia:

 FORBELLONE, Luis e EBERSPACHER, Henri. Lógica de Programação.


3. ed. São Paulo: Makron Books, 2005.

 APOSTILA ALGORITMO. Disponível em:


http://www.cefetsp.br/edu/adolfo/disciplinas/lpro/materiais/Ling
uagem_Visualg2.0.pdf
 Lógica é oriunda da palavra grega logiké, que significa
“arte de raciocinar”.
 Aristóteles,filósofo grego (384-322 a.C.), foi o primeiro
a estudar sobre os aspectos da lógica.
 Lógicaé o ramo da filosofia que cuida das regras do
bem pensar ou do pensar correto.
 A lógica ensina a colocar Ordem no Pensamento.
 Resolva os seguintes problemas de lógica (5 minutos):
 P1 – Uma lesma deve subir um poste de 10m de altura.
Durante o período diurno (manhã e tarde) sobe 2m e à
noite desce 1m. Em quantos dias atingirá o topo do
poste?
 P2 - Eu não sou pai do padre. O pai dele é filho do meu
pai. O que eu sou do Padre?
 P3 – Qual o próximo número da sequência 7,8,10,13,17
... ?
 P4 - Meio quilo de carne custa R$ 180,00. Quanto
custam dois quilos e meio?
 Respostas:

 R1 – 9 (nove) dias. No nono dia a lesma sobe 2(dois)


metros, atinge o topo e evidentemente não desce 1
metro
 R2 – Tio
 R3 – 22
 R4 – 900
 Sequencia Lógica é um conjunto de instruções
executadas (sequencialmente) até atingir um objetivo
ou solução de um problema.
 Na linguagem comum:
 “Instrução é a norma definida para a realização de algo”.

 Em informática:
 Instrução indica ao computador uma ação elementar a ser
executada.

 Uma ordem isolada não permite realizar o processo


completo, para isso é necessário um conjunto de
instruções colocadas em ordem sequencial lógica.
 Ex:
ao fazer omelete de batatas, precisaremos colocar
em prática uma série de instruções:
 Descascar as batatas, bater os ovos, fritar as
batatas, etc...;
 Essasinstruções tem que ser executadas em uma
ordem adequada;
 Assim,uma instrução tomada em separado não tem
muito sentido.
 Algoritmo é uma sequencia de passos que visam
atingir um objetivo bem definido.

 Podemos pensar em algoritmo como uma receita, uma


sequência de instruções para atingir uma meta
específica.
 Algoritmoé a descrição de um conjunto finito de
instruções para a solução de um problema em um
tempo finito.
 Estastarefas não podem ser ambíguas nem subjetivas
na sua definição, devem ser claras e precisas.
 Exemplo de aplicação da lógica e construção de
algoritmos:
 Um homem precisa atravessar um rio com um barco e
suas três cargas, que são: um cachorro, uma galinha e
um saco de milho.
 Quais as restrições desse problema?
 Há limite na quantidade de viagens?
O que o homem deve fazer para conseguir atravessar
o rio sem perder as suas cargas?
 Quais as restrições desse problema?
O barco possui capacidade de transportar apenas o
Homem e mais uma de suas três cargas
O cachorro não pode ficar só com a galinha
 A galinha não pode ficar só com o milho
 Há limite na quantidade de viagens?
 Não

O que o homem deve fazer para atravessar a carga?


Início: H – C – G – M | vazio
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
TRAVESSIA 3: M | H – C – G
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
TRAVESSIA 3: M | H – C – G
TRAVESSIA 4: H – G – M | C
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
TRAVESSIA 3: M | H – C – G
TRAVESSIA 4: H – G – M | C
TRAVESSIA 5: G | H – C – M
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
TRAVESSIA 3: M | H – C – G
TRAVESSIA 4: H – G – M | C
TRAVESSIA 5: G | H – C – M
TRAVESSIA 6: H – G | C – M
Início: H – C – G – M | vazio
TRAVESSIA 1: C – M | H – G
TRAVESSIA 2: H – C – M | G
TRAVESSIA 3: M | H – C – G
TRAVESSIA 4: H – G – M | C
TRAVESSIA 5: G | H – C – M
TRAVESSIA 6: H – G | C – M
TRAVESSIA 7: vazio | H – C – G – M
Haste A Haste B Haste C

Peça Pequena

Peça Média

Peça Grande
 Objetivo:
 Mover os discos da haste A para a haste C.

 Quais as restrições?
 Um disco maior não pode ficar em cima de um disco
menor.
 Só pode mover um disco de cada vez.

 Qual a sequência lógica para resolver este problema?


 Algoritmo

 Mover peça pequena da haste A para C


 Mover peça média da haste A para B
 Mover peça pequena da haste C para B
 Mover peça grande da haste A para C
 Mover peça pequena da haste B para A
 Mover peça média da haste B para C
 Mover peça pequena da haste A para C
 Um problema pode ser solucionado através de
diversos algoritmos.
 Não se aprende algoritmo copiando. Só aprende
algoritmo exercitando.
 Um algoritmo deve sempre possuir pelo menos um
resultado, normalmente chamado de saída.
 Abstração - todo o esforço é concentrado na
resolução do problema e não em detalhes
computacionais que podem ser acrescentados
posteriormente.
 Portabilidade - uma solução algorítmica pode ser
traduzida para qualquer linguagem de programação.
 Descrição narrativa ou Linguagem Natural;
 Fluxograma ou Diagrama de Blocos;
 Diagrama de Chapin;
 Pseudocódigo, Português estruturado ou Portugol.
É a forma mais espontânea de representação de
algoritmos, pois descrevemos os passos do algoritmo
utilizando o nosso linguajar quotidiano.
 Nãose emprega nenhum recurso diagramático, e não
há uma rigidez na estruturação das ações.
 Apresenta conteúdo extenso.
 Exemplo:

 O uso de linguagem natural pode gerar más interpretações,


ambiguidades e imprecisões.
É uma representação gráfica de algoritmo onde formas
geométricas diferentes implicam ações distintas. Tal
propriedade facilita o entendimento das ideias contidas
nos algoritmos.
 Pouca atenção aos dados, não oferecendo recursos
para descrevê-los ou representá-los.
 Inicieo fluxograma de cima para baixo e da esquerda
para a direita.
 Evitar cruzamento nas linhas do fluxograma.
 No fluxograma existem símbolos padronizados para
início, entrada de dados, cálculos, saída de dados, fim,
etc.
 Exemplo:
A ideia básica deste diagrama é representar as ações
de um algoritmo dentro de um único retângulo,
subdividido em retângulos menores, que representam
os diferentes blocos de sequência de ações do
algoritmo.

Sequência Seleção Repetição


 Exemplo
 Representação rica em detalhes e assemelha-se
bastante à forma em que os programas são escritos.
 Pode-se definir quais e como os dados vão estar
estruturados.
 Passagem quase imediata do algoritmo para uma
linguagem de programação qualquer.
 Sintaxe não padronizada.
 Exemplo:
 Existem três estruturas básicas para a construção de
algoritmos: sequenciação, seleção e repetição. A
combinação destas três estruturas permite-nos a
construção de algoritmos para a resolução de problemas
extremamente complexos. A programação estruturada
se baseia nestas três estruturas básicas.
 Imagine a seguinte situação: precisamos elaborar um
algoritmo para trocar uma lâmpada. Utilizando apenas
a estrutura de sequenciação.
 No entanto, antes de trocarmos a lâmpada devemos
nos certificar de que ela realmente esteja queimada,
para então trocá-la. Assim, podemos melhorar o nosso
algoritmo.
 Aindapodemos deixá-lo mais completo. Quando verificamos
que a lâmpada está queimada, subimos para trocá-la, mas
não consideramos a hipótese da lâmpada nova também estar
queimada, e se isso ocorrer, precisaremos executar algumas
ações novamente, até que a lâmpada 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 saídas de dados que devem


ser gerados como resultado da solução;

4. Determinar o que deve ser feito para transformar


(processar) as entradas nas saídas desejadas;

5. Construir o algoritmo;

6. Testar a solução.
1- Construir um algoritmo 2- Construir um algoritmo
para fazer um suco de para somar dois números
Laranja natural.
Entrada:
Entrada: Laranja
Primeiro número
Segundo Número
Processamento:
Cortar a laranja
Espremer a laranja Processamento:
Somar os números
Saída: Suco de laranja
Saída: Resultado da soma
O conhecimento de Lógica de Programação é
essencial para as pessoas que desejam trabalhar com
desenvolvimento de sistemas e programas.
 Uma boa lógica de programação é desenvolvida a
partir de um conjunto de elementos, entre eles:
 Integridade;
 Clareza;
 Eficiência;
 Modularidade;
 Generalidade.

A lógica de programação permite definir a sequência


correta para o desenvolvimento de algoritmo e
programas computacionais.
 Programas são algoritmos escritos em uma linguagem
de programação (Java, PHP, C#, Ruby, Delphi, Visual
Basic) e que são interpretados e executados por uma
máquina.

 Um computador é somente capaz de realizar


estritamente as tarefas que lhe forem delegadas e que
façam parte do conjunto daquelas ações que ele pode
executar (programa).

Você também pode gostar