construcao de algoritmos - aula 06

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

Upload: facema-faculdade-de-ciencias-e-tecnologia-do-maranhao

Post on 16-Feb-2017

33 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Construcao de Algoritmos - Aula 06

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 06

2

Link Drive

bit.ly/ads-algoritmos

Page 3: Construcao de Algoritmos - Aula 06

3

Algoritmos

Page 4: Construcao de Algoritmos - Aula 06

4

Controle de Fluxo

<Comandos de Decisões>

Page 5: Construcao de Algoritmos - Aula 06

5

• Algoritmos• Comandos de Decisões• Introdução• Os algoritmos vistos até então, realizam

apenas instruções básicas: São conhecidos como algoritmos sequenciais.

• Alguns problemas mais complexos exigem maior controle sobre as suas operações.

• Esse controle é exercido com a utilização dos comandos de controle de fluxo.

Page 6: Construcao de Algoritmos - Aula 06

6

• Algoritmos• Comandos de Decisões• Introdução• Os comandos de controle de fluxo,

dividem-se: Comandos de decisões; e Comandos de repetições.

Page 7: Construcao de Algoritmos - Aula 06

7

Comandos de Decisões

Page 8: Construcao de Algoritmos - Aula 06

8

• Algoritmos• Comandos de Decisões• Introdução• Comandos de decisões são também

conhecidos como comandos de seleções ou condicionais.

• Por condição entende-se qualquer "expressão" que resulte em uma resposta do tipo verdadeiro ou falso.

• Os comandos de decisões dividem-se em: simples, encadeado ou composto.

Page 9: Construcao de Algoritmos - Aula 06

9

Comando se

Page 10: Construcao de Algoritmos - Aula 06

10

• Algoritmos• Comandos de Decisões• Comando se• É a forma mais simples dos comandos de

decisões: se <expressão> entao.

• O critério de seleção é dado por uma expressão, cujo valor deve ser um dado do tipo lógico.

• Se esse valor for verdadeiro, então as instruções definidas dentro do comando são executadas; caso contrário, segue execução do programa.

Page 11: Construcao de Algoritmos - Aula 06

11

• Algoritmos• Comandos de Decisões• Comando se

Exemplos:

Expressão Resultado10 < 128 + 610 % 3 = 020 / 3"5 > 3 && 15 < 20"

Logico

InteiroLogico

RealCaractere

Page 12: Construcao de Algoritmos - Aula 06

12

• Algoritmos• Comandos de Decisões• Comando se

Sintaxe

se ([expressão]) entao // Executado se a expressão for verdadeira [bloco de comandos]fimse

As instruções aqui definidas, só serão executada se o valor declarado na expressão for VERDADEIRO.

Page 13: Construcao de Algoritmos - Aula 06

13

A expressão passada no comando SE, deve ser do tipo lógica, caso contrário o código

não executa.

Page 14: Construcao de Algoritmos - Aula 06

14

Exemplo 01Faça um algoritmo que dadas as duas

notas de aluno calcule a média das notas e diga se ele está aprovado.

Page 15: Construcao de Algoritmos - Aula 06

15

• Algoritmos• Comandos de Decisões

Critérios de aprovação da Facema• Aprovado:

• A média deve ser maior ou igual a 7.0.

Page 16: Construcao de Algoritmos - Aula 06

16

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

• Entrada:• n1 8 // primeira nota• n2 6.2 // segunda nota

• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7,0 entao

o aluno está aprovado.

• Saída:• Aluno Aprovado

Page 17: Construcao de Algoritmos - Aula 06

17

• Algoritmos• Comandos de Decisões• Exemplo: Algoritmo para calcular média

aritmética de um aluno e dizer se o mesmo foi aprovado.

algoritmo "Exemplo 01"var n1, n2, media: realinicio n1 8 n2 6.2 media (n1 + n2) / 2 se (media >= 7) entao escreval("Aluno aprovado!") fimse fimalgoritmo

Page 18: Construcao de Algoritmos - Aula 06

18

• Algoritmos • Comandos de Decisões

ExemploInicio

Fim

Aprovado

n1, n2

media ≥ 7?

FV

media (n1 + n2) / 2

