Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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

Algoritmos Resolvidos de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz - Desafio de Programação Resolvido em C++

Quantidade de visualizações: 14196 vezes
Exercício Resolvido de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz

Pergunta/Tarefa:

Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
  int matriz[3][3]; // uma matriz de três linhas e três colunas
  int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal

  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < 3; i++){ // linhas
    for(int j = 0; j < 3; j++){ // colunas
      cout << "Valor para a linha " << i << " e coluna " << j << ": ";
      cin >> matriz[i][j];       
    }       
  }
  
  // vamos mostrar a matriz da forma que ela foi informada
  cout << "\n\nValores na matriz\n" << endl;
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      cout << setw(5) << matriz[i][j];   
    }
    
    cout << "\n" << endl;       
  }
  
  // vamos calcular a soma dos elementos da diagonal principal
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
  
  cout << "A soma dos elementos da diagonal principal e: " << 
    soma_diagonal << endl;
  cout << "\n" << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Dicas & Truques ::: Arquivos e Diretórios

Como renomear um diretório em C++ usando a função rename()

Quantidade de visualizações: 8268 vezes
Em algumas situações nossos códigos C++ precisam renomear diretórios. Isso pode ser feito com o auxílio da função rename() ou _rename(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:

int rename(const char *oldname, const char *newname);


Se o diretório for renomeado com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores:

a) EINVAL - Invalid argument - Os nomes dos diretórios contém caracteres inválidos;

b) ENOENT - No such file or directory - O caminho do diretório é inválido;

c) EACCESS - Acesso negado - Algum outro programa está usando este diretório e mantém controle sobre o mesmo.

