Desenvolvimento de Algoritmos

29
Desenvolvimento de Algoritmos Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

Transcript of Desenvolvimento de Algoritmos

Page 1: Desenvolvimento de Algoritmos

Desenvolvimento de Algoritmos

Slides elaborados pela

Prof(a). Simone do Rocio Senger de Souza

ICMC/USP

Page 2: Desenvolvimento de Algoritmos

2

Desenvolvimento de algoritmos

Na computação, algoritmos representam os passos de um programa– um conjunto de programas formam um

software.

Como desenvolver software com qualidade?

Page 3: Desenvolvimento de Algoritmos

3

60

DEFINIÇÃO

DESENVOLVIMENTO

MANUTENÇÃO

CICLO DE VIDA DO SOFTWARE

O QUE

COMO

ALTERAÇÕES

Page 4: Desenvolvimento de Algoritmos

4

2. O COMPUTADOR Rosely Sanches 61

Etapas da Construção de Programas

DEFINIÇÃO DEFINIÇÃO (o que)(o que)

DESENVOLVIMENTO DESENVOLVIMENTO (como)(como)

Revisões

Documentação

• Projetar a Solução (ALGORITMO)

• Codificar a Solução (Programar em uma Linguagem de Programação)

• Testar o Programa

Definição do Problema

Page 5: Desenvolvimento de Algoritmos

5

ALGORITMOS

Procedimento passo a passo para resolver um problema

Pessoas tem inteligência e habilidade racional => fazem perguntas para se esclarecer.

Computador não tem senso próprio => deve receber instruções explícitas (algoritmos)

Page 6: Desenvolvimento de Algoritmos

6

ALGORITMOS

no contexto computacional: Algoritmo é um conjunto finito de regras, bem definido (sem ambigüidades), para a solução de um problema em tempo finito.

Page 7: Desenvolvimento de Algoritmos

7

ALGORITMOS

Para entender como construir um algoritmo, é necessário entender primeiro a lógica da programação.

Lógica: parte da filosofia que estuda as leis do raciocínio.

É a arte de pensar corretamente ou correção do raciocínio. A lógica ensina a colocar ordem no pensamento.

Page 8: Desenvolvimento de Algoritmos

8

ALGORITMOS - Lógica Exemplos:

Todo mamífero é animal. Todo cavalo é mamífero. Portanto, todo cavalo é animal.

José é mais alto que João. Pedro é mais alto que José. Portanto, Pedro é mais alto que João. A gaveta está fechada. A bala está na gaveta. Preciso primeiro abrir a gaveta, para depois

pegar a bala.

Utilizamos a lógica para pensar, falar ou escrever.

Page 9: Desenvolvimento de Algoritmos

9

ALGORITMOS - Lógica Em geral, um algoritmo destina-se a

resolver um problema: fixa um padrão de comportamento a ser seguido

Fixa uma norma de execução a ser trilhada, com vistas a alcançar a solução de um problema.

Exemplo: Dada a seqüência de números: 1, 1, 2, 3, 5, 8, 13 … Como determinar o próximo número?

como definir uma seqüência de passos para o cálculo?

Page 10: Desenvolvimento de Algoritmos

10

ALGORITMOS - Lógica Exemplos: Qual o próximo número

das seqüências:

1, 1, 2, 3, 5, 8, 13 … 77, 49, 36, 18, ... 2, 10, 12, 16, 17, 18, 19 ...

como definir uma seqüência de passos para o cálculo?

Page 11: Desenvolvimento de Algoritmos

11

ALGORITMOS - Lógica Exercício de lógica:

Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas?

Page 12: Desenvolvimento de Algoritmos

12

ALGORITMOS - Lógica Exercício de lógica:

Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas?

1a trav = homem + bode2a trav = homem + lobovolta com bode3a trav = homem + alfafa4a trav = homem + bode

Page 13: Desenvolvimento de Algoritmos

13

ALGORITMOS - Lógica Exercício de lógica:

Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança não se permite que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a seqüência de passos que permitira a travessia com segurança?

Page 14: Desenvolvimento de Algoritmos

14

ALGORITMOS - Lógica Exercício de lógica:

margem1 travessia margem2 JJJ C CC > JJJ C < C C JJJ CC > C JJJ < C CC JC JJ > CC JC < JC JC CC JJ > JC CC < C JJJ C CC > JJJ C < C JJJC CC > JJJC JJJCCC

Page 15: Desenvolvimento de Algoritmos

15

ALGORITMOS

Um algoritmo correto deve possuir 3 qualidades:

1- Cada passo do algoritmo deve ser uma instrução que possa ser realizada

2- A ordem dos passos deve ser precisamente determinada

3- O algoritmo deve ter fim

Page 16: Desenvolvimento de Algoritmos

1. Somar três números

2. Ir para a aula :P

3. Fazer arroz

4. Trocar pneu

16

EXEMPLOS DE ALGORITMOS

Page 17: Desenvolvimento de Algoritmos

17

Estruturas de Algoritmos - Apresentação

ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO

Page 18: Desenvolvimento de Algoritmos

18

Estruturas de Algoritmos - Apresentação

ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO

Page 19: Desenvolvimento de Algoritmos

19

Estruturas de Algoritmos - Apresentação

ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO

Page 20: Desenvolvimento de Algoritmos

20

Estruturas de Algoritmos - Apresentação

ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO

Page 21: Desenvolvimento de Algoritmos

21

Page 22: Desenvolvimento de Algoritmos

22

Page 23: Desenvolvimento de Algoritmos

23

Estrutura de AlgoritmosEstrutura de Algoritmos

Estrutura Estrutura SeqüencialSeqüencial

Em uma estrutura seqüencial, os passos são tomados em uma seqüência pré-definida.

Page 24: Desenvolvimento de Algoritmos

24

Estrutura de AlgoritmosEstrutura de Algoritmos

Estrutura CondicionalEstrutura Condicional

?simnão

Uma estrutura condicional permite a escolha do grupo de ações a ser executado quando determinada condição é ou não satisfeita.

condição

Page 25: Desenvolvimento de Algoritmos

25

Estrutura de AlgoritmosEstrutura de Algoritmos

?sim

Estrutura de RepetiçãoEstrutura de Repetição

Uma estrutura de repetição permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de parada seja satisfeita.

Condição de parada

Page 26: Desenvolvimento de Algoritmos

Estrutura de Algoritmo

Será utilizado pseudocódigo– Possui regras predefinidas para sua

escrita

– Facilita o mapeamento para uma linguagem de programação

26

Page 27: Desenvolvimento de Algoritmos

Estrutura em Pseudocódigo

início.

<corpo do algoritmo>

fim.

27

Page 28: Desenvolvimento de Algoritmos

Exemplo pseudocódigo

Inicio. declare n1, n2, soma; ainda iremos refinar!

escreva(“Digite dois números”);

leia(n1, n2);

soma = n1 + n2;

escreva(“Soma é igual a”, soma);

Fim.

28

Page 29: Desenvolvimento de Algoritmos

35

Exercícios em Classe

1. Elaborar o algoritmo para sacar dinheiro em um caixa eletrônico.

2. Elaborar o algoritmo para mostrar o resultado da divisão de dois números.