Page 19: Construcao de Algoritmos - Aula 06

19

Da mesma forma que o algoritmo tem início e fim, o comando de

decisão também deve ser devidamente inicializado e

finalizado.

Page 20: Construcao de Algoritmos - Aula 06

20

Problema IDado um número, informar se

ele é divisível por 2.

Page 21: Construcao de Algoritmos - Aula 06

21

• Algoritmos• Comandos de Decisões

Resolução do Problema I

algoritmo "Problema 01"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)

se (numero % 2 = 0) entao escreval("Número divisível por 2") fimse fimalgoritmo

Page 22: Construcao de Algoritmos - Aula 06

22

Comandos de Decisões

<Encadeados - CDE>

Page 23: Construcao de Algoritmos - Aula 06

23

• Algoritmos• Comandos de Decisões• Encadeados

Sintaxe

se ([expressão 1]) entao se ([expressão 2]) entao //Executado se ambas as condições forem verdadeiro [bloco de comandos] fimsefimse

Se ambas as condições forem VERDADEIRAS, então as instruções aqui definidas serão

executada.

Page 24: Construcao de Algoritmos - Aula 06

24

Problema IIDado um número, informar se

ele é divisível por 2 e 3.

Page 25: Construcao de Algoritmos - Aula 06

25

• Algoritmos• Comandos de Decisões

Resolução do Problema II {1}

algoritmo "Problema 02"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)

se (numero % 2 = 0) entao se (numero % 3 = 0) entao escreval("Número divisível por 2 e 3") fimse fimse fimalgoritmo

Page 26: Construcao de Algoritmos - Aula 06

26

• Algoritmos• Comandos de Decisões

Resolução do Problema II {2}

algoritmo "Problema 02"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)

se ((numero % 2 = 0) E (numero % 3 = 0)) entao escreva("Número divisível por 2 e 3") fimse fimalgoritmo

Page 27: Construcao de Algoritmos - Aula 06

27

• Algoritmos• Comandos de Decisões• Comando se• Na execução do comando se a condição

será avaliada e: Se a condição for verdadeira, a sequência de

instruções será executada.

Se a condição for falsa, a sequência de instruções não será executada, e o programa continuará sua execução a partir do final do comando fimse.

Page 28: Construcao de Algoritmos - Aula 06

28

Comando senao

Page 29: Construcao de Algoritmos - Aula 06

29

• Algoritmos• Comandos de Decisões• Comando senao• As instruções definidas no comandos se são

executados quando uma determinada condição for atendida.

• Se a condição não for atendida, o algoritmo segue seu fluxo de execução natural.

• O comando SENAO, indica um segundo caminho a ser seguido. Quando a condição pré-estabelecida não for

atendida

Page 30: Construcao de Algoritmos - Aula 06

30

Se o comando se diz o que fazer quando a condição é verdadeira, o comando senao trata o que fazer

quando a condição é falsa.

Page 31: Construcao de Algoritmos - Aula 06

31

• Algoritmos• Comandos de Decisões• Comando senao

Sintaxe:

se ([expressão]) entao // Executado se a expressão do SE for verdadeira [bloco de comandos 1] senao // Executado se a expressão do SE for falsa [bloco de comandos 2]fimse

Page 32: Construcao de Algoritmos - Aula 06

32

Exemplo 02Faça um algoritmo que dadas as duas notas de aluno, calcule a média das notas e diga

se ele está aprovado ou reprovado.

Page 33: Construcao de Algoritmos - Aula 06

33

• Algoritmos• Comandos de Decisões

Critérios de aprovação da Facema• Aprovado:

• A média deve ser maior ou igual a 7.0.

• Reprovado:• A média deve ser menor do 7.0.

Page 34: Construcao de Algoritmos - Aula 06

34

• Algoritmos • Exemplo 02• Solucionando o problema...

• Entrada:• n1 8 // primeira nota• n2 5.2 // segunda nota

• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7.0 entao

o aluno está aprovado.• Senao está reprovado.

• Saída:• Aluno Aprovado• Aluno Reprovado

Page 35: Construcao de Algoritmos - Aula 06

35

• Algoritmos• Comandos de Decisões

Exemplo:

