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 ::: C++ Básico

Algoritmo C++ para ler um número inteiro e exibir o dobro e o triplo do número informado - Desafio de Programação Resolvido em C++

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

Faça um algoritmo C++ que pede para o usuário digitar um número inteiro e obtenha como resultado o dobro e o triplo do número digitado.

Sua saída deve ser parecida com:

Informe um número inteiro: 7
Você informou o número: 7
O dobro do número é: 14
O triplo do número é: 21
Resposta/Solução:

Veja a resolução comentada deste exercício usando 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;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int numero, dobro, triplo;
    
  // vamos pedir para o usuário informar o número inteiro
  cout << "Informe um número inteiro: ";
  cin >> numero;
  cout << "Você informou o número: " << numero << endl;
    
  // vamos calcular o dobro
  dobro = numero * 2;
  cout << "O dobro do número é: " << dobro << endl;
    
  // vamos calcular o triplo
  triplo = numero * 3;
  cout << "O triplo do número é: " << triplo << endl;
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Programação MIDI usando C++ - Como usar um vetor de chars para construir uma mensagem MIDI e passá-lo para a função midiOutShortMsg() da API do Windows

Quantidade de visualizações: 2277 vezes
Nas dicas dessa seção nós vimos como é possível enviar uma mensagem MIDI para o dispositivo de saída por meio da função midiOutShortMsg() da API do Windows. Essa função recebe um handle para o dispositivo de saída MIDI e um valor DWORD contendo a mensagem MIDI.

Se você revisitar essas dicas, verá que na maioria delas nós informamos a mensagem MIDI diretamente no parâmetro da função (como um valor hexadecimal). Nesta dica mostrarei como é possível construir as mensagens MIDI usando seus valores individuais e, o que é melhor, usando valores decimais.

Para isso nós vamos construir um vetor de char e informar os valores que compõem a mensagem. É importante observar que a função midiOutShortMsg() exige que a mensagem MIDI seja informada na ordem de bytes "little endian" ou seja, o status MIDI é informado no byte de ordem mais baixa. Isso é conseguido com um cast do vetor para um unsigned long.

Veja o trecho de código:

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

// vamos criar um vetor contendo os valores que compõem a mensagem MIDI
unsigned char vetor[4];
vetor[0] = 144; // Note-on no Canal 1
vetor[1] = 40; // Nota Mi na 4ª oitava
vetor[2] = 100; // Velocidade/volume da nota
vetor[3] = 0; // Não é usado
// e aqui é que acontece a mágica. Quando fazemos o cast do
// vetor para o tipo long sem sinal, os valores são colocados em
// little endian, justamente a ordem de bytes esperada pela
// função midiOutShortMsg()
unsigned long mensagem = *(unsigned long*)vetor;
// envia a mensagem MIDI
midiOutShortMsg(saida, mensagem);

Note que não coloquei o código todo. Para completá-lo, veja outras dicas dessa seção.


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: 8866 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:

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

BOOL WINAPI ReadFile(
  HANDLE hFile,
  LPVOID lpBuffer,
  DWORD nNumberOfBytesToRead,
  LPDWORD lpNumberOfBytesRead,
  LPOVERLAPPED lpOverlapped
);

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:

----------------------------------------------------------------------
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 <windows.h>
#define TAM_BUFFER 256 // tamanho do buffer em bytes

using namespace std;

