Mandar um cafézinho para o programador:


Me ajude a transformar café em código!
Mostrando postagens com marcador Código comentado. Mostrar todas as postagens
Mostrando postagens com marcador Código comentado. 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

Lista de Exercícios de Funções em C++ (Resolvidos e comentados)

Chegamos ao final de mais uma seção de nosso curso de C++, a de funções.
Nos exercícios abaixo, você deve usar todos seus conhecimentos aprendidos até aqui, como o básico, de laços, loopings, testes condicionais e, claro, de função.

Use e abuse das funções. Crie muitas funções.
Cada função deve fazer uma única coisa, da maneira mais simples e direta possível.

Faça com que elas sejam facilmente acopladas, ou seja, deve receber e retornar informações, sempre que possível. Isso permite que você possa usar os códigos de suas funções posteriormente.

Lembre-se: um programa grande nada mais é que uma série de programinhas pequenos.
Suas funções devem ser esses programinhas pequenos, fazendo funcionalidades específicas, ok?

Exercícios de Função em C++

01. Crie um programa que recebe dois lados menores de um triângulo retângulo e uma função retorna o valor da hipotenusa.

02. Crie um programa que recebe os três lados de um triângulo, passa esses valores para uma função que diz se esse triângulo existe ou não (pela condição da existência do triângulo, cada lado deve ser maior que o módulo da subtração dos outros dois lados e deve ser menor que a soma dos outros dois lados)

03. Faça um programa que peça um número inteiro positivo 'n' para o usuário e imprima um quadrado de lado 'n' preenchido de hashtags. Por exemplo, para n=4, deve aparecer na tela:
####
####
####
####

04. Programe um software que recebe três números, para para uma função e ela retorna o maior deles. Faça outra função que recebe os mesmos números e retorna o menor deles.

05. Um número é dito ser perfeito quando ele é igual a soma de seus divisores.
Por exemplo, o seis é perfeito, pois: 6 = 1 + 2 + 3
Programa um software que pede um número ao usuário e diga se ele é perfeito ou não.

06. Crie um software que recebe um número do usuário, passa esse valor para uma função e ela retorna esse número escrito ao inverso. Por exemplo, você deu o valor 1234, então ele vai retornar 4321. Dica: primeiro, crie uma função que conta quantos dígitos tem um número.

07. Faça um programa para lançar uma moeda. Quando chamamos uma função, ela deve retorna cara ou coroa. Em outra função, faça 'n' lançamentos de moedas, 'n' é o valor que o usuário quiser, e mostre a porcentagem de vezes que deu cara e coroa. Se você jogar a moeda 10, 100, 1000, um milhão de vezes...o que tende a acontecer?

08. Crie um dado em C++. Role o dado: ou seja, uma função deve sortear um número aleatório de 1 até 6. Agora, faça com que o dado anterior seja lançado 100 vezes, mil vezes e 1 milhão de vezes. A cada vez que ele rodar, você deve armazenar o valor que ele forneceu, ao final, você mostra quantas vezes cada número foi sorteado. Bate com os resultados da estatística ?

09. Crie um jogo de par ou ímpar. Você deve escolher 0 para par ou 1 para ímpar, em seguida fornece um número. O computador gera um número de 0 até 10, soma os valores e diz quem ganhou, além de mostrar o placar e perguntar se quer jogar mais uma rodada.
Como fazer o jogo Par ou Ímpar em C++

10. Aos moldes do jogo par ou ímpar, crie o jogo do Pedra, Papel ou Tesoura, em C++.

11. Crie um jogo onde o computador sorteia um número de 1 até 10, e você tenta adivinhar qual é.

12. Vamos incrementar o jogo anterior? Faça com que o programa diga dizer quantas tentativas você levou para acertar. Faça com o que o computador sorteie um número de 1 até 100. A cada vez que você chutar, ele deve dizer se você chutou abaixo do valor real, acima ou se acertou. Ao final, diz o número de tentativas que você teve e se bateu o record ou não. Ah, ao final de cada rodada, o programa pergunta se você quer jogar novamente ou não, exibindo o record atual.

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.

Quantos dias o mês possui - Exercício de C++

Neste tutorial, vamos resolver o seguinte exercício de nossa lista:
  • 08. Usando os conceitos de switch case, faça um programa que pergunte o mês ao usuário (número de 1 até 12), e diga quantos dias aquele mês possui. Fevereiro tem 28 dias (não é bissexto).

Quantos dias tem no mês

Vamos lá.
Meses com 28 dias: 2
Meses com 30 dias: 4, 6, 9 e 11
Meses com 31 dias: 1, 3, 5, 7, 8, 10 e 12

Vamos fazer acumulando cases, para você fixar melhor esta importante técnica usando switch.
A variável days inicia com 0.

