curso de anÁlise e desenvolvimento de sistemas disciplina: algoritmo profº.: leandro gonzalez...

36
CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: [email protected]

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

DISCIPLINA: ALGORITMO

PROFº.: LEANDRO GONZALEZE-MAIL: [email protected]

Page 2: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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

Page 3: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Itens fundamentais:Estrutura sequencial; Estrutura condicional; Estrutura de repetição.

Estrutura de dados:Vetores;Matrizes; Arquivos;

Modularização:Sub-rotinas;Funções

Utilização da Ferramenta VisuALG

ALGORITMO

Page 4: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Bibliografia:

FORBELLONE, Luis e EBERSPACHER, Henri. Lógica de Programação: a construção de algoritmos e estrutura de dados.

APOSTILA ALGORITMOS. Disponível em: <http://www.ebah.com.br/content/ABAAAAMhkAE/logica-programacao>

ALGORITMO

Page 5: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Lógica

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.

Page 6: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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 - O pai do padre é 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 - Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos?

Lógica

Page 7: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Sequência Lógica

Sequencia Lógica é um conjunto de instruções executadas (sequencialmente) até atingir um objetivo ou solução de um problema.

Page 8: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Instruções

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.

Page 9: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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

Essas instruções tem que ser executadas em uma ordem adequada;

Assim, uma instrução tomada em separado não tem muito sentido.

Instruções

Page 10: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Algoritmizando a Lógica

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.

Page 11: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Algoritmo é a descrição de um conjunto finito de instruções para a solução de um problema em um tempo finito.

Estas tarefas não podem ser ambíguas nem subjetivas na sua definição, devem ser claras e precisas.

Algoritmizando a Lógica

Page 12: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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?

Algoritmizando a Lógica

Page 13: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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?

Algoritmizando a Lógica

Page 14: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Solução

Início: H – C – G – M | vazio

Page 15: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Torre de Hanói

Haste A Haste B Haste C

Peça Pequena

Peça Média

Peça Grande

Page 16: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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?

Torre de Hanói

Page 17: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Algoritmo

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.

Page 18: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Por que usar algoritmos?

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.

Page 19: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Forma de representação do Algoritmo:

Descrição narrativa ou Linguagem Natural;

Fluxograma ou Diagrama de Blocos;

Diagrama de Chapin;

Pseudocódigo, Português estruturado ou Portugol.

Page 20: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Descrição Narrativa

É a forma mais espontânea de representação de algoritmos, pois descrevemos os passos do algoritmo utilizando o nosso linguajar quotidiano.

Não se emprega nenhum recurso diagramático, e não há uma rigidez na estruturação das ações.

Apresenta conteúdo extenso.

Page 21: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Exemplo:

O uso de linguagem natural pode gerar más interpretações, ambiguidades e imprecisões.

Descrição Narrativa

Page 22: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Fluxograma

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

Inicie o fluxograma de cima para baixo e da esquerda para a direita.

Evitar cruzamento nas linhas do fluxograma.

Page 23: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

Fluxograma

Page 24: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Exemplo:

Fluxograma

Page 25: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Diagrama Chapin

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

Page 26: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Exemplo

Diagrama Chapin

Page 27: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Pseudocódigo

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.

Page 28: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Exemplo:

Pseudocódigo

Page 29: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Algoritmo

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.

Page 30: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Imagine a seguinte situação: precisamos elaborar um algoritmo para trocar uma lâmpada. Utilizando apenas a estrutura de sequenciação.

Algoritmo

Page 31: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

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.

Algoritmo

Page 32: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Ainda podemos 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.

Algoritmo

Page 33: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Passos para a construção de um algoritmo

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.

Page 34: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Identificando entrada, processamento e saída

1- Construir um algoritmopara fazer um suco deLaranja natural.

Entrada: Laranja

Processamento: Cortar a laranjaEspremer a laranja

Saída: Suco de laranja

2- Construir um algoritmopara somar dois números

Entrada:Primeiro númeroSegundo Número

Processamento:Somar os números

Saída: Resultado da soma

Page 35: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Lógica de Programação 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.

Page 36: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

Programas

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