int main(int argc, char *argv[]){
  // nome do arquivo
  CHAR arquivo[] = "C:\\testes.txt";
  
  CHAR buffer[TAM_BUFFER]; // buffer para o conteúdo do arquivo
  DWORD nIn; // bytes lidos
  
  // vamos abrir o arquivo para leitura.
  // se o arquivo não existir uma mensagem de erro é exibida.
  HANDLE hArquivo = CreateFile(arquivo, GENERIC_READ, FILE_SHARE_READ, NULL,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if(hArquivo == INVALID_HANDLE_VALUE){
    cout << "Erro ao abrir o arquivo: " << GetLastError() << endl;    
  }
  else{
    // arquivo aberto com sucesso. Vamos ler
    while(ReadFile(hArquivo, buffer, TAM_BUFFER, &nIn, NULL) && nIn > 0){
      cout << "Efetuei a leitura de " << nIn << " bytes." << endl;             
      // vamos adicionar o caractere de final de linha
      // caso os bytes lidos não preencham todo o buffer
      buffer[nIn] = 0;
      cout << "Conteudo da leitura: " << buffer << endl;
    }   
  }
    
  // vamos fechar o handle
  CloseHandle(hArquivo);
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando C++ - Geometria Analítica e Álgebra Linear usando C++

Quantidade de visualizações: 2038 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

\[a^2 = b^2 + c^2\]

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código C++ que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

----------------------------------------------------------------------
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>
#include <math.h>
 
using namespace std;
  
int main(int argc, char *argv[]){
  float x, y, norma;
  // vamos ler os valores x e y
  cout << "Informe o valor de x: ";
  cin >> x;
  cout << "Informe o valor de y: ";
  cin >> y;
  
  // vamos calcular a norma do vetor
  norma = sqrt(pow(x, 2) + pow(y, 2));
    
  // mostra o resultado
  cout << "A norma do vetor é: " << norma; 
 
  cout << "\n\n";
  system("PAUSE");
  return 0;
}

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

Informe o valor de x: 7
Informe o valor de y: 6
A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


C++ ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular fatorial em C++ usando recursividade

Quantidade de visualizações: 9650 vezes
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma:

4 x 3 x 2 x 1 = 24

Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C++ que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.

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

// função recursiva para calcular o fatorial
// de um determinado número
int fatorial(int n){
  if(n == 0)
    return 1;
  else
    return n * fatorial(n - 1);
}

int main(int argc, char *argv[]){
  // vamos calcular o fatorial de 5
  int res = fatorial(5);

  // exibe o resultado
  cout << "O fatorial de 5 é: " << res << endl;

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



C++ ::: Desafios e Lista de Exercícios Resolvidos ::: STL Vector C++

Exercícios Resolvidos de C++ - Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direita

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

Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direita. Seu código deverá pedir para o usuário informar 10 valores inteiros, guardá-los em um vector e então calcular e exibir o resultado.

Sua saída deverá ser parecida com:

Informe o 1.o valor: 8
Informe o 2.o valor: 4
Informe o 3.o valor: 9
Informe o 4.o valor: 3
Informe o 5.o valor: 1
Informe o 6.o valor: 6
Informe o 7.o valor: 2
Informe o 8.o valor: 7
Informe o 9.o valor: 3
Informe o 10.o valor: 8

Conteúdo do vector: 8  4  9  3  1  6  2  7  3  8

Os elementos menores que seus vizinhos adjascentes são:

4  1  2  3
Resposta/Solução:

Veja a resolução comentada deste exercício usando 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 
----------------------------------------------------------------------

// vamos fazer os includes ncessários
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

// função para encontrar os elementos no vector que são menores
// que seus vizinhos adjacentes
vector<int> verificar(vector<int> valores) {
  // vamos inicializar um vector vazio para guardar os elementos
  // que passarem na condição
  vector<int> temp;
    
  // vamos percorrer o vector recebido como argumento
  for(int i = 1; i < valores.size() - 1; i++) {
    // o elemento atual é menor que o elemento anterior e posterior a ele?
    if(valores[i] < valores[i - 1] && valores[i] < valores[i + 1]) {
      // vamos adicionar no vector temporário
      temp.push_back(valores[i]);
    }
  }
    
  // retornamos o vector temporário
  return temp;
}
 
// função principal do programa
int main(int argc, char *argv[]) {
  // vamos criar o vector que guardará os valores informados
  // pelo usuário
  vector<int> numeros;
  int valor;

  // vamos ler 10 números inteiros
  for (int i = 0; i < 10; i++) {
    cout << "Informe o " << (i + 1) << ".o valor: ";
    cin >> valor;
    numeros.push_back(valor);
  }

  // vamos mostrar o conteúdo do vector original
  cout << "\nConteúdo do vector: ";
  for (int n: numeros) {
    cout << n << "  ";
  }
 
  // agora vamos testar os números que são menores que seus
  // vizinhos adjascentes
  vector<int> resultado = verificar(numeros);
  cout << "\n\nOs elementos menores que seus vizinhos adjascentes são:\n\n";   
  for (int n: resultado) {
    cout << n << "  ";
  }
 
  cout << "\n\n";
  return EXIT_SUCCESS;
}



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

Como obter o diretório atual usando a função GetCurrentDirectory() da API do Windows - C++ e WinAPI

Quantidade de visualizações: 9571 vezes
Nesta dica mostrarei como chamar, a partir de um programa C++, a função GetCurrentDirectory() da API do Windows com o propósito de obter o diretório atual, ou seja, o diretório de trabalho da nossa aplicação. Esta função é declarada no header winbase.h (que vem junto quando fazemos include do header windows.h).

Veja o 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 <cstdlib>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  // buffer que receberá o nome do diretório
  TCHAR szDirAtual[MAX_PATH];
 
  // chama a função GetCurrentDirectory
  GetCurrentDirectory(MAX_PATH, szDirAtual);
 
  // Exibe o resultado
  cout << "O diretório atual é " << szDirAtual << "\n\n";
 
  system("PAUSE");
  return EXIT_SUCCESS;
}

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

O diretório atual é C:\estudos_c++


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: 26951 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 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 
----------------------------------------------------------------------

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

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

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

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++ ::: Win32 API (Windows API) ::: Processos

Como usar a função EnumProcesses() da WinAPI em seus códigos C++ para obter os identificadores de cada processo ativo no Windows

Quantidade de visualizações: 8403 vezes
A função EnumProcesses() pode ser usada quando queremos obter os ids de todos os processos sendo executados no momento no Windows. Veja o protótipo desta função:

BOOL WINAPI EnumProcesses(
  DWORD* pProcessIds,
  DWORD cb,
  DWORD* pBytesReturned
);


Esta função possui três parâmetros:

a) DWORD* pProcessIds - Um ponteiro para uma matriz que receberá a lista de identificadores dos processos. É importante definir uma matriz um pouco grande, visto que não sabemos de antemão quantos processos serão retornados.

b) DWORD cb - O tamanho da matriz pProcessIds em bytes.

