Mandar um cafézinho para o programador:


Me ajude a transformar café em código!
Mostrando postagens com marcador Exercício resolvido. Mostrar todas as postagens
Mostrando postagens com marcador Exercício resolvido. Mostrar todas as postagens

Exercícios de Orientação a Objetos em C++

 01. Crie uma classe que vai simular um Array de números inteiros, mas um Array sofisticado. A classe deve ter no máximo 100 elementos e preencher os seguintes requisitos:

  • Inserir um elemento ao final do 'array'
  • Inserir um elemento em qualquer local do 'array'
  • Informar o tamanho do 'array' (ou seja, quantos elementos foram inseridos)
  • Informar o valor de qualquer elemento do 'array'
  • Informar a média dos valores do array
  • Informar o maior e o menor valor inserido no array

Equação do segundo grau em C++ - Bháskara

Neste tutorial de C++, vamos aprender como resolver uma equação do 2º grau, usando a fórmula de Bháskara, em C++. É uma questão de nossa lista de exercícios de testes condicionais:
  • 11. Faça um programa que calcule as raízes de uma equação do segundo grau, na forma ax² + bx + c. O programa deverá pedir os valores de a, b e c e fazer as consistências, informando ao usuário nas seguintes situações:   
    Se o usuário informar o valor de A igual a zero, a equação não é do segundo grau e o programa não deve fazer pedir os demais valores, sendo encerrado;
       
    Se o delta calculado for negativo, a equação não possui raízes reais. Informe ao usuário e encerre o programa;
       
    Se o delta calculado for igual a zero a equação possui apenas uma raiz real; informe-a ao usuário;
     
    Se o delta for positivo, a equação possui duas raiz reais; informe-as ao usuário;

Fórmula de Bháskara em C++

Primeiro, pedimos os três coeficientes a, b c.
Também declaramos a variável delta para armazenar o delta (jura?) e root1 e root2, para armazenar as raízes.

O primeiro teste é verificar se a é diferente de 0, somente se for é que podemos calcular as raízes.
Se não for, cai no ELSE e avisamos que a equação não existe.

Sendo diferente de 0, temos que calcular o delta:
De Bháskara: delta = b² - 4ac

Agora, vamos testar o delta.
Se for negativo, dizemos que não tem raiz real.
Se for 0, calculamos a única raiz: (-b/2a)
Se for maior que 0, calculamos as duas raizes (-b- raiz(delta))/2a e (-b+raiz(delta))/2a

Veja como ficou nosso código:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float a, b, c, delta,
          root1, root2;

    cout << "Coeficiente a: ";
    cin >> a;

    cout << "Coeficiente b: ";
    cin >> b;

    cout << "Coeficiente c: ";
    cin >> c;

    if(a != 0){
        delta = (b*b) - (4*a*c);

        if(delta<0){
            cout <<"Não tem raízes reais\n";
        }
        else if (delta==0){
            root1=(-b)/(2*a);
            cout << "Possui apenas uma raiz real: "<<root1<<endl;
        }else{
            root1=(-b - sqrt(delta))/(2*a);
            root2=(-b + sqrt(delta))/(2*a);
            cout << "Raiz 1: "<<root1<<endl;
            cout << "Raiz 2: "<<root2<<endl;
        }
    }else{
        cout <<"a=0, não é uma equação do segundo grau\n";
    }

}

Desafio de C++

Você consegue resolver essa questão para dar raízes complexas?

Triângulo Equilátero, Isósceles ou Escaleno? Exercício de C++

Neste tutorial de C++, vamos resolver a seguinte questão de nossa lista de exercícios:

  • 10. Faça um programa que recebe os três lados de um triângulo e diz se é equilátero, isósceles ou escaleno.

Tipos de triângulo em C++

Existem três tipos de triângulo:

  1. Equilátero: todos os lados são iguais
  2. Isósceles: apenas dois lados são iguais
  3. Escaleno: todos os lados são diferentes


Então tudo que temos que fazer é pedir três lados de um triângulo, e sair testando se os lados são todos iguais, ou tem dois iguais ou se é tudo diferente.

Uma maneira de fazer é testando se é tudo igual em um IF, pra saber se é equilátero:

  • if( (a==b) && (b==c) )

Depois se são todos diferentes, pra saber se é escaleno:

  • if( (a!=b) && (a!=c) && (b!=c) )


Se não for nenhuma das alternativas acima, é porque ele é isósceles.
Nosso código fica assim:
#include <iostream>
using namespace std;

int main()
{
    int a, b, c;

    cout << "Lado a: ";
    cin >> a;

    cout << "Lado b: ";
    cin >> b;

    cout << "Lado c: ";
    cin >> c;

    if( (a==b) && (b==c) )
        cout<<"Equilátero\n";
    else if( (a!=b) && (a!=c) && (b!=c))
        cout<<"Escaleno\n";
    else
        cout<<"Isósceles\n";

}

