Ir ao conteúdo

Posts recomendados

Postado

Gente, quero deixar para digitar os dados logo abaixo do menu, mas não estou conseguindo

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

using namespace std;

void controle();
int LerN();
bool numeroPar(int N);
void acharPar(int N);
void CalcFatorial(int N);
void acharPrimo(int N);
void somaPrimos(int N);


int main()
{    
    setlocale(LC_ALL, "Portuguese");
    system ("color f1");
    controle();
    return 0;
}


void controle()
{
    int tecla,N;
    
    string menutexto;
    menutexto +="********** BEM VINDO AO MENU **********";
    menutexto +="\n Digite (1) Para ler um valor:";
    menutexto +="\n Digite (2) Para verificar se o número é par ou ímpar";
    menutexto +="\n Digite (3) Para calcular o fatorial";
    menutexto +="\n Digite (4) Para verificar se os números são primos";
    menutexto +="\n Digite (5) Para somar os números primos";
    menutexto +="\n Digite (6) Para Sair";
    
    while(true)
    {
        
        cout <<menutexto;
        cin >> tecla;
        switch(tecla)
        {
            
        case 1:
            system("cls");
            N=LerN();
            break;
            
        case 2:
            system("cls");
            acharPar(N);
            break;
            
        case 3:
            system("cls");
            CalcFatorial(N);
            break;
            
        case 4:
            system("cls");
            acharPrimo(N);
            
            break;
        case 5:
            system("cls");
            somaPrimos(N);
            
            break;
        default:
            cout << "\nDigite outro valor!!!" << endl;
            
            break;
        }

        
    }    
    
    
}

int LerN()
{   
    void controle();
    int N;
    system ("cls");
    cout << "\n Olá, digite um número:" << endl;
    cin >> N;
    cout << "\n O número que você digitou foi: "<<N<<" , digite a opção desejada para esse número..." << endl;
    
    if(N<=0)
        {
                cout << "\n O número informado é invalido" << endl;
            
            
        }
        else
        {
            return N;
            
        }
        
}

bool numeroPar(int N)
{
    if (N % 2 ==0)
    {
        return true;
        
    }
    else
    {
        return false;
        
    }
    
}

void acharPar(int N)
{
    int result_par_impar=numeroPar(N);
    
    if(result_par_impar==true)
        
        {
                cout <<"\n O número "<<N<<" é par"<<endl;
                
        }
    else
        {
                cout <<"\n O número "<<N<<" é ímpar"<<endl;
                
        }
}

void CalcFatorial(int N)
{
    
     int fatorial=1;
    for(int i = 1; i <= N ; i++)
    {
        fatorial*=i;
    }
    
    cout << "\n o Fatorial de  "<<N<<" é igual a: "<< endl;
    for(int i = N; i >= 1; i--)
    {
        
        cout <<i<<".";
        
    }
    cout<<"="<<fatorial<< endl;    
    
}

bool numeroPrimo ( int num)
{
 int contdiv =0;
 for (int i=1; i<=num; i+=1)
 {
 if (num % i == 0 )
 {
 contdiv +=1;
 }
 } 
 if ( contdiv == 2 )
 {
      return true;
 }
 else 
 {
      return false;
 }
}


void acharPrimo(int N)
{
    int result=numeroPrimo(N);
    if(result=true)
    {
        cout <<"\n O número  "<<N<<" é primo"<<endl;
                
    }
    else
    {
        cout <<"\n O número  "<<N<<" não é primo"<<endl;
                
    }
    
}

void somaPrimos(int N)
{
    int soma =0;
    for(int i = 1; i < N; i++)
    {
        if(numeroPrimo(i))
        {
            soma=soma+i;
            cout<<i<<"+";
            
        }
        
    }
    cout<<"\n A soma dos números primos é igual a: "<<soma<<endl;
    
    
}


 

  • Obrigado 1
Postado

@Lana_Silva    para digitaR abaixo do menu , você pode apenas adicionar Uma Quebra de Linha com 

cout << " " << endl;

mas seu código não está funcionando bem não , ele não obedece o comando de Sair do programa , e outras funções não realizam o que se pretende , e esse controle de cores que você estabeleceu até Que funCiona , mas ele eh poucO eficaz , melhor seria essa função textcolor , e  seu código corrigido apenas para essas Questões poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS  // para usar scanf e outras funções no VisuaL Studio
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <string.h>
#include <windows.h>
#include <conio.h>
#define getch() _getch() // para usar getch uma pausa ate teclar Algo
#define cls system("cls"); // limpar a tela
void controle();
int LerN();
bool numeroPar(int N);
void acharPar(int N);
void CalcFatorial(int N);
void acharPrimo(int N);
void somaPrimos(int N);
void textcolor(int, int);
using namespace std;
int main()
{
    int letra_antes, fundo_antes, cor;
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);// in
    CONSOLE_SCREEN_BUFFER_INFO c;   //  pega informações do sistema
    if (GetConsoleScreenBufferInfo(h, &c))
    {
        cor         = (c.wAttributes & 0xFF);
        letra_antes = (c.wAttributes & 0xFF) & 0x0F;
        fundo_antes = ((c.wAttributes & 0xFF) >> 4) & 0x0F;
    }

    setlocale(LC_ALL, "Portuguese");     // é de praxe Que
    system("color f1");                  // mudando as cores padrão , no Final Restaure essas cores NoVamente
    controle();                          // obrigado . . .
    textcolor(letra_antes, fundo_antes); // volta para as cores padrão
    cout << "\n\n\n" << endl;
    return 0;
}
void controle()
{
    int tecla, N=0;  // inicializare as variáveis
/*
    string menutexto;  // aqui você criou uma string bem grandona
    menutexto += "********** BEM VINDO AO MENU **********";
    menutexto += "\n Digite (1) Para ler um valor:";
    menutexto += "\n Digite (2) Para verificar se o número é par ou ímpar";
    menutexto += "\n Digite (3) Para calcular o fatorial";
    menutexto += "\n Digite (4) Para verificar se os números são primos";
    menutexto += "\n Digite (5) Para somar os números primos";
    menutexto += "\n Digite (6) Para Sair";
*/
    do
    {
/*
        cout << menutexto << endl; // aqui pula para a Linha de Baixo
*/
        textcolor(9, 15); // cor das Letras e cor de fundo da tela
        cout<< "********** BEM VINDO AO MENU **********"; // poderia ser assim sem string
        cout << "\n Digite (1) Para ler um valor:";
        cout << "\n Digite (2) Para verificar se o número é par ou ímpar";
        cout << "\n Digite (3) Para calcular o fatorial";
        cout << "\n Digite (4) Para verificar se os números são primos";
        cout << "\n Digite (5) Para somar os números primos";
        cout << "\n Digite (6) Para Sair" << endl << " "; // aqui pula para a Linha de Baixo
        cin >> tecla;
        cls              // aqui economiza linhas pois limpatela para todas as funções uma unica vez
        switch (tecla)
        {
        case 1:
            N = LerN();
            break;
        case 2:
            acharPar(N);
            break;
        case 3:
            CalcFatorial(N);
            break;
        case 4:
            acharPrimo(N);
            break;
        case 5:
            somaPrimos(N);
            break;
        case 6:
            cout << "Saindo Do Programa . . . !" << endl;
            break;
        default:
            cout << "\nDigite outro valor!!!" << endl;
            break;
        }
    } while (tecla != 6);
}

int LerN()
{
    textcolor(12, 15);
    void controle();
    int N;
    cout << "\n Olá, digite um número:" << endl;
    cin >> N;
    cout << "\n O número que você digitou foi: " << N << " , digite a opção desejada para esse número..." << endl;

    if (N <= 0)
    {
        cout << "\n O número informado é invalido" << endl;


    }
    else
    {
        return N;

    }

}

bool numeroPar(int N)
{
    if (N % 2 == 0)
    {
        return true;

    }
    else
    {
        return false;

    }

}

void acharPar(int N)
{
    textcolor(12, 10); // cor das Letras e cor de fundo da tela
    int result_par_impar = numeroPar(N);

    if (result_par_impar == true)

    {
        cout << "\n O número " << N << " é par" << endl;

    }
    else
    {
        cout << "\n O número " << N << " é ímpar" << endl;

    }
}

void CalcFatorial(int N)
{
    textcolor(15, 0); // cor das Letras e cor de fundo da tela
    int fatorial = 1;
    for (int i = 1; i <= N; i++)
    {
        fatorial *= i;
    }

    cout << "\n o Fatorial de  " << N << " é igual a: " << endl;
    for (int i = N; i >= 1; i--)
    {

        cout << i << ".";

    }
    cout << "=" << fatorial << endl;

}

bool numeroPrimo(int num)
{
    int contdiv = 0;
    for (int i = 1; i <= num; i += 1)
    {
        if (num % i == 0)
        {
            contdiv += 1;
        }
    }
    if (contdiv == 2)
    {
        return true;
    }
    else
    {
        return false;
    }
}


void acharPrimo(int N)
{
    textcolor(14, 0); // cor das Letras e cor de fundo da tela
    int result = numeroPrimo(N);
    if (result = true)
    {
        cout << "\n O número  " << N << " é primo" << endl;

    }
    else
    {
        cout << "\n O número  " << N << " não é primo" << endl;

    }

}

void somaPrimos(int N)
{
    textcolor(13, 15); // cor das Letras e cor de fundo da tela
    int soma = 0;
    for (int i = 1; i < N; i++)
    {
        if (numeroPrimo(i))
        {
            soma = soma + i;
            cout << i << "+";
        }
    }
    cout << "\n A soma dos números primos é igual a: " << soma << endl;
    cout << "\t\tTecle . . . !" << endl;
    getch();
}
void textcolor(int letras, int fundo)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        letras + (fundo << 4));
}

 

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!