Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico

Como retornar o resto da divisão entre dois números inteiros sem usar o operador de módulo - Desafio de Programação Resolvido em C++

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

Sempre que o assunto é calcular o resto da divisão entre dois números inteiros em C++, a primeira coisa que vem à nossa mente é usar o operador de módulo (%). Mas você sabia que é possível efetuar essa tarefa sem usar este operador? Vamos ao desafio então.

Escreva um programa C++ que pede para o usuário informar dois números inteiros e mostre o resto da divisão entre os dois sem usar o operador de módulo. Seu código não poderá usar funções matemáticas prontas, apenas os demais operadores aritméticos fornecidos pela linguagem C++.

Sua saída deverá ser parecida com:

Primeiro número inteiro: 11
Segundo número inteiro: 7
O resto da divisão é: 4

Primeiro número inteiro: 9
Segundo número inteiro: 2
O resto da divisão é: 1

Primeiro número inteiro: 13
Segundo número inteiro: 5
O resto da divisão é: 3
Resposta/Solução:

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

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

#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas para resolver o problema
  int a, b, resto;
    
  // vamos ler os dois números inteiros
  cout << "Primeiro número inteiro: ";
  cin >> a;
  cout << "Segundo número inteiro: ";
  cin >> b;
    
  // agora vamos calcular o resto da divisão
  resto = a - ((a / b) * b);
    
  // e mostramos o resultado
  cout << "O resto da divisão é: " << resto << endl;
  
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Fundamentos da Linguagem ::: Passos Iniciais

Apostila C++ para iniciantes - Como usar a macro EXIT_SUCCESS em C++

Quantidade de visualizações: 9445 vezes
A macro EXIT_SUCCESS, disponível na biblioteca cstdlib da linguagem C++, pode ser usada como argumento para a função exit() para sinalizar que o programa finalizou sua execução sem erros.

Os dois trechos de código abaixo são semelhantes:

1) Usando EXIT_SUCCESS para sinalizar que o programa foi finalizado com sucesso:

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

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  // programa foi finalizado com sucesso
  return EXIT_SUCCESS;
}

2) Usando o valor 0 para sinalizar que o programa foi finalizado com sucesso:

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

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  // programa foi finalizado com sucesso
  return 0;
}



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: 2194 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 com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// 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++ ::: Dicas & Truques ::: Input e Output (Entrada e Saída)

Como ler entrada do usuário em C++ usando a função global getline() da classe string

Quantidade de visualizações: 12561 vezes
Nesta dica mostrarei como é possível usar a função global getline() da classe string da linguagem C++ para ler a entrada do usuário.

Veja a assinatura que usaremos:

istream& getline(istream& is, string& str);


Esta função extrai os caracteres do fluxo de entrada (is) e os armazena na string fornecida como argumento (str). Veja o código 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;
 
int main(int argc, char *argv[])
{
  string nome;
  cout << "Por favor, informe o seu nome: ";
  getline(cin, nome);
  cout << "Seu nome é: " << nome << "\n\n"; 
      
  system("PAUSE"); // pausa o programa
  return 0;
}

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

Por favor, informe o seu nome: Osmar J. Silva
Seu nome é: Osmar J. Silva

Pressione qualquer tecla para continuar...


Vamos testar seus conhecimentos em Fundações

Sondagem à Percussão (SPT) e Rotativa (RQD)

Qual a densidade relativa calculada pela formulação empírica de Skempton, considerando que o valor de N corrigido foi de 20 a uma profundidade de 2m em um solo cujo peso específico é de 20 kN/m3?

A) 0,82.

B) 0,78.

C) 0,87.

D) 0,72.

E) 0,61.
Verificar Resposta Estudar Cards Todas as Questões

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

Dimensionamento de Redes de Distribuição de Água

Qual a vazão necessária na tubulação que sai do reservatório em uma rede ramificada para um loteamento com a seguinte configuração, considerando que cada habitante consome 400 L/dia?



A) 8,67 L/s.

B) 16,42 L/s.

C) 2,63 L/s.

D) 17,33 L/s.

E) 6,96 L/s.
Verificar Resposta Estudar Cards Todas as Questões

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

Ética, Legislação e Entidades que regulamentam a profissão

No ambiente corporativo você pode deparar-se com comportamentos ou sinais de condutas antiéticas. Com base nos ensinamentos estudados no livro, qual é a forma mais apropriada de identificar um sinal de comportamento antiético?

A) Coletando fatos e comparando-os com padrões éticos.

B) A partir da aplicação natural do bom senso.

C) Pela observação das pessoas envolvidas que podem esboçar expressões suspeitas.

D) A partir de denúncias.

E) Questionando diretamente as pessoas com comportamentos suspeitos.
Verificar Resposta Estudar Cards Todas as Questões

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

Viscosidade dos fluidos

A velocidade é um fator determinante na viscosidade de um fluido. Muitos estudos apresentam o cálculo da viscosidade a partir da velocidade média de um fluido viscoso. Como é chamado o fluido com viscosidade variável com a velocidade em que a tensão de cisalhamento não é diretamente proporcional à taxa de deformação?

A) Fluido compressível.

B) Fluido não compressível.

C) Fluido newtoniano.

D) Fluido não newtoniano.

E) Fluido relativo.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

A linguagem JavaScript diferencia letras maiúsculas de letras minúsculas (case-sensitive)?

A) Sim

B) Não
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á 9 usuários muito felizes estudando em nosso site.