Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: 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: 15314 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 com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#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...

Link para compartilhar na Internet ou com seus amigos:

C++ ::: Win32 API (Windows API) ::: Strings e Caracteres

Como converter caracteres individuais para letras maiúsculas usando a função CharUpper() da API do Windows a partir de seus códigos C++

Quantidade de visualizações: 9476 vezes
Pode usar a função CharUpper() da API do Windows para converter um caractere para seu correspondente em letra maiúscula. Veja o protótipo da função:

LPTSTR CharUpper(
  LPTSTR lpsz
);


Veja um exemplo no qual usamos esta função para converter uma letra minúscula em maiúscula:

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

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  CHAR letra = 'a';
  
  // vamos converter para letra maiúscula
  CharUpper(&letra);
  
  // vamos exibir o resultado
  cout << letra << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}

Note que aqui nós fornecemos um ponteiro para o caractere que queremos transformar. Isso resulta em uma conversão sendo efetuada diretamente no caractere para o qual o ponteiro está apontando no momento. Podemos também obter o resultado da conversão em um outro ponteiro e usá-lo posteriormente. Veja:

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

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  CHAR letra = 'a';
  
  // vamos converter para letra maiúscula
  CHAR *resultado = CharUpper(&letra);
  
  // vamos exibir o resultado
  cout << *resultado << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



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

Como excluir todos os elementos de um vector C++ usando a função clear()

Quantidade de visualizações: 17592 vezes
Em algumas situações precisamos remover todos os elementos de um vector. Para isso podemos usar a função clear(). Esta função não requer nenhum argumento e possui retorno void. À medida que os elementos vão sendo removidos, seus destrutores são chamados (no caso de os elementos no vector serem referências e não tipos primitivos).

Veja o código C++ completo para o exemplo:

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

#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 obter a quantidade de elementos no vector
  cout << "Quantidade de elementos: " << valores.size() << endl;

  // vamos remover todos os elementos, ou seja, limpar o vector
  valores.clear();

  // vamos obter a quantidade de elementos no vector novamente
  cout << "Quantidade de elementos: " << valores.size() << endl;

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

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

Quantidade de elementos: 3
Quantidade de elementos: 0


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

Como criar diretórios em C++ usando a função mkdir()

Quantidade de visualizações: 10283 vezes
Em algumas situações nossos códigos C++ precisam criar diretórios. Isso pode ser feito com o auxílio da função mkdir(), disponível no header direct.h (trazido da linguagem C). Veja a assinatura desta função:

int _mkdir(const char *pathname);
Se o diretório for criado 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 EACCES (diretório não criado; nome informado já existe) ou ENOENT (caminho não encontrado).

Veja um trecho de código C++ no qual criamos um diretório no mesmo diretório do executável.

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

#include <iostream>
#include <direct.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos criar o diretório
  char diretorio[] = "estudos";

  // vamos testar se houve erro na criação do diretório
  if(mkdir(diretorio) == -1){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório criado com sucesso" << endl;
  }

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

É possível usar a versão Unicode de mkdir(), ou _mkdir(). O método _wmkdir(), também presente em direct.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:

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

#include <iostream>
#include <direct.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos criar o diretório
  wchar_t diretorio[] = L"C:\\Dev-Cpp\\estudos";

  // vamos testar se houve erro na criação do diretório
  if(_wmkdir(diretorio) == -1){
    cout << "Erro: " << strerror(errno) << endl;
  }
  else{
    cout << "Diretório criado com sucesso" << endl;
  }

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

Note que agora eu troquei o tipo char por wchar_t e usei o sinalizado L antes da atribuição da string.


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

Ética Empresarial e Profissional: Noções Gerais

Para Cortella (2007), a ética é um grupo de princípios e valores que usamos para optar entre três situações significativas da nossa existência. Elas estão presentes em nosso cotidiano e, por essa razão, é necessário estar preparado para efetuar a escolha da melhor forma possível. Assinale a alternativa que contém as três grandes situações que nos afligem e requerem decisão.

A) Quero; devo; é verdadeiro.

B) É falso; posso; quero.

C) Quero; devo; posso.

D) Posso; moral; certeza.

E) Posso; devo; religiosidade.
Verificar Resposta Estudar Cards Todas as Questões

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

Princípios específicos do Direito do Consumidor

(Juiz do Trabalho - RJ - 2015). Sob a visão clássica, cinco são os princípios que regem o direito contratual. A relação de consumo é ajustada por contrato e aqueles princípios também a ela se aplicam. Contudo, em face da natureza da relação de consumo, alguns desses princípios têm seu valor reduzido, enquanto outros assumem relevância. Tem relevância para a relação de consumo, o seguinte princípio do direito contratual:

A) Da ordem pública.

B) Da relatividade dos contratos.

C) Da boa-fé.

D) De obediência às regras mercantis.

E) Da autonomia da vontade.
Verificar Resposta Estudar Cards Todas as Questões

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

Noções de licitação pública

Tipo de licitação é a forma como se dará o julgamento das propostas e a escolha do vencedor.

Em relação aos tipos e às modalidades da licitação pública, leia com atenção a afirmativa a seguir:

O _________ será sempre pelo tipo ____________; o __________ será sempre pelo tipo _____________; o _____________ não será por nenhum tipo; já as demais modalidades podem ser por qualquer tipo, sendo a regra o menor preço.

Marque a alternativa que preenche as lacunas de forma correta.

A) leilão - menor preço - pregão - maior lance ou oferta - concorrência.

B) pregão - menor preço - leilão - maior lance ou oferta - concurso.

C) concurso - melhor técnica - leilão - técnica e preço - convite.

D) pregão - técnica e preço - leilão - maior lance ou oferta - concurso.

E) concurso - menor preço - leilão maior lance ou oferta - convite.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

estados = {"SP": "SÃO PAULO", "GO": "GOIÁS",
  "RJ": "RIO DE JANEIRO", "MG": "MINAS GERAIS"}
print("GO" in estados)

A) "GO"

B) True

C) False

D) "SP", "GO", "RJ", "MG"

E) "GOIÁS"
Verificar Resposta Estudar Cards Todas as Questões

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

Responsabilidade civil no código de defesa do consumidor

Um consumidor contrata um eletricista para consertar falhas na instalação elétrica de sua casa. Depois de alguns dias de trabalho e o serviço finalizado, o consumidor percebe que o problema não foi solucionado. Nessa situação, podemos perceber que:

A) está presente o fato do serviço ou defeito.

B) está presente o fato do serviço, mas também há vício do serviço.

C) ocorreu vício do serviço.

D) há vício do produto.

E) ocorreu fato do produto ou defeito.
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

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



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