50
Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Construcao de Algoritmos - Aula 05

Embed Size (px)

Citation preview

Page 1: Construcao de Algoritmos - Aula 05

Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges

Caxias – MA2016

ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Page 2: Construcao de Algoritmos - Aula 05

2

Link Drive

bit.ly/ads-algoritmos

Page 3: Construcao de Algoritmos - Aula 05

3

Algoritmos

Page 4: Construcao de Algoritmos - Aula 05

4

Algoritmos Sequenciais

Page 5: Construcao de Algoritmos - Aula 05

5

• Algoritmos• Algoritmos Sequenciais• Introdução• Nas aulas de até então, foram

apresentadas... Definir os tipos de dados; Utilizar variáveis para armazenar estes

dados; e Relacionar os dados em expressões e

operadores.

• Todos esses conceitos são essenciais para a construção de algoritmos.

Page 6: Construcao de Algoritmos - Aula 05

6

• Algoritmos• Algoritmos Sequenciais

algoritmo "Adicao"// Função: Somar números// Autor : Jeovane Reges// Data : 01/05/2023// Seção de Declaraçõesvar n1, n2, soma: inteiro// Início do bloco de execuçãoinicio n1 ← 13 n2 ← 6 soma ← n1 + n2 escreval("Adicao: ", soma)

//fim do algoritmofimalgoritmo

Comentários

Declaração de variáveis

Bloco de Execução

Page 7: Construcao de Algoritmos - Aula 05

7

Algoritmos sequenciais, basicamente, executam um

conjunto de instruções uma após a outra.

Page 8: Construcao de Algoritmos - Aula 05

8

• Algoritmos• Algoritmos Sequenciais• Introdução• Considere as técnicas abaixo para

elaboração de um algoritmo (Ascencio e Campos, 2002). Ler atentamente o enunciado, destacando os

pontos mais importantes; Definir os dados de entrada; Definir a saída que se deseja alcançar; Definir o processamento (de que maneira será

ordenada a sequência de passos); Construir o algoritmo; Testar o algoritmo realizando simulações.

Page 9: Construcao de Algoritmos - Aula 05

9

Saída: • Quais os resultados que o algoritmo deve

fornecer?

Entrada: • Quais os insumos necessários para se obter a

saída?

Processamento: • Como transformar os insumos na

saída?

Antes de codificar qualquer algoritmo é importante que se saiba:

Page 10: Construcao de Algoritmos - Aula 05

10

Exemplo 01Faça um algoritmo que leia dois

números quaisquer e apresente o resultado das 4 operações aritméticas

básicas.

Page 11: Construcao de Algoritmos - Aula 05

11

• Algoritmos• Exemplo 01• Solucionando o problema...

• Entrada:• Dois números quaisquer (n1, n2)

• Saída:• soma, subtração, multiplicação e

divisão

•Processamento:• soma ← n1 + n2• subtracao ← n1 - n2• multiplicaca

o ← n1 * n2

• divisao ← n1 / n2

Page 12: Construcao de Algoritmos - Aula 05

12

• Algoritmos

1. algoritmo "Exemplo 01"2. var3. n1, n2, soma, sub, div, mult: real4. inicio5. escreva("Digite o 1o. valor: ")6. leia(n1)7. escreva("Digite o 2o. valor : ")8. leia(n2)9.10. soma ← n1 + n2 11. sub ← n1 - n212. div ← n1 / n213. mult ← n1 * n2 14.15. escreval("Soma: ", soma)16. escreval("Subtração: ", sub)17. escreval("Divisão: ", div)18. escreval("Multiplicação: ", mult)19. fimalgoritmo

Reso

luçã

o do

Exe

mpl

o 01

...

Entrada de

Dados

Processamento

Saída

Page 13: Construcao de Algoritmos - Aula 05

13

Exemplos Resolvidos

<Algoritmos Sequenciais>

Page 14: Construcao de Algoritmos - Aula 05

14

Problema IFaça um algoritmo que após ser

dado um número inteiro, imprima o seu antecessor e o seu sucessor.

Page 15: Construcao de Algoritmos - Aula 05

15

• Algoritmos• Problema I• Solucionando o problema...

• Entrada:• Um número qualquer..

• numero ← 8

• Saída:• antecessor // 7• sucessor // 9

•Processamento:• ant ← num - 1• suc ← num + 1

Page 16: Construcao de Algoritmos - Aula 05

16

• Algoritmos• Estrutura Sequencial

Resolução do Problema I

algoritmo "Problema 01"var numero, ant, suc: inteiroinicio numero ← 8 ant ← numero - 1 suc ← numero + 1 escreval("Antecessor: ", ant) escreval("Sucessor: ", suc)fimalgoritmo

Page 17: Construcao de Algoritmos - Aula 05

17

• Algoritmos• Estrutura Sequencial

Resolução do Problema I

Inicio

Fim

ant, suc

numero

ant ← numero – 1suc ← numero +

1

Page 18: Construcao de Algoritmos - Aula 05