c) DWORD* pBytesReturned - O números de bytes retornados na matriz pProcessIds. Podemos facilmente saber quantos processos foram encontrados simplesmente dividindo o número de bytes retornados pela quantidade de bytes em um DWORD.

Veja um trecho de código no qual listamos os ids de todos os processos sendo executados atualmente.

----------------------------------------------------------------------
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 <windows.h>
#include <psapi.h>

/*
  Este exemplo usa o header <psapi.h>
  É necessário fazer uma referência à psapi.lib 
*/

using namespace std;

int main(int argc, char *argv[]){
  DWORD processos[1024]; // vamos listar até 1024 processos   
  DWORD pBytesReturned; // bytes retornados pela função EnumProcesses()
  
  // vamos listar os processos
  EnumProcesses(processos, sizeof(processos), &pBytesReturned);
  
  // quantidade de processos retornados
  int retornados = pBytesReturned / sizeof(DWORD);
  
  // agora vamos listar os ids dos processos retornados
  for(int i = 0; i < retornados; i++){
    if(!processos[i] == 0){
      cout << "Processo " << (i + 1) << ": " << processos[i] << endl;
    }          
  }
  
  system("PAUSE");
  return EXIT_SUCCESS;
} 

O id de um processo pode ser fornecido para muitas funções úteis do Windows, entre elas OpenProcess().

Veja um trecho de código no qual fechamos (forçadamente) um processo mediante o fornecimento de seu id:

----------------------------------------------------------------------
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 <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos fechar o processo com o id 3040
  
  // CUIDADO: Verifique o id do processo antes de fechá-lo
  // pode ser que você esteja fechando processos essenciais
  // para o bom funcionamento do Windows
  
  // vamos abrir o processo desejado
  // vai retornar ERROR_INVALID_HANDLE se o processo não
  // puder ser aberto
  HANDLE hProcesso = OpenProcess(PROCESS_TERMINATE, 0, 3040);

  // vamos fechar o processo
  if(TerminateProcess(hProcesso, 0)){
    cout << "Processo finalizado com sucesso." << endl; 
  }
  else{
    cout << "Erro ao finalizar o processo: " << 
      GetLastError() << endl;   
  }

  // vamos fechar o handle do processo
  CloseHandle(hProcesso);
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



