Operadores Lógicos e Relacionais e Comandos de Seleção

ECT3201 – Linguagem de Programação

Prof. Éverton Santi

Motivação

Todos os programas executam sempre o mesmo caminho?

Em muitos casos, a resposta é não.

Um programa pode:

  • comparar valores
  • tomar decisões
  • executar comandos diferentes

Tipo bool

O tipo bool é usado para representar valores lógicos:

  • true
  • false

Ele também pode ser visto numericamente como:

  • false equivale a 0
  • true equivale a 1

Esse tipo é útil para representar condições.

Exemplos com bool

bool aprovado = true;
bool senha_correta = false;
bool pode_entrar = true;

Em geral, variáveis bool representam:

  • respostas do tipo sim ou não
  • resultados de comparações
  • condições para executar comandos

Operadores Relacionais

Operador Significado
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a
== igual a
!= diferente de

O resultado de uma comparação é sempre true ou false.

Expressões Relacionais

Exemplos:

idade >= 18
nota < 7.0
media == 10
numero != 0
  • Cada expressão acima produz um valor lógico.

Exercício

Considere:

int a = 5, b = 8, c = 5;

Determine o valor lógico de:

a < b
a == c
b <= c
a != b

Operadores Lógicos

Operador Significado
&& AND
|| OR
! NOT
  • Esses operadores combinam ou alteram valores lógicos.

Tabela-Verdade do &&

A B A && B
true true true
true false false
false true false
false false false
  • O resultado só é true quando as duas condições são verdadeiras.

Tabela-Verdade do ||

A B A || B
true true true
true false true
false true true
false false false
  • O resultado só é false quando as duas condições são falsas.

Tabela-Verdade do !

A !A
true false
false true
  • O operador ! inverte o valor lógico da expressão.

Precedência de Operadores

Da maior para a menor precedência:

Nível Categoria Operadores
1 Lógico !
2 Matemáticos *, /, %
3 Matemáticos +, -
4 Relacionais <, <=, >, >=
5 Relacionais ==, !=
6 Lógicos &&
7 Lógicos ||
  • Use parênteses para deixar a intenção explícita.

Combinando Condições

Exemplos:

idade >= 18 && idade <= 65
media >= 7.0 || nota_final >= 5.0
!(numero == 0)
  • Nesses casos, estamos formando expressões maiores a partir de comparações.

Exercício

Resolva no caderno:

int idade = 20;
double media = 6.5;

Determine o valor lógico de:

idade >= 18 && media >= 7.0
idade >= 18 || media >= 7.0
!(media >= 7.0)

Avaliando Expressões

  • Comparações produzem true ou false.
  • Operadores lógicos combinam esses resultados.
  • Use parênteses para deixar a expressão mais clara.

Exemplo:

(idade >= 18) && (idade <= 65)

Para Que Serve Seleção?

Usamos seleção quando:

  • o programa precisa escolher um caminho entre várias possibilidades
  • a ação depende de uma condição

Exemplo de problema:

  • verificar se um aluno foi aprovado, ficou em recuperação ou foi reprovado com base na média

Comando if

Use if quando:

  • você quer executar um bloco apenas se a condição for verdadeira
  • a condição é uma expressão avaliada pelo seu valor booleano calculado (true ou false)

Sintaxe básica:

if (condicao) {
    // comandos
}

Exemplo com if

  • leia a idade de uma pessoa
  • use if para verificar se ela é maior de idade
  • se idade >= 18, mostre: "Maior de idade"

Comando if-else

Use if-else quando:

  • você precisa escolher entre dois caminhos

Sintaxe básica:

if (condicao) {
    // comandos se verdadeiro
} else {
    // comandos se falso
}

Exemplo com if-else

  • leia a média de um aluno
  • use if-else para classificar o resultado
  • se media >= 7.0, mostre: "Aprovado"
  • caso contrário, mostre: "Reprovado"

if-else-if encadeado

Use essa estrutura quando:

  • existem mais de duas possibilidades

  • também chamada na literatura de if-else-if ladder

  • leia a média de um aluno

  • se media >= 7.0, mostre: "Aprovado"

  • se media >= 4.0 e media < 7.0, mostre: "Recuperacao"

  • caso contrário, mostre: "Reprovado"

Exercício 1

Dada uma equação de segundo grau ax2+bx+c=0ax^2 + bx + c = 0, calcule e mostre suas raízes reais caso existam:

x=b±b24ac2ax = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

Exercício 2

Uma loja quer classificar o benefício de um cliente no momento da compra.

Faça um programa em C++ que leia:

  • a idade do cliente
  • o valor_compra
  • se o cliente é cadastrado (1 para sim e 0 para não)

E mostre:

  • "Desconto Maximo" quando o cliente for cadastrado e (valor_compra >= 200 ou idade >= 60)
  • "Desconto Basico" quando o cliente for cadastrado e valor_compra >= 100
  • "Sem Desconto" nos demais casos

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit

fit