Algoritmos I Aula 8 Estrutura de controle: seleçãopaginas.unisul.br/max.pereira/Algoritmos I Aula...

21
Algoritmos I Aula 8 – Estrutura de controle: seleção Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação

Transcript of Algoritmos I Aula 8 Estrutura de controle: seleçãopaginas.unisul.br/max.pereira/Algoritmos I Aula...

Algoritmos IAula 8 – Estrutura de controle:

seleção

Professor: Max Pereira

http://paginas.unisul.br/max.pereira

Ciência da Computação

Operadores Lógicos

• Os operadores lógicos retornam verdadeiro (V) ou falso (F) de acordo com seus operandos.

• Os operadores lógicos mais comuns

Operadores Lógicos

E

OU

NÃO

Operadores Lógicos

• Suponha duas variáveis A e B, onde A=5 e B=8.

Relação Resultado

A < 6 E B > 7 Verdadeiro: o valor de A é menor que 6 E o valor de B é maior que 7.

A = 5 E B < 5 Falso: apesar de o valor de A ser igual 5, o valor de B não é menor que 5.

A = 5 OU B < 5 Verdadeiro: usando o operador OU, se ao menos uma das condições for verdadeiro (A=5), o resultado da expressão é verdadeiro.

Operadores Lógicos

• Observações Quando utilizamos o operador lógico E, o

resultado só será verdadeiro se as duas condições relacionadas forem verdadeiras.

Para o operador OU, basta que uma das condições seja verdadeira para que o resultado seja verdadeiro.

Em consequência: com o operador OU, para que o resultado seja falso as duas condições devem ser falsas.

Tabela-verdade

• São utilizadas para visualizar todas as opções possíveis ao combinar operadores lógicos.

Tabela-verdade do operador OU

P Q P ou Q

V V V

V F V

F V V

F F F

Tabela-verdade

Tabela-verdade do operador E

P Q P ou Q

V V V

V F F

F V F

F F F

Tabela-verdade do operador NÃO

P NÃO P

V F

F V

Expressões Lógicas

• Exemplos:

(x < y) E (y < z)

(y + z < x) OU (x > 10) E (y < 5)

Ordem de precedência entre operadores em expressões lógicas

1º Operadores aritméticos

2º Operadores relacionais

3º Operador lógico NÃO

4º Operador lógico E

5º Operador lógico OU

Expressões Lógicas

var

num1, num2, num3, num4: inteiro

inicio

num1 <- 10

num2 <- 2

num3 <- 200

num4 <- 200

Expressões Lógicas

• Verdadeiro ou Falsoa) num1 > num2

b) num1 < num3

c) num1 < num4

d) num3 = num4

e) num1 – num2 < num2

f) num1 + num2 > num3

g) num1 * num2 < num4

h) num3 – num4 <> num4

i) num3 / num1 < num4

Expressões Lógicas

• Verdadeiro ou Falso

a) num1 + num2 > 10 E num3 – num4 = num3

b) num1 / num2 > 0 E num1 + num3 > num4

c) num1 * num2 > 40 E num3 – num1 > num4

d) num1 – num2 = 10 E num2 + num3 > num4

e) num3 / num2 > 0 OU num1 + num3 > num4

f) num2 * num1 = 50 OU num3 – num1 > num4

g) num1 – num2 > 10 OU num2 + num3 > num4

Expressões Lógicas

• Verdadeiro ou Falsoa) num1 > num2 E num2 < num3 OU num3 < num4

b) num1 > num2 E num2 < num3 OU num3 < num4

c) num1 * num2 > 10 E num1 > num4 OU num3 – num1 > num4

d) num1 > 10 OU num1> num4 E num3 – num1 > num4

e) num1 + num2 > 10 OU num1 / num3 > num4 E num3 < num4

Estrutura de Controle:Seleção

• As estruturas de seleção ou decisãointerferem diretamente no andamento do algoritmo, quando precisamos tomar decisões.

• Sintaxe (comando de desvio condicional):se <expressão-lógica> entao

<sequência de comandos>

fimse

Estrutura de Controle:Seleção

se <expressão-lógica> entao

<sequência de comandos>

fimse

• Ao encontrar o comando, o Visualg analisa a <expressão-lógica>. Se o resultado for VERDADEIRO, todos os comandos da <sequência de comandos> são executados.

• Se o resultado for FALSO, estes comandos são desprezados e a execução do algoritmo continua a partir da primeira linha depois do fimse.

Estrutura de Controle:Seleção

se <expressão-lógica> entao

<sequência de comandos 1>

senao

<sequência de comandos 2>

fimse

• Se o resultado da <expressão-lógica> for VERDADEIRO, todos os comandos da <sequência de comandos 1>são executados, e a execução continua na primeira linha depois de fimse.

• Se o resultado for FALSO, estes comandos são desprezados e o algoritmo continua a ser executado a partir da primeira linha depois do senao, executando todos os comandos da <sequência de comandos 2>.

algoritmo “media”

var

nota1, nota2, media : real

inicio

leia(nota1)

leia(nota2)

media <- (nota1 + nota2) / 2

se media >= 7 entao

escreva(“Aprovado!”)

senao

escreva(“Recuperação!”)

fimse

fimalgoritmo

Exercícios

• Escreva um programa que deve ler o salário bruto e calcular o salário líquido. O salário líquido será o salário bruto menos os descontos de INSS e IR. Caso o salário bruto seja menor que R$ 1500,00 não devemos descontar IR e descontaremos 8% de INSS. Para salários a partir de R$ 1500,00, descontaremos 5% de IR e 11% de INSS. Ao final deve ser exibido o salário bruto, os valores dos descontos e o salário líquido.

• Escreva um programa que leia um número inteiro e diga se ele é par ou ímpar e se é positivo, negativo ou nulo.

Exercícios

• Escreva um programa que leia a idade de um atleta e escreva na tela em que categoria ele se enquadra, seguindo o quadro abaixo:

Faixa etária Categoria

de 5 a 10 anos Infantil

de 11 a 17 anos Juvenil

de 18 a 30 anos Profissional

acima de 30 anos Sênior

Exercícios

• Altere o programa que calcula a função de Bhaskara. Caso o valor do delta seja negativo, o programa deve avisar “Delta negativo”.

Exercícios

• Escreva um programa que leia dois números e escreva o resultado da divisão do maior dividido pelo menor.

• Escreva um programa que leia três números e escreva na tela o maior e o menor número.

Exercícios

• Escreva um programa que leia um ângulo (entre 00 e 3600) e que escreva o quadrante ao qual pertence.

Ângulo Quadrante

Se o ângulo é maior que 0 e menor ou igual a 90

Primeiro Quadrante

Se o ângulo é maior que 90 e menor ou igual a 180

Segundo Quadrante

Se o ângulo é maior que 180 e menor ou igual a 270

Terceiro Quadrante

Se o ângulo é maior que 270 e menor ou igual 360

Quarto Quadrante

Exercícios

• Escrever um programa para ler os valores dos lados de um triângulo e classificá-lo segundo seus lados.

• Verificar se cada lado é menor que a soma dos outros dois lados.