OBJETIVOS

  • Usar a instrução de seleção if
  • Usar a instrução de seleção switch
  • Construir funções que usam outras funções desenvolvidas


EXERCÍCIOS

 

1.     (Q1 do Cap.4) O que escrevem na saída padrão os seguintes trechos de código?

 

a)      

    int i = 23;

    if(i % 2 == 0)

      cout << "A par e passo...";

    else

      cout << "Imparavel...";

 

b)      

    double x = 20.0/2;

    if(0.0 < x and x < 10.0)

      cout << "Dentro do intervalo";

    cout << "Fora do intervalo";

 

 

2.     (Q2 do Cap.4) Utilizando a seleção, escreva uma função que receba um real e que retorne o seu valor absoluto.

 

3.     Utilizando a seleção, escreva uma função que receba dois reais e retorne o maior. Escreva outra função que receba três reais e que, utilizando a função anterior, retorne o maior dos três.

 

4.     (Q10 do Cap.4) Quais as cláusulas entre parêntesis que são, e quais as que não são, avaliadas nas seguintes expressões lógicas? Considere, se necessário, que double x=10.0; e double y=5.0; .

 

a)     (1 > 2) and (x < y)

b)     (1 < 2) and (x < y)

c)     0 or (x == y)

d)     (30.0 < x) or (f(x, y))

 

5.     (Q16 do Cap.4) Imagine um mapa do tesouro contendo uma lista de instruções como, por exemplo, "4 passos para norte". Utilize os números 1, 2, 3 e 4 para codificar as direções norte, sul, este e oeste. Escreva uma instrução switch que permita atualizar uma posição (x, y) com o resultado dos passos efetuados.

 

6.     (Q18 do Cap.4) O que está errado na seguinte instrução switch ?

 

double x = 1;

switch(x)

{

  case 1:

    cout << "x e' 1" << endl;

  case 2:

    cout << "x e' 2" << endl;

  case 3:

    cout << "x e' 3" << endl;

  case 4:

    cout << "x e' 4" << endl;

}

 

7.     Construa, em C++, uma aplicação que peça ao utilizador um número inteiro positivo inferior a 100, e que escreva no ecrã o número introduzido por extenso. Resolva:

a)     usando apenas instruções if

b)     usando também instruções switch

 

8.     (Q9 do Cap.4) Reescreva o procedimento obtemDoubleValido do diapositivo 187, tal que este deixe de ler a partir da entrada padrão, e passe a tentar ler o real a partir de uma ligação de entrada ( istream ) passada como argumento.

 

9.     (P1 do Cap.4) Escreva uma função que receba dois números e que retorne true se estes distarem menos de 10 -8 entre si, e false caso contrário. Escolha um nome sugestivo para o nome da função. A função fabs poderá ser útil (consultar descrição da função no Apêndice B do livro).

 

10. (P2 do Cap.4) Escreva uma função que receba três reais e que retorne true se estes estiverem ordenados crescentemente (de acordo com a ordem na lista de parâmetros formais), e false caso contrário. Escolha um nome sugestivo para o nome da função.