algoritmo "Exemplo 02"var n1, n2, media: realinicio n1 8 n2 5.2 media (n1 + n2) / 2 se (media >= 7) entao escreva("Aluno Aprovado!") senao escreva("Aluno Reprovado!") fimse fimalgoritmo

Page 36: Construcao de Algoritmos - Aula 06

36

• Algoritmos • Comandos de Decisões

ExemploInicio

Fim

Aprovado

n1, n2

media ≥ 7?

F V

media (n1 + n2) / 2

Reprovado

Page 37: Construcao de Algoritmos - Aula 06

37

Problema IIIDado um número, informar se

ele é ou não múltiplo de 2.

Page 38: Construcao de Algoritmos - Aula 06

38

• Algoritmos• Comandos de Decisões

Resolução do Problema IIIalgoritmo "Problema 03"var numero: inteiroinicio escreva("Digite um valor: ") leia(numero)

se (numero % 2 = 0) entao escreva("Número múltiplo de 2") senao escreva("Não é múltiplo de 2") fimse fimalgoritmo

Page 39: Construcao de Algoritmos - Aula 06

39

Problema IVFaça um algoritmo que dados

dois números, apresente o maior deles.

Page 40: Construcao de Algoritmos - Aula 06

40

• Algoritmos• Comandos de Decisões

Resolução do Problema IValgoritmo "Problema 04"var n1, n2: realinicio n1 19 n2 14

se (n1 > n2) entao escreva("Maior: ", n1) senao escreva("Maior: ", n2) fimse fimalgoritmo

Page 41: Construcao de Algoritmos - Aula 06

41

Problema VO banco Algoritmos não permite que seus cliente façam empréstimos superior a 300% do seu salário. Dado o valor do salário e do

empréstimo informar se o empréstimo é permitido ou não.

Page 42: Construcao de Algoritmos - Aula 06

42

• Algoritmos• Comandos de Decisões

Resolução do Problema Valgoritmo "Problema 05"var sal, emprestimo, valor_max: realinicio sal 2300 emprestimo 600 valor_max sal * 3.0 se (emprestimo < valor_max) entao escreva("Empréstimo permitido!") senao escreva("Empréstimo não permitido!") fimse fimalgoritmo

Page 43: Construcao de Algoritmos - Aula 06

43

• Algoritmos• Comandos de Decisões• Comando senao• Antes, na execução do comando se,

tínhamos: Se a condição fosse verdadeira, a primeira

sequência de instruções (bloco se) era executada.

Caso contrário, a sequência de instruções não era executada e o programa seguia o seu fluxo padrão.

• Na execução do comando senao temos: Se a condição for falsa, a segunda sequência

de instruções (bloco senao) será executada.

Page 44: Construcao de Algoritmos - Aula 06

44

O comando senao é opcional, e sua sequência de instruções "somente" será

executada se o valor da condição que está sendo testada no comando se for FALSA.

Page 45: Construcao de Algoritmos - Aula 06

45

Aninhamento Se’s

Page 46: Construcao de Algoritmos - Aula 06

46

• Algoritmos• Se’s aninhados• Funcionamento:• Em um aninhamento de Se’s, o programa

começa a "testar" as condições começando pela condição 1.

• Se o resultado dessa condição for verdadeiro, o programa executará o bloco de instruções associados a ele.

• Do contrário, executará o bloco de comandos associados ao comando senao se correspondente, se ele existir.

Page 47: Construcao de Algoritmos - Aula 06

47

• Algoritmos• Comandos de Decisões• Se’s aninhados

Sintaxe:

se ([expressão 1]) entao [bloco 1] senao se ([expressão 2]) entao [bloco 2] senão [bloco 3] fimsefimse

Page 48: Construcao de Algoritmos - Aula 06

48

Exemplo 03Faça um algoritmo que dadas as duas notas de aluno, calcule a média das notas e diga

se ele está aprovado, de final ou reprovado.

Page 49: Construcao de Algoritmos - Aula 06

49

• Algoritmos• Comandos de Decisões

Critérios de aprovação da Facema• Aprovado:

• A média deve ser maior ou igual a 7.0.

• Reprovado:• A média deve ser menor do 4.0.