18

Problema IIFaça um algoritmo que

apresente a soma de três números quaisquer.

Page 19: Construcao de Algoritmos - Aula 05

19

• Algoritmos• Problema II• Solucionando o problema...

• Entrada:• Três números quaisquer (n1, n2, n3)

• n1 ← 8• n2 ← 9• n3 ← 7

• Saída:• Soma dos três números // 24

• Processamento:• soma ← n1 + n2 + n3

Page 20: Construcao de Algoritmos - Aula 05

20

• Algoritmos• Estrutura Sequencial

Resolução do Problema II

algoritmo "Problema 02"var n1, n2, n3, soma: inteiroinicio n1 ← 8 n2 ← 9 n3 ← 7 soma ← n1 + n2 + n3 escreval("Soma: ", soma)fimalgoritmo

Page 21: Construcao de Algoritmos - Aula 05

21

• Algoritmos• Estrutura Sequencial

Resolução do Problema II

Inicio

Fim

soma

n1, n2, n3

soma ← n1 + n2 + n3

Page 22: Construcao de Algoritmos - Aula 05

22

Problema IIIFaça um algoritmo que leia o tempo e

a distância que um certo motorista levou da cidade A à cidade B. Em seguida, determine a velocidade média que o motorista dirigia.

Page 23: Construcao de Algoritmos - Aula 05

23

• Algoritmos• Problema III• Solucionando o problema...

• Entrada:• O tempo e a distância

• tempo ← 2• distancia ← 100

• Saída:• Velocidade média // 50 Km

• Processamento:• vm ← distancia / tempo

Page 24: Construcao de Algoritmos - Aula 05

24

• Algoritmos• Estrutura Sequencial

Resolução do Problema IIIalgoritmo "Problema 03"var tempo, distancia, vm: realinicio escreva("Digite o tempo: ") leia(tempo) escreva("Digite a distancia: ") leia(distancia) // velocidade média = distancia / tempo vm ← distancia / tempo

escreval("Velocidade media: ", vm)fimalgoritmo

Page 25: Construcao de Algoritmos - Aula 05

25

• Algoritmos• Estrutura Sequencial

Resolução do Problema III

Inicio

Fim

vm // veloc. média

tempo,distancia

vm ← distancia / tempo

Page 26: Construcao de Algoritmos - Aula 05

26

Problema IVFaça um algoritmo que leia o saldo

de uma aplicação, exiba o novo saldo após um acréscimo de

10%.

Page 27: Construcao de Algoritmos - Aula 05

27

• Algoritmos• Algoritmos Sequenciais

Porcentagens

1% → 0.0110% → 0.1015% → 0.1520% → 0.20100%

→ 1

105%

→ 1.05

110%

→ 1.1

Page 28: Construcao de Algoritmos - Aula 05

28

• Algoritmos• Problema IV• Solucionando o problema...

• Entrada:• O saldo de uma aplicação

• Saldo ← 5000

• Saída:• O saldo com acréscimo de 10% // R$ 5500

• Processamento:• reajuste ← saldo * 0.1• novo_saldo ← saldo + reajuste

Page 29: Construcao de Algoritmos - Aula 05

29

• Algoritmos• Estrutura Sequencial

Resolução do Problema IV

algoritmo "Problema 04"var saldo, novo_saldo, reajuste: realinicio escreva("Digite o saldo: ") leia(saldo)

reajuste ← saldo * 0.1 novo_saldo ← saldo + reajuste escreval("Novo Saldo: ", novo_saldo)fimalgoritmo

Page 30: Construcao de Algoritmos - Aula 05

30

• Algoritmos• Estrutura Sequencial

Resolução do Problema IV

Inicio

Fim

novo_saldo

saldo

reajuste ← saldo * 0.1novo_saldo ← saldo + reajuste

Page 31: Construcao de Algoritmos - Aula 05

31

Problema VFaça um algoritmo que após fornecidos

os valores para os coeficientes a, b, c e x de uma equação de segundo grau (ax2 + bx + c), apresente o seu resultado final.

Page 32: Construcao de Algoritmos - Aula 05

32

• Algoritmos• Problema V• Solucionando o problema...

• Entrada:• Coeficientes a, b, c e x

• a ← 3• b ← 2• c ← 4• x ← 2

• Saída:• Resultado da equação // 20

• Procedimento:• eq ← ax2 + bx + c

Page 33: Construcao de Algoritmos - Aula 05

33

• Algoritmos• Estrutura Sequencial

Resolução do Problema Valgoritmo "Problema 05"var a, b, c, x, eq: realinicio a ← 3 b ← 2 c ← 4 x ← 2

// eq ← ax2 + bx + c eq ← a * Quad(x) + (b * x) + c escreval("Resultado: ", eq)fimalgoritmo

Page 34: Construcao de Algoritmos - Aula 05

34

• Algoritmos• Estrutura Sequencial

Resolução do Problema V

Inicio

Fim

eq

a, b, c e x

eq ← ax2 + bx + c

Page 35: Construcao de Algoritmos - Aula 05

35

Problema VIUma Empresa paga a seu vendedor um

salário fixo de R$ 800,00, mais uma comissão de 15% pelo seu valor de

vendas no mês. Faça um algoritmo que leia o valor da venda e determine o

salário total do funcionário.

Page 36: Construcao de Algoritmos - Aula 05

36

• Algoritmos• Problema VI• Solucionando o problema...

• Entrada:• Salário fixo e o valor de vendas

• sal_fixo ← 800• val_vendas ← 10.000

• Saída:• Salário total do funcionário // R$ 2.300

• Procedimento:• comissao ← val_vendas * 0.15• sal_total ← sal_fixo + comissao

Page 37: Construcao de Algoritmos - Aula 05

37

• Algoritmos• Estrutura Sequencial

Resolução do Problema VIalgoritmo "Problema 06"var sal_fixo, sal_total: real val_vendas, comissao: realinicio escreva("Vendas mensais: ") leia(val_vendas)

sal_fixo ← 800 comissao ← val_vendas * 0.15 sal_total ← sal_fixo + comissao escreva("Salario total: ", sal_total)fimalgoritmo

Page 38: Construcao de Algoritmos - Aula 05

38

• Algoritmos• Estrutura Sequencial

Resolução do Problema VI

Inicio

Fim

sal_total

sal_fixo ← 800

comissao ← val_vendas * 0.15sal_total ← sal_fixo + comissao

Page 39: Construcao de Algoritmos - Aula 05

39

Problema VIIFaça um algoritmo que leia uma distancia

em milhas, apresente-a convertida em quilômetros. A formula de conversão é K =

1,61 ∗ M, sendo K a distancia em quilômetros e M em milhas.

Page 40: Construcao de Algoritmos - Aula 05

40

• Algoritmos• Problema VII• Solucionando o problema...

• Entrada:• Distância percorrida em milhas

• milhas ← 48

• Saída:• Distância em milhas convertida em

KM’s

• Processamento:• km ← 1.61 * milhas

Page 41: Construcao de Algoritmos - Aula 05

41

• Algoritmos• Estrutura Sequencial

Resolução do Problema VII

algoritmo "Problema 07"var milhas, km: realinicio escreva("Digite as milhas percorridas: ") leia(milhas)

km ← 1.61 * milhas escreva("Distancia em Km: ", km)fimalgoritmo

Page 42: Construcao de Algoritmos - Aula 05

42

• Algoritmos• Estrutura Sequencial

Resolução do Problema VII

Inicio

Fim

km

milhas

km ← 1.61 * milhas

Page 43: Construcao de Algoritmos - Aula 05

43

Problema VIIIFaça um algoritmo que calcule o comprimento de um círculo.

Comprimento = 2 x raio x pi

Page 44: Construcao de Algoritmos - Aula 05

44

• Algoritmos• Estrutura Sequencial

Resolução do Problema VIII

algoritmo "Problema 08"var raio, comprimento: realinicio raio ← 5 comprimento ← 2 * raio * Pi escreva(comprimento)fimalgoritmo

Page 45: Construcao de Algoritmos - Aula 05

45

• Algoritmos• Estrutura Sequencial

Resolução do Problema VIII

Inicio

Fim

comprimento

raio

comprimento ← 2 * raio * Pi

Page 46: Construcao de Algoritmos - Aula 05

46

Problema IXFaça um algoritmo que dado um

número inteiro de três algarismos, exiba cada algarismo

separadamente.

Page 47: Construcao de Algoritmos - Aula 05

47

• Algoritmos• Problema IX• Solucionando o problema...

• Entrada:• Um número (num)

• numero ← 735• Saída:

− Cada algarismo separadamente.− Centena: c // 7− Dezena: d // 3− Unidade: u // 5

• Processamento:• Próximo slide...

Page 48: Construcao de Algoritmos - Aula 05

48

• Algoritmos• Problema IX• Processamento...

735 100

(35) 7

Entrada: 735 Saída: Centenas = 7 Dezenas = 3 Unidade = 5

35 10

(5) 3

Centenas:735 / 100 = 7num div 100

Dezenas:(735 % 100) /10 = 3(num % 100) div 10

Unidade:(735 % 100) %10 = 5num % 10

Page 49: Construcao de Algoritmos - Aula 05

49

• Algoritmos• Estrutura Sequencial

Resolução do Problema IX

algoritmo "Problema 09"var num, c, d, u: inteiroinicio num ← 735 c ← num div 100 d ← (num % 100) div 10 u ← num % 10 escreval("Centena: ", c) escreval("Dezena: ", d) escreval("Unidade: ", u)fimalgoritmo

Page 50: Construcao de Algoritmos - Aula 05

50

• Algoritmos• Estrutura Sequencial

Resolução do Problema IXInicio

Fim

c // Centenad // Dezena

u // Unidade

num

c ← num div 100 d ← (num % 100) div 10 u ← num % 10