Ir ao conteúdo

Posts recomendados

Postado

olá pessoal, não faço a mínima como transformar esse problema em uma função com esse recurso booleano, alguém poderia me ajudar ?

image.png.2db6381e27a370b92d33b894938ecf20.png

#include <stdio.h>
#include <stdlib.h>

main() {
  int num;
  printf("============Par ou Impar============\n");
  printf("\nDigite um numero.:");
  scanf("%d", &num);
    if (num % 2 == 0) {
      printf("\nNumero par.");  
    }        
    
    else {
      printf("\nNumero impar."); 
    }
                     
  printf("\n\n");
  system("pause");       

}

 

  • Obrigado 1
Postado

@João Victor Souza Carli      boolean informa se o resultado da  comparação é verdadeiro ou falso ,  então use uma variável do tipo  bool ,   e como você postou no tópico de c++ então os comando aqui serão da linguagem c++ ,  onde o cout  é igual ao printf , e seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int booleana(int n){
    if(n%2==0)return true;
    return false;    
}
int main(){
  int num;
  bool b;
  cout<<"============Par ou Impar============"<<endl;
  cout<<"\nDigite um numero. : ";
  cin>>num;
  b = booleana(num);
  if     (   b )cout<<num<<"  eh par !\n"    <<endl;
  else if( ! b )cout<<num<<"  Nao eh par !\n"<<endl;
  cout<<"\n\n"<<endl;
  system("pause");       
  return 0;
}

 

Postado

Em C++ pode ser feito desta maneira...

 

#include <iostream>

using namespace std;

string parOuImpar(int num)
{
	if (num%2 == 0) return "verdadeiro";
	return "falso";
}

int main()
{
    cout << parOuImpar(3) << endl;
    cout << parOuImpar(46) << endl;
    cout << parOuImpar(19) << endl;
}

 

É isso que não entendi direito no enunciado se ele quer que diga se é par ou impar ou se apenas tem que retornar true false. Se for isso também da pra representar o booleano na forma de texto com boolalpha.

 

bool parOuImpar(int num)
{
	if (num%2 == 0) return true;
	return false;
}

int main()
{
    cout << boolalpha;
    cout << parOuImpar(3) << endl;
    cout << parOuImpar(46) << endl;
    cout << parOuImpar(19) << endl;
}

 

  • Curtir 1
Postado

Olá!

 

Em C++ bool é um tipo e imagino que seja só isso que o enunciado quer destacar.

  • Em C zero é falso, o resto é verdade
  • Em C++ tem as constantes true e false e as variáveis podem ser declaradas como bool

Exemplo

par(0) 1
par(1) 0
o tipo de 'outro'=bool
o tipo de 'par()'=bool __cdecl(int)
falso outro-par(3) 0

É o que esse programa mostraria
 

// par.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
using namespace std;

bool par(int valor) { return valor % 2 == 0; }
auto outropar(int valor) -> int{ return valor % 2 == 0; }

int main()
{
	std::cout << "par(0) " << par(0) << endl;
	std::cout << "par(1) " << par(1) << endl;
	auto valor = true;
	bool outro = false;

	decltype(outro) outroBool;
	cout << "o tipo de 'outro'=" << typeid(outro).name() << endl;
	cout << "o tipo de 'par()'=" << typeid(par).name() << endl;

	outro = par(3);
	outroBool = outropar(8);
	outroBool = false;

	if (outro)
	{
		cout << "verdadeiro outro-par(3) " << outro << endl;
	}
	else
	{
		cout << "falso outro-par(3) " << outro << endl;
	}
}	// end main()

Note que

  • a função par() retorna bool como esperado
  • Em C++ true e false são constantes comuns
  • Em C++ se pode declarar uma variável como sendo do tipo de outra usando decltype(outra). Isso pode ser muito útil porque às vezes o tipo da variável só é determinado quando o programa está rodando.
  • Em C++ se pode declarar variáveis como auto e o compilador vê pelo contexto que tipo deve ser usado. Útil quando o seu tipo é muito grande pra ficar digitando toda hora, mas mostra que ele entende que auto v = false; deve gerar v como bool.
  • Em C++ se pode interrogar o tipo de uma variável usando typeid(outro).name() como no programa acima
  • Em C a função 

     

    int par(int valor)
    { 
        return valor % 2 == 0;
    }    // end par()

    faria a mesma coisa e um teste assim

  •     if (par(2))
        {
            printf("dois e par\n");
        }
        else
        {
            printf("dois nao e par\n");
        }

    funciona como esperado porque o if avalia a expressão como true/false de todo modo. Se você imprimir o resultado de uma expressão vai mostrar zero somente quando ela for falsa...

  • Curtir 1
Postado

@João Victor Souza Carli Olá, vi sua mensagem no inbox só agora!

 

É mais uma função C, de um só argumento e não há mais nada o que falar além disso. Os exemplos de @arfneto @Benjamin Breeg @KXSY @devair1010 que essencialmente já dizem tudo.

 

Segue mais uma exemplo (Bem Doido pra Ti). 

#include <stdio.h>
#include <stdbool.h> // ISO C Standard Bool add

bool par(int arg);
bool impar(int arg);
int main(void)
{
      printf("E par(%+2d): %d\n", +0b0100, par(+0b0100));
      printf("E par(%+2d): %d\n", +0b0101, par(+0b0101));
      return 0;
}
/** Responde se é ímpar  */
bool impar (int arg){ return arg&0b0001; }

/** Responde se é par    */
bool par   (int arg){ return !impar(arg); }

Logo, o número binário que tem o prima-bit 1 é ímpar. É só mais uma técnica (A lógica binária).

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!