Roteiro Prático Nº 3 – Funções pré-definidas e estruturas condicionais

Objetivos:

Utilizar algumas funções pré-definidas em C++ e resolver problemas utilizando as estruturas condicionais simples.

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 2 e 3 do livro texto.

a) Funções pré-definidas

Função é um conjunto de comandos agrupados em um bloco que recebe um nome e através deste nome pode ser ativada em um programa.

Cada função objetiva cumprir uma determinada tarefa, por exemplo:

sqrt (): calcula o valor da raiz quadrada.

Para calcular a raiz quadrada de x e colocar o resultado em y como em: $y=\sqrt{x}$, escrevemos:

y = sqrt(x);

A função sqrt() recebe como parâmetro uma variável (ou constante) do tipo double, que no exemplo é a variável x, e calcula a raiz quadrada do parâmetro, retornando o resultado no mesmo local onde a função foi chamada, também do tipo double. Esse resultado é atribuído a y no comando acima.

Exemplo: crie um algoritmo que imprima a hipotenusa de um triangulo retângulo de acordo com a leitura de seus catetos.

Algoritmo:

ALGORITMO
   DECLARE hipotenusa, cateto1, cateto2 NUMÉRICO

   ESCREVA "Informe a medida do primeiro cateto:"
   LEIA cateto1

   ESCREVA "Informe a medida do segundo cateto:"
   LEIA cateto2
   hipotenusa <- sqrt(cateto1*cateto1 + cateto2*cateto2)

  ESCREVA "Hipotenusa = ", hipotenusa
FIM_ALGORITMO.

Programa em C++:

#include <iostream>
#include <cmath>  /*Lembre-se de incluir as bibliotecas que contém as                     
                    funções que você utilizar*/
using namespace std;
 
int main()
{
 
  double hipotenusa, cateto1, cateto2;
 
  cout << "Informe a medida do primeiro cateto: ";
  cin >> cateto1;
 
  cout << "Informe a medida do segundo cateto: ";
  cin >> cateto2;
 
  hipotenusa = sqrt(cateto1*cateto1 + cateto2*cateto2);
 
  cout << "Hipotenusa = " << hipotenusa << endl;  
 
  system("pause");
  return 0;
}

A linguagem C/C++ possui várias funções matemáticas disponíveis na biblioteca math.h (ou cmath), por exemplo:

Função Comentário
ceil(x) Arredonda um número real para cima.
cos(x) Calcula o cosseno de x (em radianos).
exp(x) Obtém o logaritmo natural e elevado à potência x.
fabs(x) Obtém o valor absoluto de x.
floor(x) Arredonda um número real para baixo.
log(x) Obtém o logaritmo natural de x.
log10(x) Obtém o logaritmo de base 10 de x.
pow(x,y) Calcula a potência de x elevado a y.

As operações de potenciação e radiciação também podem ser obtidas com as funções log(X) e exp(X):
$X^N = exp(log(X)*N)$ e $\sqrt[X]{N} = X^{1/N} = exp(log(X)*(1 / N))$

b) Estrutura condicional simples

É usada para tomar decisões e é representada pelo comando “if” que, na linguagem C/C++, tem a seguinte forma:

C++

if (<condição>)
{ 
   comandos;
      ...
}

Algoritmo

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

Uma condição é uma comparação que produz como resultado dois valores possíveis: verdadeiro ou falso. O comando só será executado se a condição for verdadeira. Se a condição for falsa, nada será feito.

Quando é necessário colocar mais de um comando dentro de uma estrutura condicional usa-se um bloco. Um bloco de comandos em C/C++ é escrito entre chaves ( { } ).

Para definir 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 1: Qual o valor das expressões lógicas a seguir, considerando A = 3, B = 16, Letra = 'x' e Teste = false?

(A == 1) && Teste
(3  == 1) && false               
    F    &&     F
      F

Resposta: falso.

(A + 1 >= sqrt(B)) || (Letra != 'a')
(   4    >=    16    ) || ( 'x' != 'a')
V           ||        V
             V

Resposta: verdadeiro.

Exemplo 2: escreva um algoritmo e o programa correspondente em C++ para ler dois números e imprimir o maior deles.

Algoritmo

ALGORITMO

   DECLARE x, y NUMÉRICO
   ESCREVA "Digite dois números: "
   LEIA x, y

   SE x > y ENTÂO  
       ESCREVA "O maior é:", x
   SENÃO 
      SE y > x ENTÂO
         ESCREVA "O maior é:", y
      SENÃO
         ESCREVA "Os dois números são iguais"
FIM_ALGORITMO.

Programa em C++

#include <iostream>
using namespace std;
int main()
{
   int x,y;
   cout << "Digite dois numeros: ";
   cin >> x >> y;
 
   if (x > y) 
      cout << "O maior e: " << x << endl;
   else if (y > x)
      cout << "O maior e: " << y << endl;;
    else
      cout << "Os dois números são iguais!";
   system("pause");
}

Roteiro:

a) Escreva um algoritmo para resolver uma equação do segundo grau, a partir da leitura dos coeficientes da equação (a, b e c).

b) Faça um programa em C++ que implemente o algoritmo da letra a). Utilize funções pré-definidas da biblioteca cmath.

c) Escreva um algoritmo para ordenar três números quaisquer fornecidos como entrada.

d) Faça um programa em C++ que implemente o algoritmo da letra c).

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

d) Escreva um algoritmo para uma calculadora de quatro operações que faz a leitura de dois números e um dos seguintes caracteres: +, -, * ou /. O algoritmo deve calcular e imprimir o resultado da aplicação da operação indicada sobre os números lidos.
e) Faça um programa em C++ que implemente o algoritmo da letra d).

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