• De final:• A média deve ser menor do que 7.0 e

maior ou igual a 4.0.

Page 50: Construcao de Algoritmos - Aula 06

50

• Algoritmos • Exemplo 03

• Entrada:• n1 8 // primeira nota• n2 5.2 // segunda nota

• Solução:• media (n1 + n2)/2• Se a media for maior ou igual a 7.0, entao o

aluno está aprovado.• Senao se a média for menor do 7.0 e maior ou

igual a 4.0, entao o aluno está de final.• Senao está reprovado.

• Saída:• Aluno Aprovado• Aluno de final• Aluno ReprovadoSo

luci

onan

do o

pro

blem

a...

Page 51: Construcao de Algoritmos - Aula 06

51

• Algoritmos

algoritmo "Exemplo 03"var n1, n2, media: realinicio n1 8 n2 5.2 media (n1 + n2) / 2 se (media >= 7) entao escreva("Aluno aprovado!") senao se ((media < 7) E (media >= 4)) entao escreva("Aluno de final!") senao escreva("Aluno reprovado!") fimse fimse fimalgoritmo

Exem

plo

03

Page 52: Construcao de Algoritmos - Aula 06

52

• Algoritmos • Comandos de Decisões

ExemploInicio

Fim

Aprovado

n1, n2

media ≥ 7?

F V

media (n1 + n2) / 2

Reprovado

media < 4?

Final

VF

Page 53: Construcao de Algoritmos - Aula 06

53

Não existe aninhamento de senao’s.

se (cond1) sequência de comandos;senao sequência de comandos;senao //ERRO! sequência de comandos;

Page 54: Construcao de Algoritmos - Aula 06

54

Comandos de Decisões

<Múltipla Escolha – Escolha .. Caso>

Page 55: Construcao de Algoritmos - Aula 06

55

• Algoritmos• Comandos de Decisões• Múltipla Escolha• Nos comandos de decisões estudados, um

comando ou bloco de comandos é executado quando uma determinada condição é atendida.

• Porém, existem problemas em que uma expressão pode assumir quaisquer valores.

• Onde, para cada valor assumido, comandos diferentes são executados.

Page 56: Construcao de Algoritmos - Aula 06

56

• Algoritmos• Comandos de Decisões• Múltipla Escolha

Sintaxe:

escolha([comando]) caso [opção 1] [bloco 1] caso [opção 2] [bloco 2] ... caso [opção n] [bloco n] outrocaso [bloco]fimescolha

Page 57: Construcao de Algoritmos - Aula 06

57

• Algoritmos• Comandos de Decisões• Múltipla Escolha• O [comando] pode ser qualquer expressão

válida.

• Este é avaliado e o seu valor resultante é comparado com as opções distintas [opção 1], [opção 2], ..., [opção n].

• Se o valor for diferente de todos os casos, então o comando outrocaso é executado.

Page 58: Construcao de Algoritmos - Aula 06

58

Exemplo 04Faça um algoritmos que apresente um menu para o usuário perguntando se

ele deseja:1 – Ir à praia ou 2 – Ir ao cinema

Page 59: Construcao de Algoritmos - Aula 06

59

• Algoritmos

Resolução do problema :

algoritmo "Escolha Caso"var opcao: inteiroinicio escreval("Digite 1 para praia ou 2 para cinema") leia(opcao) escolha (opcao) caso 1 escreva("Levar protetor solar") caso 2 escreva("Comprar pipoca e coca-cola") outrocaso escreva("Leia um bom livro") fimescolha fimalgoritmo

Exem

plo

04

Page 60: Construcao de Algoritmos - Aula 06

60

Problema VIDado o número de um mês

exiba o nome correspondente.// Se for dado o número 1 deverá imprimir

"Janeiro"

Page 61: Construcao de Algoritmos - Aula 06

61

• Algoritmos• Comandos de Decisões

algoritmo "Problema 06"var mes: inteiroinicio escreva("Digite o número de um mês: ") leia(mes) escolha (mes) caso 1 escreval("Janeiro") caso 2 escreval("Fevereiro") outrocaso escreva("Mês inválido") fimescolha fimalgoritmoRe

solu

ção

do P

robl

ema

VI