programação aplicada à engenharia - ufersa · • fluxograma com comandos sequenciais – a...

23
Programação Aplicada à Engenharia Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Silvio Fernandes 2009.1 Aula 03: Algoritmos 1

Upload: doanthuy

Post on 29-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Programação Aplicada à Engenharia

Universidade Federal Rural do Semi-ÁridoDepartamento de Ciências Ambientais

Silvio Fernandes

2009.1

Aula 03: Algoritmos

1

Page 2: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Em uma receita de bolo, descrevem-se quais serão os ingredientes e as suas quantidades. Depois, quais são as regras para o seu preparo, como a sequencia de inclusão dos preparo, como a sequencia de inclusão dos ingredientes

2

Page 3: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido

– Ex: Pediu-se a 3 pessoas que escolhessem um valor L e escrevessem os termos da sequencia de Fibonacci inferiores a L

• Pessoa 1: L= 50 {1, 1, 2, 3, 5, 8, 13, 21, 34}

• Pessoa 2: L = 13 {1, 1, 2, 3, 5, 8}

• Pessoa 3: L = 1 {}

3

Page 4: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Pode-se reconhecer nas 3 ações distintas um mesmo padrão de comportamento, a subordinação a uma mesma norma de

execuçãoexecução

• Algoritmo: é a descrição de um conjunto de comando que, obedecidos, resultam numa sucessão finita de ações

4

Page 5: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Ex: Torres de Hanoi. O objetivo é transferir os 3 anéis da haste A para B, usando C se necessário. As regras são:

– Deve-se mover um único anel por vez– Deve-se mover um único anel por vez

– Um anel de diâmetro maior nunca pode repousar sobre um menor

5

Page 6: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Algoritmo para resolver Torres de HanoiInício

1. Mover um anel da haste A para a haste B

2. Mover um anel da haste A para a haste C

3. Mover um anel da haste B para a haste C3. Mover um anel da haste B para a haste C

4. Mover um anel da haste A para a haste B

5. Mover um anel da haste C para a haste A

6. Mover um anel da haste C para a haste B

7. Mover um anel da haste A para a haste B

Fim

6

Page 7: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Algoritmos

• Algoritmo para resolver Torres de Hanoi

7

Page 8: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Propriedades de um Algoritmo

• Valores de entrada– Todo algoritmo deve possuir zero, um ou mais entradas

• Valores de saída– Uma ou mais saídas simbolizam os resultados

• Finitude– Todo algoritmo deve ser finito, assim ele tem um início e um conjunto – Todo algoritmo deve ser finito, assim ele tem um início e um conjunto

de passos que levam ao término

• Passos elementares– Um algoritmo computacional deve ser explicitado por meio de

operações elementares, sem que possam haver diferenças de interpretação

• Correção– Deve permitir que, com sua execução, se chegue às saídas com

resultados coerentes com as entradas

8

Page 9: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Para um algoritmo ser útil, deve ser entendido da mesma forma por todas as pessoas que o utilizarem

• Existem diversas maneiras de formalizar a • Existem diversas maneiras de formalizar a representação de um algoritmo

– Fluxograma: representação gráfica, por símbolos especiais, da definição, análise ou método de solução de um problema

9

Page 10: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

10

Page 11: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Todo fluxograma deve possuir uma sintaxe e uma semântica bem-definidas– Sintaxe

• Símbolos gráficos específicos

Expressões admissíveis a serem escritas no interior dos • Expressões admissíveis a serem escritas no interior dos símbolos

• Sub-rotinas predefinidas que podem ser utilizadas nas expressões

– Semântica• Regras de como entender e simular a solução que o

fluxograma propõe

11

Page 12: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma mínimo

– É aquele que não executa nada, mas tem um início e um fim, representados pelos terminadores com os textos Início e Fim. Os elementos de um os textos Início e Fim. Os elementos de um fluxograma são conectados por setas que indicam o caminho a ser seguido a partir do símbolo

12

Page 13: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos sequenciais

– A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes sem desvio até alcançar o símbolo Fimaté alcançar o símbolo Fim

– Ex: Um algoritmo para calcular a força exercida pela coluna de um líquido (de peso γ) sobre a área da válvula (com diâmetro d) de um reservatório (de altura h). O cálculo da força é dado por:

13

4

******

2hd

hAreaTampanaVolumeColuFγπ

γγ ===

Page 14: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos sequenciais

– As variáveis da fórmula são variáveis do

fluxograma, que na verdade são espaços da memória onde são armazenados os valores que memória onde são armazenados os valores que podem ser lidos ou escritos

14

Page 15: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos sequenciais

15

Page 16: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos de decisão

– Ex: Algoritmo para calcular as raízes de uma equação do segundo grau tipo Ax2 + Bx + C, utilizando a fórmula de Bhaskara utilizando a fórmula de Bhaskara

– É necessário verificar se A ≥ 0

• Se for, exiba a mensagem “Não é equação do 2º grau”

• Senão, continuar em frente com os cálculos

16

A

ACBBx

2

42

−±−=

Page 17: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos de decisão

– A decisão possibilita escolher um de dois caminhos a partir de um teste. O resultado da expressão é um valor lógico, considerando doi expressão é um valor lógico, considerando doi valores: verdadeiro ou falso (true ou false)

17

Page 18: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos de decisão

18

Page 19: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos de repetição

– Ex: Algoritmo de Euclides para o cálculo de máximo divisor comum entre 2 números inteiros

– A expressão y≠ 0 é representado por y<>0– A expressão y≠ 0 é representado por y<>0

– Resto da divisão entre 2 inteiros é representado pela operação mod

19

Page 20: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Fluxogramas

• Fluxograma com comandos de repetição

20

Page 21: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Exercícios

1. Elabore um fluxograma que calcule quantas notas de 50, 10 e 1 são necessárias para se pagar uma conta cujo valor é fornecido

2. Elabore um fluxograma que permita a 2. Elabore um fluxograma que permita a entrada de um número inteiro e diga se ele é par ou ímpar

3. Elabore um fluxograma que permita a entrada de dez valores e calcule o produto de todos eles

21

Page 22: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Exercícios

4. Qual o resultado exibido pelo fluxograma, se o dado de entrada digitado for sua idade?

22

Page 23: Programação Aplicada à Engenharia - UFERSA · • Fluxograma com comandos sequenciais – A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes

Referências

– Harry Farrer, Christiano Gonçalves Becker, Eduardo Chaves Faria, Helton Fábio de Matos, Marcos Augusto dos Santos e Miriam Lourenço Maia, “Algoritmos Estruturados", , Lourenço Maia, “Algoritmos Estruturados", , editora Guanabara Koogan.

– Marco A. F. Souza et al. “Algoritmos e lógica de programação”. Thompson, 2005.

– Harvey M. Deitel. “Java – Como programar”. Prentice Hall, 2006.

23