A lógica é a seguinte...todos os meses tem 28 dias ou mais. Assim, queremos que o 'case 2' seja sempre executado, então ele vai ficar lá embaixo.
Lá, iremos adicionar o valor 28 a variável days.
Pronto, qualquer mês que você digite vai ter pelo 28 dias, pois não usaremos break nos cases, pra acumular.
  • days = days + 28;

Os cases do meio são os dos meses 4, 6, 9 e 11 tem 30 dias.
Como já vamos adicionar 28 dias, só temos que adicionar mais 2 dias pra ficar 30, nesses cases:
  • days = days + 2;
Veja bem: se digitar 2, cai só no 'case 2', que coloca 28 dias na variável. Se digitar 4, 6, 9 ou 11, cai nesses cases que soma 2 e depois cai no 'case' que soma mais 28 dias, totalizando 30 dias.

Então, caso digitem 1, 3, 5, 7, 8, 10 ou 12, devemos somar apenas +1:
  • days = days + 1;
Veja como ficou nosso código:

#include <iostream>
using namespace std;

int main()
{
    int days=0, month;

    cout << "Numero do mes: ";
    cin >> month;

    switch(month)
    {
        case 1: case 3: case 5: case 7:
        case 8: case 10: case 12:
            days = days + 1;

        case 4: case 6:
        case 9: case 11:
            days = days + 2;

        case 2:
            days=days+28;
            break;
        default:
            cout <<"Mês inválido"<<endl;
    }

    cout <<"O mês "<<month<<" tem "<<days<<" dias.\n";
}

Deu pra entender? É uma solução bem charmosa.

Comparando dois números em C++: Maior, Menor ou Iguais

Questão resolvida, com código comentado, do tutorial de Exercícios de testes condicionais em C++:
01. Faça um programa que peça dois números, e diga qual é maior ou se são iguais.

Como comparar dois números em C++

Vamos armazenar os números nas variáveis num1 e num2.
Primeiro, vamos testar se a primeira é maior que a segunda, se for cai no primeiro IF e diz isso no cout.

Se não for, cai no ELSE.
Nesse ELSE, o segundo número é maior que o primeiro, ou pode ser igual.

Testamos isso com um novo IF aninhado, para saber se num2 é maior que num1, se for, avisamos isso.

Caso num1 não seja maior que num2, ou num2 não seja maior que num1, então cai no ELSE aninhado e temos necessariamente que os números são iguais.

Veja como ficou nosso código:

#include <iostream>
using namespace std;

int main()
{
    int num1, num2;

    cout << "Numero 1: ";
    cin >> num1;
    cout << "Numero 2: ";
    cin >> num2;

    if(num1>num2)
        cout <<num1<<" é maior que "<<num2<<endl;
    else
        if(num2>num1)
            cout <<num2<<" é maior que "<<num1<<endl;
        else
            cout << "São iguais"<<endl;
    return 0;
}

Exercícios de Testes Condicionais em C++

Pessoal, encerramos mais uma vez uma seção de nosso curso de C++.
Parabéns se chegou aqui. Agora vamos praticar nossos conhecimentos fazendo alguns exercícios.

E lembrem-se: tentem bastante, mas muito, muito mesmo.
Não de? Pensa mais um pouco. Depois mais, dá uma volta, esfria a cabeça, e tentem de novo.

Resolver problemas é sinônimo de ser programador, portanto tente resolver os exercícios abaixo, usando seus conhecimentos básicos de C++ e de testes condicionais.

Problemas de testes condicionais em C++

01. Faça um programa que peça dois números, e diga qual é maior ou se são iguais.
Como comparar dois números

02. Faça um programa que diz se um número recebido é positivo ou negativo.
Código na apostila

03. Faça um programa que pede dois inteiro e armazene em duas variáveis. Em seguida, troque o valor das variáveis e exiba na tela
Como trocar o valor de duas variáveis

04. Faça um programa que peça 3 números e os coloque em ordem crescente.

05. Faça um programa que peça 3 números e os coloque em ordem decrescente.
3 números em ordem crescente e decrescente

06. Programe um software que recebe as coordenadas X e Y do usuário, e diga em qual quadrante o ponto está.

07. Faça um programa de calculadora simples, que pede dois números ao usuário, em seguida exibe um menu onde ele vai escolher que operação será realizada. A operação e a saída devem estar em um switch case.

08. Usando os conceitos de switch case, faça um programa que pergunte o mês ao usuário (número de 1 até 12), e diga quantos dias aquele mês possui. Fevereiro tem 28 dias (não é bissexto).
Quantos dias o mês tem

09. Usando os conceitos de switch case, faça um programa que pergunte o mês ao usuário (número de 1 até 12), e diga quantos dias aquele mês possui, incluindo se é ano bissexto ou não.
Código na apostila

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++

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 raizes 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;


PS: Inclua a biblioteca cmath (#include <cmath>) e use a função sqrt(x) para calcular a raiz de x.

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

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