Roteiro Pratico 4

Objetivos:

Trabalhar com operadores lógicos e relacionais em estruturas condicionais (ou de decisão) simples e compostas.

Livro texto:

ASCENCIO, A. F.G., CAMPOS, E.A.V. Fundamentos da Programação de Computadores (Algoritmos, Pascal, C/C++ e Java). Editora: Prentice-Hall, 2008.

Fundamentação Teórica

Referência para consulta e estudos: Capítulos 3 do livro texto.

a) Estrutura condicional simples

Conforme introduzido no roteiro anterior, estruturas condicionais são da forma:

Algoritmo:

SE <condição> 
ENTÃO
INICIO     
    comandos
    ...
FIM

Programa em C++:

if (<condição>)
{ 
    comandos;
          ...
}
  • condição é uma comparação que possui dois possíveis valores: verdadeiro e falso
  • comandos só serão executados se a condição for verdadeira

Em resumo, em uma expressão lógica podem ser usados os operadores relacionais e lógicos:

Operadores Relacionais
Operador Resultado verdadeiro se…
x == y O conteúdo de x é igual ao conteúdo de y
x != y O conteúdo de x é diferente do conteúdo de y.
Operadores lógicos
E (&&) OU ( || ) NÃO (!)
F e F = F F ou F = F não F = V
F e V = F F ou V = V não V = F
V e F = F V ou F = V
V e V = V V ou V = V

Exemplo: Faça um programa que receba um número e verifique se esse número é par ou ímpar.

C++

#include <iostream.h>
using namespace std;
 
int main (){
 
    int num;
 
    cout << "Digite o numero: ";
    cin >> num;
 
    if ((num % 2) == 0)
    {
        cout << "Numero par.\n";         
    }
    if ((num % 2) == 1){
        cout << "Numero impar.\n";      
    }
 
    system("pause > null");    
    return 0;    
 
}

Algoritmo

ALGORITMO

     DECLARE num NUMÉRICO
     ESCREVA “Digite o numero: ”
     LEIA num

     SE RESTO(num/2) = 0
     ENTÃO ESCREVA “Numero par.”

     SE RESTO(num/2) = 1
     ENTÃO ESCREVA “Numero impar.”

FIM_ALGORITMO.

b) Estrutura condicional composta

Se condição for verdadeira, comandos1 serão executados, senão, serão executados comandos2.

Algoritmo:

SE <condição> 
ENTÃO
INICIO     
    comandos
    ...
FIM
SENÃO
INÍCIO
    comandos
    ...
FIM

Programa em C++:

if (<condição>)
{
    comandos1;
    ...
}
else
{
    comandos2;
    ...
}

Exemplo: Reescreva o programa do exemplo anterior utilizando comando condicional composto.

C++

#include <iostream.h>
using namespace std;
 
int main (){
 
    int num;
 
    cout << "Digite o numero: ";
    cin >> num;
 
    if ((num % 2) == 0)
    {
         cout << "Numero par.\n";         
    }
    else
    {
        cout << "Numero impar.\n";      
    }
 
    system("pause > null");    
    return 0;    
 
}

Algoritmo

ALGORITMO

    DECLARE num NUMÉRICO
    ESCREVA “Digite o numero: ”
    LEIA num

    SE RESTO(num/2) = 0
    ENTÃO ESCREVA “Numero par.”
    SENÃO ESCREVA “Numero impar.”

FIM_ALGORITMO.

Há ainda o seguinte formato alternativo:

C++

if (<condição>)
{ 
    comandos1;
    ...
}
else if (<condição>)
{
    comandos2;
    ...
}
Neste formato, pode-se utilizar vários blocos SENÃO-SE.

Algoritmo

SE <condição> 
ENTÃO INICIO     
    comandos
    ...
FIM
SENÃO SE <condição> 
ENTÃO INÍCIO
    comandos
    ...
FIM

c) Estrutura CASE

Quando utilizamos comandos mutuamente exclusivos, isto é, se um comando for executado, os demais não serão, o comando seletivo é mais indicado.

Algoritmo:

CASO <variável seletora> 
    VALOR1: lista 1 de comandos
    VALOR2: lista 2 de comandos
    ...
    CASO PADRÃO: lista de comandos
FIM

Programa em C++:

switch (<variável seletora>)
{ 
    case valor1:
        lista 1 de comandos;
        break;
    case valor2:
        lista 2 de comandos;
        break;
        .....
    default:
        lista de comandos;
}

Se a variável seletora possuir o valor1, lista 1 de comandos será executada.
Se a variável seletora possuir o valor2, lista 2 de comandos será executada e assim por diante.
Pode ser usado um caso padrão que será executado apenas em caso de nenhum valor alvo ter sido atingido.

Exemplo: Veja o seguinte exemplo em C++ de uma calculadora de quatro operações que recebe dois números, o operador (+,-,* e /) e imprime o resultado da operação utilizando o comando switch.

C++

#include <iostream.h>
using namespace std;
 
int main (){
 
    float num1, num2, resultado;
    char operador;
 
    cout << "Digite o primeiro numero: ";
    cin >> num1;
 
    cout << "Digite o operador (+,-,*,/): ";
    cin >> operador;
 
    cout << "Digite o segundo numero: ";
    cin >> num2;
 
    switch (operador)
    {
        case '+': 
            resultado = num1 + num2;
            break;
        case '-':
            resultado = num1 - num2;
            break;
        case '*': 
            resultado = num1 * num2;
            break;
        case '/':
            resultado = num1 / num2;
            break;
        default: 
            cout << "Operacao invalida!\n";
            system("pause > null");    
            return 0; 
    }
 
    cout << "O resultado e: " << resultado;
 
    system("pause > null");    
    return 0;    
 
}

Roteiro:

a) Faça um programa em C++ que receba a idade de uma pessoa e mostre a mensagem de maioridade ou não.

b) Faça um programa em C++ que verifique a validade da senha fornecida pelo usuário. A senha é 4531. O programa deve mostrar uma mensagem de permissão de acesso ou não.

c) Faça um programa em C++ que receba quatro notas de um aluno, calcule e mostre a média aritmética das notas e a mensagem de aprovado ou reprovado considerando para aprovação a média 7.

d) Uma empresa decide dar um aumento de 30% aos funcionários com salários inferiores a R$500,00. Faça um programa em C++ que receba o salário do funcionário e mostre o valor do salário reajustado ou uma mensagem, caso o funcionário não tenha direito ao aumento.

e) Faça um programa que receba a medida de um ângulo em graus. Calcule e mostre o quadrante em que se localiza esse ângulo. Considere os quadrantes da trigonometria e que os ângulos estão sempre entre 0 e 360 graus.

A próxima tarefa não é obrigatória. Faça se der tempo ou pratique em casa.

d) Faça um programa que receba a medida de um ângulo em graus. Calcule e mostre o quadrante em que se localiza esse ângulo. Considere os quadrantes da trigonometria e para ângulos maiores que 360 graus ou menores que -360 graus, reduzí-los, mostrando também o número de voltas e o sentido da volta (horário ou anti-horário).

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License