Veja um trecho de código no qual renomeamos um diretório:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // vamos renomear este diretório
  char dir_antigo[] = "C:\\Dev-Cpp\\estudos";
  char dir_novo[] = "C:\\Dev-Cpp\\estudos2";

  // vamos testar se o diretório for renomeado com sucesso
  if(rename(dir_antigo, dir_novo) != 0){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório renomeado com sucesso" << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

É possível usar a versão Unicode de rename() ou _rename(). O método _wrename, também presente em io.h or stdio.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // vamos renomear este diretório
  wchar_t dir_antigo[] = L"C:\\Dev-Cpp\\estudos";
  wchar_t dir_novo[] = L"C:\\Dev-Cpp\\estudos2";

  // vamos testar se o diretório for renomeado com sucesso
  if(_wrename(dir_antigo, dir_novo) != 0){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório renomeado com sucesso" << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Diretório renomeado com sucesso


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

C++ para iniciantes - Como usar o laço for em C++

Quantidade de visualizações: 22887 vezes
O laço for é usado quando queremos executar um bloco de códigos um determinado número de vezes. Este laço é composto de três partes:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

for(início; condição; incremento/decremento){
  bloco de instruções
} 

A parte início é executada uma única vez (na entrada do laço). Geralmente é nesta parte que declaramos e inicializamos a variável de controle. Na parte condição nós testamos a condição atual da variável de controle, para verificar se o laço pode continuar sua execução. Na parte do incremento/decremento nós alteramos o valor da variável de controle. Finalmente o bloco de instruções representa as instruções que serão executadas no laço.

Veja um exemplo de laço for no qual exibimos os números de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço for que conta de 0 a 10
  for(int i = 0; i <= 10; i++){
    cout << i << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Veja agora um laço for usado para exibir os números de 10 a 0:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço for que conta de 10 a 0
  for(int i = 10; i >= 0; i--){
    cout << i << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

É importante observar que mais de uma expressão podem ser executadas nas partes início e incremento/decremento de um laço for. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  // um laço for que conta de 10 a 0
  for(int i = 0, x = 4; i <= 10; i++, x += 2){
    cout << (i * x) << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



C++ ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados long ou long int da linguagem C++

Quantidade de visualizações: 22447 vezes
O tipo de dados long (também chamado de long int) da linguagem C++ é uma variação do tipo int e geralmente possui a mesma capacidade de armazenamento deste. Nós o usamos quando queremos representar números inteiros, ou seja, sem partes fracionárias, assim como int. É importante verificar se o seu compilador trata int e long da mesma forma. Veja um trecho de código demonstrando o uso deste tipo (note que estes estudos foram feitos no Windows XP - 32 bits - usando Dev-C++):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // declara uma variável do tipo long
  long quant = 590;

  cout << "Quantidade: " << quant << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Veja que a maioria dos compiladores C++ não faz distinção entre os tipos long e long int. A capacidade de armazenamento do tipo long depende da arquitetura na qual o programa está sendo executado. Uma forma muito comum de descobrir esta capacidade é usar os símbolos LONG_MIN e LONG_MAX, definidos no header climits (limits.h). Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Valor mínimo: " << LONG_MIN << "\n";
  cout << "Valor máximo: " << LONG_MAX << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este programa você terá um resultado parecido com:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

Valor mínimo: -2147483648
Valor máximo: 2147483647

Veja que o tipo long aceita valores positivos e negativos. Tudo que você tem a fazer é tomar todo o cuidado para que os valores atribuidos a variáveis deste tipo não ultrapassem a faixa permitida. Veja um trecho de código que provoca o que chamamos de transbordamento (overflow):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  long soma = LONG_MAX + 2;

  cout << "Resultado: " << soma << "\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Este programa exibirá o seguinte resultado:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

Resultado: -2147483647

Note que este não é o resultado esperado, visto que LONG_MAX + 2 deveria retornar:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

2147483647 + 2 = 2147483649

Porém, como o valor máximo que pode ser armazenado em um long é 2147483647, o procedimento adotado pelo compilador foi tornar o número negativo e subtrair 1. É claro que, se você testar este código em arquiteturas diferentes o resultado poderá ser diferente do exemplificado aqui.

Em termos de bytes, é comum o tipo long ser armazenado em 4 bytes, o que resulta em 32 bits (um byte é formado por 8 bits, lembra?). Veja um trecho de código que mostra como usar o operador sizeof() para determinar a quantidade de bytes necessários para armazenar um variável do tipo long:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Tamanho de um long: " << sizeof(long)
    << " bytes\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

O resultado da execução deste código será algo como:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

Tamanho de um long: 4 bytes



C++ ::: STL (Standard Template Library) ::: Vector C++

Como usar a classe/contêiner vector da STL em seus programas C++

Quantidade de visualizações: 8948 vezes
O vetor, ou vector, é uma das classes contêineres mais simples da STL - Standard Template Library do C++. Um vector se comporta como um vetor, ou seja, uma matriz de uma linha e várias colunas, ou seja, seus elementos estão dispostos em posições contiguas na memória. O que diferencia um vector de um array comum é que o tamanho de um vector pode ser modificado dinamicamente.

A especificação do template da classe vector é:

template <class T, class Allocator = allocator<T>> class vector


Aqui T é o tipo de dados sendo armazenado (já ouvir falar em genéricos, não?) e Allocator define o modelo de alocação de armazenagem. Por padrão, o template da classe allocator para o tipo T é usado, o que define o modelo de alocação de memória mais simples e independente de valores.

Objetos da classe vector são úteis nas seguintes situações:

a) Acessar os elementos individualmente usando seus índices (tempo constante);
b) Percorrer os elementos em qualquer ordem (tempo linear);
b) Adicionar ou remover elementos no final do contêiner (tempo constante amortizado).

Para usarmos um vector em nossos programas C++ temos que incluir este contêiner da seguinte forma:

#include <vector>


Veja um trecho de código no qual criamos um vector, inserimos três inteiros e finalmente usamos um iterador para percorrer os elementos e imprimir seus valores:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos percorrer o vector e exibir os elementos
  vector<int>::iterator it;
  for(it = valores.begin(); it < valores.end(); it++){
    cout << *it << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executarmos este código C++ nós teremos o seguinte resultado:

54
13
87


C++ ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em C++ - Como efetuar cálculos de porcentagem em C++

Quantidade de visualizações: 40164 vezes
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em C++.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Algoritmo que calcula porcentagem em C++
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  double valor, percentual, valor_final;

  valor = 178.00; // valor original
  percentual = 15.0 / 100.0; // 15%
  valor_final = valor + (percentual * valor);

  // mostra o resultado
  cout << "O valor final do produto é: " << valor_final;

  // O resultado será 204,70
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Algoritmo que calcula porcentagem em C++
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  double valor, percentual, valor_final;

  valor = 250.00; // valor original
  percentual = 8.0 / 100.0; // 8%
  valor_final = valor - (percentual * valor);

  // mostra o resultado
  cout << "O valor final do produto é: " << valor_final;
  
  // O resultado será 230,00
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Algoritmo que calcula porcentagem em C++
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  double perguntas, acertos;

  perguntas = 90.0;
  acertos = 72.0;

  // mostra a porcentagem de acertos
  cout << "Porcentagem de acertos: " << ((acertos / perguntas) * 100) << "%";

  // mostra a porcentagem de erros
  cout << "\nPorcentagem de erros: " << ((perguntas - acertos) / perguntas) 
    * 100 << "%";

  // Os resultados serão 80% e 20%
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Algoritmo que calcula porcentagem em C++
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  double valor_anterior, novo_valor, porcentagem_lucro;

  valor_anterior = 300.0; // valor anterior
  novo_valor = 340.0; // valor novo

  // calcula a porcentagem de lucro
  // efetua o cálculo
  porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100;

  cout << "A porcentagem de lucro foi de: " << porcentagem_lucro << "%";

  // O resultado será 13,33
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// Algoritmo que calcula porcentagem em C++
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  double valor, percentual, comissao;

  valor = 70.0; // valor do produto
  percentual = 5.0 / 100.0; // 5%

  // calcula a comissão
  comissao = percentual * valor;

  // mostra o resultado
  cout << "O valor repassado ao vendedor é: " << comissao;

  // O resultado será 3,5
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



C++ ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em C++ - C++ para matemática

Quantidade de visualizações: 37175 vezes
Como calcular MDC em C++

Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

O trecho de código abaixo mostra como calcular o MDC de dois números informados:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int MDC(int a, int b){
  int resto;

  while(b != 0){
    resto = a % b;
    a = b;
    b = resto;
  }

  return a;
}

int main(int argc, char *argv[]){
   int x, y;

   cout << "Este programa permite calcular o MDC\n";
   cout << "Informe o primeiro valor: ";
   cin >> x;
   cout << "Informe o segundo valor: ";
   cin >> y;

   cout << "\nO Máximo Divisor Comum de "
     << x << " e " << y << " é " << MDC(x, y) << endl;

   system("PAUSE");
   return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Este programa permite calcular o MDC
Informe o primeiro número: 12
Informe o segundo número: 9
O Máximo Divisor Comum de 12 e 9 é 3


C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar os elementos de vetor C++ usando a Ordenação da Bolha (Bubble Sort) - Revisado

Quantidade de visualizações: 15486 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenando os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição do vetor (array), tal qual bolhas indo para a superfície. Veja um exemplo completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
 
using namespace std;
 
void bubble_sort(int matriz[], int tam){
  int temp, i, j;
 
  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}
 
int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int const quant_elem = 9;
 
  // imprime a matriz sem a ordenação
  for(int i = 0; i < quant_elem; i++){
    cout << valores[i] << "  ";
  }
 
  // vamos ordenar a matriz
  bubble_sort(valores, quant_elem);
 
  // imprime a matriz ordenada
  cout << endl;
  for(int i = 0; i < 9; i++){
    cout << valores[i] << "  ";
  }
 
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executarmos este código nós teremos o seguinte resultado:

4 6 2 8 1 9 3 0 11
0 1 2 3 4 6 8 9 11

Pressione qualquer tecla para continuar...


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

Como usar o laço do...while da linguagem C++ - Apostila C++ para iniciantes

Quantidade de visualizações: 24585 vezes
O laço do..while é usado quando queremos executar um bloco de códigos repetidamente ENQUANTO uma condição for satisfeita. Porém, ao contrário do laço while, o laço do..while é sempre executado no mínimo uma vez, visto que a condição é testada antes da segunda interação, ou seja, o teste só ocorre no final da interação atual. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

do{
  bloco de instruções
}while(condição);

Veja um exemplo de um laço do..while que conta de 10 à 0:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço do..while que conta de
  // 10 até 0
  int valor = 10;

  do{
    cout << valor << "\n";
    valor--;
  }while(valor >= 0);

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



Vamos testar seus conhecimentos em Ética e Legislação Profissional

Postura ética profissional

Os princípios éticos que norteiam a prática profissional dos engenheiros não são definidos por uma única entidade ou indivíduo específico. Há diferentes fontes e organizações que estabelecem a conduta ética a ser seguida por esses profissionais.

Assinale a alternativa que melhor apresenta essas fontes e organizações, segundo Cocian (2016):

A) Organizações profissionais, legislação e regulamentações, instituições de ensino, experiência profissional.

B) A Associação Mundial de Engenheiros, o Conselho de Ética, a Sociedade Internacional de Engenheiros e a Federação Internacional de Engenharia (FIE).

C) Os códigos de ética redigidos pelas empresas Apple, Microsoft, Google e Amazon.

D) As diretrizes éticas de partidos políticos, organizações ambientais, grupos de consumidores e clubes esportivos.

E) Os princípios éticos estabelecidos por escritores famosos, celebridades, filósofos antigos e artistas renomados.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Sistema domiciliar de abastecimento de água

Instalações hidrossanitárias compreendem subsistemas de uma edificação para a correta captação, transporte e armazenagem de fluidos. Para o perfeito funcionamento dessas instalações, conhecer seus principais componentes é fundamental.

Dessa forma, conforme a NBR 5626:2020, qual das opções a seguir está correta?

A) Cavalete: conjunto padronizado de tubulações e conexões destinado à instalação do hidrômetro, situado no ramal predial.

B) Extravasor: é caracterizado pela tubulação derivada do barrilete e destinado a alimentar os reservatórios.

C) Alimentador predial: tubulação que se origina no reservatório e do qual derivam as colunas de distribuição se o tipo de abastecimento for indireto.

D) Fonte de abastecimento: reservatório localizado na parte mais elevada de uma residência, destinada ao seu abastecimento direto.

E) Instalação elevatória: sistema destinado a fornecer água para o sistema. Pode ser a rede pública da concessionária ou qualquer sistema particular de fornecimento de água.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Equação da Continuidade

Uma tubulação vertical de 200mm de diâmetro apresenta, em um pequeno trecho, uma seção contraída de 100mm, onde a pressão é de 1 atm. A 4 metros acima desse ponto, a pressão eleva-se para 18mca. Calcular a velocidade e a vazão no trecho de diâmetro 200mm. Considerar escoamento permanente e sem perda de energia.



A) V = 3,91m/s e Q = 0,12m3/s.

B) V = 15,64m/s e Q =0,12m3/s.

C) V = 3,91m/s e Q = 0,03m3/s.

D) V = 15,64m/s e Q = 0,49m3/s.

E) V = 2,29m/s e Q = 0,07m3/s.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações

Ano: 2019 Banca: IBADE Órgão: Prefeitura de Jaru - RO Prova: IBADE - 2019 - Prefeitura de Jaru - RO - Engenheiro Civil

Uma sondagem foi realizada segundo a norma ABNT NBR 6484:2001 (Solo - Sondagens de simples reconhecimento com SPT - Método de ensaio). Após a execução das 3 etapas previstas no ensaio, o seguinte resultado foi apresentado:

8/16 - 10/14 - 13/16

O índice de resistência à penetração (N) é:

A) 18

B) 23

C) 31

D) 46

E) 54
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Um arquivo JavaScript externo precisa, obrigatoriamente, conter a tag <script>

A) Verdadeiro

B) Falso
Verificar Resposta Estudar Cards Todas as Questões

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

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
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á 21 usuários muito felizes estudando em nosso site.