Equilátero, Isósceles ou Escaleno ?

Uma coisa interessante sobre a programação é que o código é uma espécie de impressão digital.
Cada um faz do seu jeito, cada um tem seus métodos, linhas de raciocínio e criatividade.

As vezes é comum fazermos um código grande, feio e confuso.
Depois, vemos alguém usando metade das linhas que usamos, fazendo algo bem mais bonito e abrangente.

Por isso a importância de estudar por livros, sites, tutoriais e códigos de outras pessoas, pra 'pegar' o raciocínio dos outros. Nunca perca esse costume, ok?

Vamos para mais uma solução.
Primeiro, vamos testar se tem dois lados iguais:

  • (a==b) || (a==c) || (b==c)


Se tiver, das duas uma: ou é equilátero ou só isósceles.
Então, testamos se os três lados são iguais:

  • (a==b) && (b==c)


Se for, dizemos que é equilátero. Senão, cai no ELSE aninhado e dizemos que é isósceles.

Se não tiver pelo menos dois lados iguais, é escaleno.
Veja:

#include <iostream>
using namespace std;

int main()
{
    int a, b, c;

    cout << "Lado a: ";
    cin >> a;

    cout << "Lado b: ";
    cin >> b;

    cout << "Lado c: ";
    cin >> c;

    if( (a==b) || (a==c) || (b==c))
        if( (a==b)&&(b==c) )
            cout<<"Equilátero\n";
        else
            cout<<"Isósceles\n";
    else
        cout<<"Escaleno\n";

}

Teste hacker C++


Hacker é aquele que acha brechas, erros, problemas em códigos.
Tem um problema no código acima: as condições de existência de um triângulo.

Não é só digitar três valores e temos um triângulo, não.
Pesquise sobre as condições de existência de um triângulo, e antes de decidir se é equilátero, isósceles ou escaleno, veja se o triângulo pode sequer existir.

Poste seu código nos comentários.

Par ou Ímpar em C++ - Como descobrir (e outros múltiplos)

Baixar a apostila C++ Progressivo
Neste tutorial de nossa Apostila de C++, vamos aprender como descobrir se um determinado número é par ou ímpar (bem como utilizar outros múltiplos, além do 2).

Par ou Ímpar em C++

Agora que já aprendemos sobre o teste condicional IF / ELSE, bem como os operadores matemáticos, vamos aprender como usar o operador de resto da divisão (%) para verificar e descobrir se um determinado número é par ou ímpar.

Números pares são, na verdade, números que são múltiplos de 2.
Ou seja, que são formados pelo número 2 multiplicado por outro número inteiro qualquer.

Veja alguns exemplos:
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
...

Ou seja, para saber se um número num armazena um par, basta testar se seu resto da divisão por 2 é igual a 0. O teste condicional que representa isso é:
  • (num % 2 == 0)

Se tal operação retornar verdadeiro, é par.
Caso contrário (ELSE), é porque o número é ímpar (é sempre par ou ímpar).

Veja como fica nosso código C++, de um programa que pede um inteiro ao usuário e diz se é par ou ímpar:
#include <iostream>
using namespace std;

int main()
{
    int num;

    cout << "Digite um numero: ";
    cin >> num;

    if (num%2==0)
        cout <<"É par"<<endl;
    else
        cout <<"É impar"<<endl;
    return 0;
}

Múltiplo de 3

Como dissemos, o número par nada mais é que um número múltiplo de 2.
Existem também os múltiplos de 3, de 4, de 5, ...

Por exemplo, os números múltiplos de 3 são:
3x1=3
3x2=6
3x3=9
3x4=12

Para descobrir se determinado número é múltiplo de 3, basta verificar o resto da divisão de qualquer número por 3, veja como fica nosso código:
#include <iostream>
using namespace std;

int main()
{
    int num;

    cout << "Digite um numero: ";
    cin >> num;

    if (num%3==0)
        cout <<"É multiplo de 3"<<endl;
    else
        cout <<"Não é multiplo de 3"<<endl;
    return 0;
}

Números múltiplos

Faça um programa que recebe dois números inteiros: num1 e num2.
Em seguida, verifique se num1 é múltiplo de num2.


#include <iostream>
using namespace std;

int main()
{
    int num1, num2;

    cout << "Primeiro numero: ";
    cin >> num1;

    cout << "Segundo numero : ";
    cin >> num2;

    if (num1%num2==0)
        cout <<num1<<" é múltiplo de "<<num2<<endl;
    else
        cout <<num1<<" não é múltiplo de "<<num2<<endl;
    return 0;
}

Ajude o C++ Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo