Desenvolvimento de Algoritmos
Transcript of Desenvolvimento de Algoritmos
![Page 1: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/1.jpg)
Desenvolvimento de Algoritmos
Slides elaborados pela
Prof(a). Simone do Rocio Senger de Souza
ICMC/USP
![Page 2: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/2.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/3.jpg)
3
60
DEFINIÇÃO
DESENVOLVIMENTO
MANUTENÇÃO
CICLO DE VIDA DO SOFTWARE
O QUE
COMO
ALTERAÇÕES
![Page 4: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/4.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/5.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/6.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/7.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/8.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/9.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/10.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/11.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/12.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/13.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/14.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/15.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/16.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/17.jpg)
17
Estruturas de Algoritmos - Apresentação
ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO
![Page 18: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/18.jpg)
18
Estruturas de Algoritmos - Apresentação
ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO
![Page 19: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/19.jpg)
19
Estruturas de Algoritmos - Apresentação
ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO
![Page 20: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/20.jpg)
20
Estruturas de Algoritmos - Apresentação
ALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO
![Page 21: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/21.jpg)
21
![Page 22: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/22.jpg)
22
![Page 23: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/23.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/24.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/25.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/26.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/27.jpg)
Estrutura em Pseudocódigo
início.
<corpo do algoritmo>
fim.
27
![Page 28: Desenvolvimento de Algoritmos](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/28.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022012411/616a67f311a7b741a35225db/html5/thumbnails/29.jpg)
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.