| | | |

Minicurso de C++ para Matemática

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

3.2 Ramificação

Uma estrutura de ramificação é uma instrução para a tomada de decisões durante a execução de um programa. Na linguagem C++, usa-se a sintaxe

1if (condition0) {
2 block0;
3} else if (condition1) {
4 block1;
5} else {
6 block2;
7}

A instrução if permite a execução do bloco computacional block0 somente no caso de a condition0 seja true (verdadeira). A instrução else if somente é verificada quando condition0 == false. Neste caso, o block1 é executado somente se condition1 == true. Senão, block2 é executado.

Por exemplo, o seguinte código computa os zeros da função

f(x)=ax+b, (3.2)

para parâmetros informados por usuária(o). Verifique!

Código 8: ZeroP1.cpp
1#include <iostream>
2
3int main() {
4
5 double a,b;
6 std::cout << "Valor de a: ";
7 std::cin >> a;
8 std::cout << "Valor de b: ";
9 std::cin >> b;
10
11 if (a != 0.0) {
12 double raiz = -b/a;
13 std::cout << "Raíz: "
14 << raiz << std::endl;
15 } else if (b == 0.0) {
16 std::cout << "Todo x real é raíz."
17 << std::endl;
18 } else {
19 std::cout << "Não há raíz."
20 << std::endl;
21 }
22
23 return 0;
24}
E. 3.2.1.

Implemente um código que contenha uma função que recebe dois números n e m e imprime o maior deles.


1double max(double m, double n) {
2 double maior = m;
3 if (maior < n)
4 maior = n;
5 return maior;
6}
E. 3.2.2.

Implemente um código que contenha um método que recebe os coeficientes de um polinômio

p(x)=ax2+bx+c (3.3)

e imprime se p têm ou não raízes reais.


1bool TemRaizesReais(double a, double b, double c) {
2 bool resp;
3
4 if (b*b - 4*a*c >= 0) {
5 std::cout << "Raízes reais."
6 << std::endl;
7 resp = true;
8 } else {
9 std::cout << "Não tem raízes reais."
10 << std::endl;
11 resp = false;
12 }
13
14 return resp;
15}
E. 3.2.3.

Implemente um código que contenha um método para a computação das raízes de um polinômio de segundo grau.


1int RaizesP2(double a, double b, double c,
2 double &x1, double &x2) {
3 // raízes reais flag == 0
4 // raízes complexas flag == 1
5 int flag = 0;
6
7 double disc = b*b - 4*a*c;
8
9 if (disc == 0.) {
10 x1 = (-b - sqrt(disc)) / (2*a);
11 x2 = (-b + sqrt(disc)) / (2*a);
12 } else if (disc == 0.0)
13 x1 = x2 = -b / (2*a);
14 else {
15 x1 = -b / (2*a);
16 x2 = sqrt(-disc) / (2*a);
17 flag = 1;
18 }
19
20 return flag;
21}

Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |