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

Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesCódigo-Fonte Controle 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
Você está aqui: C++ ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Como usar a busca binária em C++ - Pesquisa binária na linguagem C++

Quantidade de visualizações: 889 vezes
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados.

O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado).

Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade.

Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas.

Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2.

Vamos agora ver como podemos codificar a busca binária em C++. Veja o código a seguir:

Este código completo faz parte do nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.
Domine lógica de programação e várias linguagens de programação com o nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.

Torne-se um(a) expert em Java, Portugol, VisuAlg, Python, PHP, JavaScript, Delphi, C, C++, C#, VB.NET, LISP, Ruby, e muito mais. São mais de 15.000 páginas com conteúdo exclusivo para você estudar onde e quando quiser.
Me Fala Mais


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

Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
Informe o número a ser pesquisado: 9
O número foi encontrado no índice 4

Link para compartilhar na Internet ou com seus amigos:

C++ ::: C++ para Engenharia ::: Física - Mecânica

Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em C++

Quantidade de visualizações: 325 vezes
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados.

A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é:

\[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \]

Onde:

Epg ? energia potencial gravitacional (em joule, J).

m ? massa do corpo (em kg).

g ? aceleração da gravidade (m/s2).

h ? altura do objeto em relação ao chão (em metros).

Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula.

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo?

Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C++ completo para o cálculo:

Este código completo faz parte do nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.
Domine lógica de programação e várias linguagens de programação com o nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.

Torne-se um(a) expert em Java, Portugol, VisuAlg, Python, PHP, JavaScript, Delphi, C, C++, C#, VB.NET, LISP, Ruby, e muito mais. São mais de 15.000 páginas com conteúdo exclusivo para você estudar onde e quando quiser.
Me Fala Mais


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

A Energia Potencial Gravitacional é: 29.419950J


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de C++ - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausente

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

Dado o vetor:

int valores[] = {1, 8, 7, 2, 6, 5, 3};


Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos.

Sua saída deverá ser parecida com:

O número ausente é: 4
Resposta/Solução:

Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício.

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

Este código completo faz parte do nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.
Domine lógica de programação e várias linguagens de programação com o nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.

Torne-se um(a) expert em Java, Portugol, VisuAlg, Python, PHP, JavaScript, Delphi, C, C++, C#, VB.NET, LISP, Ruby, e muito mais. São mais de 15.000 páginas com conteúdo exclusivo para você estudar onde e quando quiser.
Me Fala Mais



C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios

C++ Windows API - Como ler o conteúdo de um arquivo usando a função ReadFile() da Win32 API

Quantidade de visualizações: 8855 vezes
A função ReadFile() é usada quando queremos ler o conteúdo de um arquivo. A leitura se inicia na posição zero do arquivo e mantém um ponteiro de arquivo, a partir do qual as leituras subsequentes ocorrerão. Esta função pode ser usada para leituras síncronas e assíncronas. Para leituras apenas assíncronas devemos usar ReadFileEx().

Veja seu protótipo na documentação da API do Windows:

Este código completo faz parte do nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.
Domine lógica de programação e várias linguagens de programação com o nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.

Torne-se um(a) expert em Java, Portugol, VisuAlg, Python, PHP, JavaScript, Delphi, C, C++, C#, VB.NET, LISP, Ruby, e muito mais. São mais de 15.000 páginas com conteúdo exclusivo para você estudar onde e quando quiser.
Me Fala Mais


Antes de vermos um exemplo de como usar a função ReadFile(), vamos dar uma olhada em seus parâmetros:

a) HANDLE hFile - Este é o handle para o arquivo a partir do qual queremos ler. Tal handle deve ser criado com o direito de acesso GENERIC_READ.

b) LPVOID lpBuffer - Um ponteiro para o buffer que receberá os dados lidos do arquivo.

c) DWORD nNumberOfBytesToRead - O número máximo de bytes a serem lidos de cada vez. Geralmente este número está relacionado à quantidade de bytes dos elementos do buffer.

d) LPDWORD lpNumberOfBytesRead - Um ponteiro para uma variável que receberá o número de bytes lidos. A função ReadFile() define o valor desta variável como 0 antes de cada leitura e verificação de erros.

e) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro.

A função ReadFile() retorna quando um erro ocorre ou a quantidade de bytes solicitados é alcançada.

Veja um trecho de código no qual lemos o conteúdo de um arquivo chamado testes.txt:

Este código completo faz parte do nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.
Domine lógica de programação e várias linguagens de programação com o nosso Super Pack Aprenda a Programar - 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos.

Torne-se um(a) expert em Java, Portugol, VisuAlg, Python, PHP, JavaScript, Delphi, C, C++, C#, VB.NET, LISP, Ruby, e muito mais. São mais de 15.000 páginas com conteúdo exclusivo para você estudar onde e quando quiser.
Me Fala Mais



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á 42 usuários muito felizes estudando em nosso site.