Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do - Desafio de Programação Resolvido em C++

Quantidade de visualizações: 373 vezes
Pergunta/Tarefa:

Escreva um programa C++ que cria um vetor de 5 posições de inteiros. Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do elemento anterior.

Assim, se o usuário informar o valor 3 para o primeiro elemento, o valor do segundo elemento será 6, o valor do terceiro elemento será 12, e assim por diante.

Sua saída deverá ser parecida com:

Informe o valor do primeiro elemento: 5

Os elementos do vetor são:

5  10  20  40  80
Resposta/Solução:

Veja a resolução comentada deste exercício em C++:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // vamos declarar e construir um vetor de inteiros
  // de 5 elementos
  int valores[5];
  	  
  // agora vamos pedir para o usuário informar o
  // valor do primeiro elemento
  cout << "Informe o valor do primeiro elemento: ";
  cin >> valores[0];
    
  // agora vamos gerar os valores dos próximos elementos
  for(int i = 1; i < 5; i++){
    // recebe o elemento anterior multiplicado por 2
    valores[i] = valores[i - 1] * 2;
  }
    
  // e agora mostramos o vetor gerado
  cout << "\nOs elementos do vetor são:\n\n";
  for(int i = 0; i < 5; i++){
    cout << valores[i] << "   ";
  }
  
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Win32 API (Windows API) ::: Edit Control

Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do Windows

Quantidade de visualizações: 10193 vezes
O processo de definir a cor de fundo para um Edit Control em tempo de execução usando apenas C++ e a API do Windows é um pouco complicado. A técnica apresentada aqui pode não ser a mais eficiente, mas funciona mesmo (testado como VC++ 2005 e Windows XP). Note que estarei usando as funções CreateSolidBrush(), GetDlgCtrlID(), SetBkMode() e SetBkColor() da WinAPI.

1 - Comece adicionando as linhas na parte de variáveis globais de sua aplicação:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

HBRUSH hbrushEditBox = CreateSolidBrush(RGB(255, 255, 255));
HDC hdcEdit;
int id_edit_control;
HWND edit_window;


2 - Modifique ou adicione um case para a mensagem WM_CTLCOLOREDIT da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

case WM_CTLCOLOREDIT:
  hdcEdit = (HDC)wParam;
  edit_window = HWND(lParam);   
  id_edit_control = GetDlgCtrlID(edit_window);
		
  if(id_edit_control == IDC_EDIT1){
    SetBkMode(hdcEdit, TRANSPARENT);
    SetBkColor(hdcEdit,(LONG)hbrushEditBox);
    return (LONG)hbrushEditBox;
  }
	  
  return (LRESULT)CreateSolidBrush(RGB(255, 255, 255));

3 - A cor de fundo do Edit Control com ID IDC_EDIT1 será modificada para vermelho quando clicarmos no botão com o ID IDC_BUTTON1. Veja o case para este botão (dentro do case WM_COMMAND):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

case IDC_BUTTON1: // ID do botão
 
  // Define uma nova cor de fundo para o Edit Control
  // com o ID IDC_EDIT1
  
  // Vermelho como cor de fundo
  hbrushEditBox = CreateSolidBrush(RGB(255, 0, 0));

  // Atualiza o Edit Control
  InvalidateRect(GetDlgItem(hwnd, IDC_EDIT1), 0, TRUE);
  
  break;



C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o operador condicional (operador ternário) da linguagem C++ - C++ para iniciantes

Quantidade de visualizações: 26902 vezes
A linguagem C++ fornece um operador condicional, também chamado de operador ternário) que é muito semelhante a um bloco if...else. Este operador aceita três operandos. O primeiro operando é uma condição, o segundo é valor para a expressão condicional se o resultado do teste for true. O terceiro operando é o valor para a expressão condicional caso o resultado do teste for false. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

int valor = 10;

cout << (valor >= 5 ? "Maior ou igual a 5" : "Menor que 5");

Este trecho de código pode ser escrito usando if...else da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

int valor = 10;

if(valor >= 5)
  cout << "Maior ou igual a 5";
else
  cout << "Menor que 5";

O operador condicional pode ser resumido na seguinte estrutura:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Exp1 ? Exp2 : Exp3

A expressão Exp1 é avaliada. Se esta resultar verdadeira, a expressão Exp2 se torna o resultado da operação. Se a expressão Exp1 resultar falso, a expressão Exp3 se torna o resultado da operação. Veja mais um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

int valor = 5;
	
// usando o operador condicional I
bool res = (valor > 10 ? true : false);

// usando o operador condicional II
(res ? cout << "Verdadeiro" : cout << "False");



C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++

Quantidade de visualizações: 14637 vezes
Como já vimos em outras dicas desta seção, uma classe C++ possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// definição da classe Produto
class Produto{
  public:
    void setNome(string);
    string getNome();
    void setPreco(double);
    double getPreco();
  
  private:
    string nome;
    double preco;
};

Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância.

Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma.

Métodos estáticos em C++ podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

// classe Pessoa com duas variáveis privadas e 
// um método estático
class Pessoa{
  public:  
    // um método estático que permite verificar a validade
    // de um número de CPF
    static bool isCPFValido(string);
  
  private:
    string nome;
    int idade;
};

// implementação da classe Pessoa
bool Pessoa::isCPFValido(string cpf){
  // alguns cálculos aqui
  return true;
}

int main(int argc, char *argv[]){
  // vamos efetuar uma chamada ao método isCPFValido() sem
  // criar uma instância da classe Pessoa
  if(Pessoa::isCPFValido("12345")){
    cout << "CPF Válido" << endl;
  }
  else{
    cout << "CPF inVálido" << endl;
  }
    
  system("PAUSE");
  return EXIT_SUCCESS;
}

Aqui nós temos os códigos da definição e implementação da classe Pessoa em apenas um arquivo (main.cpp). Em uma aplicação real é interessante colocar estas partes em arquivos separados (.h e .cpp). Note que o método estático isCPFValido() foi declarado assim:

static bool isCPFValido(string);

Desta forma, podemos chamá-la a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja:

if(Pessoa::isCPFValido("12345")){}

É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

bool Pessoa::isCPFValido(string cpf){
  // alguns cálculos aqui
  
  // vamos acessar a variável não estática nome
  nome = "Osmar J. Silva";
  
  return true;
}

vai gerar o seguinte erro de compilação:

invalid use of member `Pessoa::nome' in static member function.

Se usarmos this->nome a mensagem de erro de compilação será:

`this' is unavailable for static member functions.

Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias.


Desafios, Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 30 usuários muito felizes estudando em nosso site.