Vamos testar seus conhecimentos em

Vantagens e Desvantagens do Concreto Armado

A escolha do sistema estrutural a ser adotado para a edificação a ser executada em determinada região passa pelo estudo da viabilidade técnica e, na sequência, da viabilidade econômica. A viabilidade técnica irá considerar, entre outros itens, as vantagens e desvantagens dos sistemas em análise.

Com relação às desvantagens da utilização do concreto armado, analise as afirmações a seguir e indique V para a(s) verdadeira(s) e F para a(s) falsa(s):

( ) A necessidade da utilização de um sistema de formas e escoramentos é uma desvantagem das estruturas de concreto armado que pode ser evitada pela utilização de elementos pré-moldados.

( ) O fato de o concreto produzido não atingir a resistência prevista em projeto é uma desvantagem que não pode ser evitada.

( ) A fissuração de elementos de concreto armado é uma desvantagem inevitável e não pode ser controlada.

( ) Seu elevado peso próprio é uma das principais desvantagens no concreto armado, pois esse fato pode ser penalizante na execução.

Assinale a alternativa que contém a sequência correta.

A) V - V - F - F.

B) F - V - F - V.

C) F - V - F - F.

D) V - F - F - F.

E) F - V - V - F.
Verificar Resposta Estudar Cards Todas as Questões

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

Turbinas hidráulicas

Turbinas hidráulicas têm como principal aplicação a geração de energia, transformando energia cinética da água em energia mecânica, que será posteriormente convertida em energia elétrica.

Sobre as turbinas hidráulicas, marque a alternativa correta:

A) Uma turbina do tipo Francis apresenta uma baixa eficiência e pode ser operada apenas em baixas vazões.

B) Uma turbina do tipo Francis tem eficiência relativamente baixa, porém tem ampla faixa de operação.

C) A turbina do tipo Pelton tem um conjunto de pás fixas que podem ajustar o ângulo de entrada da água.

D) A turbina do tipo Kaplan foi adaptada a partir da turbina de hélice e pode ser operada em grandes vazões.

E) Uma turbina do tipo Pelton tem suas pás em formato de conchas e são operadas em grandes vazões.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

As lajes maciças são armadas em apenas uma direção, quando apresentam a relação entre o maior e o menor vão superior a 2. Nessas situações, a laje é dimensionada como um conjunto de vigas de largura unitária, dispostas paralelamente.

Considere a laje maciça apresentada na figura a seguir e determine a área de aço necessária para resistir aos esforços máximos de flexão.



Dados:
Peso específico do concreto = 25kN/m3
Carga do contrapiso + revestimento = 1,50kN/m2
Carga acidental = 2,00kN/m2
Altura da laje (h) = 12cm
Altura útil (d) = 8cm
fcd = fck / 1,4 (considerar concreto de 20MPa)
fyd = fyk / 1,15 (considerar aço CA-50)

Assinale a alternativa que apresenta o valor correto de As:

A) As = 0,019cm2.

B) As = 1,75cm2.

C) As = 1,397cm2.

D) As = 0,024cm2.

E) As = 1,701cm2.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Tintas

As tintas são misturas líquidas ou em pó utilizadas para colorir, proteger e embelezar superfícies diversas, como paredes, metais, plásticos, madeiras e muito mais. Elas são compostas de vários componentes que desempenham funções específicas para proporcionar as características desejadas.

Associe os componentes das tintas utilizadas na construção civil e suas respectivas funções:

I. Pigmentos

II. Solventes

III. Aglutinantes

( ) São também conhecidos como ligantes, e uma de suas funções é a capacidade de formar uma película sólida quando a tinta é aplicada.

( ) São responsáveis por conferir cor, opacidade e estabilidade à tinta.

( ) São usados para ajustar a viscosidade da tinta, tornando-a adequada para aplicação.

Marque a ordem da associação correta.

A) III, II, I.

B) II, I, III.

C) I, II, III.

D) II, III, I.

E) III, I, II.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Serviços preliminares e instalações provisórias

Os canteiros de obras devem dispor obrigatoriamente de:

A) Instalações sanitárias.

B) Sala de jogos.

C) Lavanderia.

D) Ambulatório.

E) Alojamento.
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á 29 usuários muito felizes estudando em nosso site.