Ir ao conteúdo
  • Cadastre-se

dúvida em c++


The_Oicle

Posts recomendados

Animação horizontal 1 - Implementar um programa que simula um caractere se movendo pela tela ao longo de uma linha cujo valor é lido do teclado, a partir e até colunas também lidas. O programa verifica se a coluna final informada é maior do que o valor inicial.

#include<iostream>
#include<windows.h>
 
int main(){
 
    char a = 'x';
 
    int linha;
    std::cout<<"Valor da linha:";
    std::cin>>linha;
 
    int coluna;
    std::cout<<"Valor da coluna:";
    std::cin>>coluna;
    
    std::cout<<"\n\n\n\";
 
    if(linha <= coluna){
        for(int i=0;i<=linha;i++){
            for(int j=0;j<coluna;j++){
                std::cout<<a;
                Sleep(1000);
            }
        }
    }
}

Um problema: Se eu quisesse que o caracter depois de lido se apagasse. Como eu faria??

 

Não consigo criar uma lógica para isso. 

Link para o comentário
Compartilhar em outros sites

Oi pessoal eu comecei a trabalhar com o C recentemente na Facu estou fazendo um pequeno projeto para entrega final e estou com um problemaço....................... não estou conseguindo fazer as chamadas direito e programa está buggando............. me ajudem por favor

 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#define numica 18
#define As 66
#define Sus 13,8
#define Mgm 655
 
void MenuOpcoes();
float IMC(float peso, float altura);
float ICA(float cq, float altura);
float Pressao_Art(float PAS, float PAD);
float Taxa_Meta(float também, char sexo, int idade, float altura, float peso);
float Taxa_Coles(float Total, float HDL);
float Freq_Card(float FRQ, float FRQMAX, float OBJ, float FRQRES);
 
int main() {
    int op, idade;
    float altura, cq, peso, PAS, PAD, HDL, Total, FRQ, FRQMAX, OBJ, FRQRES, fres;
    char sexo;
 
    op = 0;
    while(op != 6) {
        MenuOpcoes();
        scanf("%d", &op);
 
        if(op==1) {
            printf("Digite a altura:");
            scanf("%f",&altura);
            printf("Digite o peso:");
            scanf("%f",&peso);
        } else if (op==2) {
            printf("Digite circunferencia do quadril");
            scanf("%f",&cq);
            printf("Digite altura");
            scanf("%f",&altura);
        } else if (op==3) {
            printf("Digite a pressao arterial sistolica ");
            scanf("%f",&PAS);
            printf("Digite a pressao diastolica ");
            scanf("%f",&PAD);
        } else if (op==4) {
            printf("Digite o sexo do individuo- masc/fem :");
            scanf ("%c",&sexo);
            printf ("Digite a altura");
            scanf("%f",&altura);
            printf("Digite o peso");
            scanf ("%f",&peso);
            printf("Digite a idade");
            scanf("%d",&idade);
        } else if (op==5) {
            printf("Digite  a taxa de colesterol HDL");
            scanf("%f",&HDL);
            printf("Digite a taxa de colesterol Total ");
            scanf("%f",&Total);
        } else if (op==6){
            printf("Digite a frequencia de repouso ");
            scanf("%f",&FRQ);
            printf("Digite o frequencia de repouso max ");
            scanf("%f",&FRQMAX);
            printf("Digite a percentagem de objetivo");
            scanf("%f",&OBJ);
            printf("Digite a frequencia de reserva");
            scanf("%f",&FRQRES);
        } else {
            printf("Opcao invalida ");
        }
    }
    
    printf("O valor de IMC é de %f",&IMC);
    printf("O valor de ICA é de %f",&ICA);
    printf("O  da valor da pressao arterial é de %f",&Pressao_Art);
    printf("O valor da taxa de metabolismo é de %f ",&Taxa_Meta);
    printf("O valor da taxa de colesterol é de %f ",&Taxa_Coles);
    printf("O valor do objetivo muscular é de %f ",&OBJ);
    printf("O valor da frequencia cardiaca é de %f",&fres);
 
    return 0;
}
 
void MenuOpcoes() {
    printf("\n0 - Sair ");
    printf("\n1 - Taxa Imc ");
    printf("\n2 - Taxa Ica");
    printf("\n3 - Pressao arterial media");
    printf("\n4 - Taxa de metabolismo basal");
    printf("\n5 - Taxa de colesterol");
    printf("\n6 - Frequencia cardiaca");
}
 
float IMC(float peso, float altura) {
    return peso * (pow(altura,2));
}
 
float ICA(float cq, float altura) {
   return (cq)/ (pow(altura,1/2)) - (numica);
}
 
float Pressao_Art(float PAS, float PAD) {
    return PAS+(PAD*2)/3;
}
 
float Taxa_Meta(float também, char sexo, int idade, float altura, float peso) {
    if (sexo == 'm') {
        return (As*(Sus+peso))+(5*altura)-(6,8 * idade);
    } else if (sexo == 'f') {
       return Mgm+(9,6*peso)+(altura)-(4,7*idade);
    }
}
 
float Taxa_Coles(float Total, float HDL) {
    return Total/HDL;
}
 
float Freq_Card(float FRQ, float FRQMAX, float OBJ, float FRQRES) {
   // Fres= FRQ -FRQMAX;
   return (OBJ*FRQRES)+FRQ;
}
Link para o comentário
Compartilhar em outros sites

O programa Healthcontrol tem como objetivo fazer pequenas análises simples sobre aspectos da saúde de usuários interessados em exercicios fisicos . Recebendo dados simples como peso e altura, entre outros dados mais complexos o usuário poderá saber como se encontra fisicamente

 

Funções:

Taxa imc;

Taxa ica;

Pressão arterial media;

Taxa de colesterol(niveis);

Taxa de metabolismo basal;

Frequencia cardiaca;

Frequencia cardiaca de reserva;

Frequencia cardiaca maxima;

Frequencia cardiaca minima;

 

 

 

 

Formulas e funcoes :

 

Taxa imc:

 

P*(h^2) ------------------------------------------------------ Peso x altura^2;

 

Taxa ica:

(Circuferencia quadril)/ (altura.(altura^½))  -  (num ica);

 

Pressão arterial media:

PAM= PAS+(PAD*2)/3 --------------------------------------------------------

PAM - Pressao arterial media;

PAS- Pressao arterial Sistolica;

PAD- Pressao arterial Diastolica;

 

Taxa de colesterol(niveis):

 

 

Total/HDL

 

Taxa de metabolismo basal :

 

em homens:

também= 66(13,8+peso em kg)+(5*altura em cm)-(6,8* idade);

em mulheres:

também= 655+(9,6*peso em kg)+(altura em cm)-(4,7*idade em anos).

 

Frequencia cardiaca máxima:

Fres= Fcrepouso -Fcmáxima;
Link para o comentário
Compartilhar em outros sites

Não da para fazer melhor com o que você me deu:

#include <stdio.h>#include <stdlib.h>#include <math.h>#define numica 18#define As 66#define Sus 13.8#define Mgm 655void MenuOpcoes();float IMC ( float peso, float altura );float ICA ( float cq, float altura );float Pressao_Art ( float PAS, float PAD );float Taxa_Meta ( char sexo, int idade, float altura, float peso );float Taxa_Coles ( float Total, float HDL );float Freq_Card ( float FRQ, float FRQMAX, float OBJ, float FRQRES );int main() {    int op, idade;    float altura, cq, peso, PAS, PAD, HDL, Total, FRQ, FRQMAX, OBJ, FRQRES, fres;    char sexo;        op = 0;        while ( op != 6 ) {        MenuOpcoes();        scanf ( "%d%*c", &op );                if ( op == 1 ) {            printf ( "Digite a altura:" );            scanf ( "%f%*c", &altura );            printf ( "Digite o peso:" );            scanf ( "%f%*c", &peso );        } else if ( op == 2 ) {            printf ( "Digite circunferencia do quadril" );            scanf ( "%f%*c", &cq );            printf ( "Digite altura" );            scanf ( "%f%*c", &altura );        } else if ( op == 3 ) {            printf ( "Digite a pressao arterial sistolica " );            scanf ( "%f%*c", &PAS );            printf ( "Digite a pressao diastolica " );            scanf ( "%f%*c", &PAD );        } else if ( op == 4 ) {            printf ( "Digite o sexo do individuo- masc/fem :" );            scanf ( "%c%*c", &sexo );            printf ( "Digite a altura" );            scanf ( "%f%*c", &altura );            printf ( "Digite o peso" );            scanf ( "%f%*c", &peso );            printf ( "Digite a idade" );            scanf ( "%d%*c", &idade );        } else if ( op == 5 ) {            printf ( "Digite  a taxa de colesterol HDL" );            scanf ( "%f%*c", &HDL );            printf ( "Digite a taxa de colesterol Total " );            scanf ( "%f%*c", &Total );        } else if ( op == 6 ) {            printf ( "Digite a frequencia de repouso " );            scanf ( "%f%*c", &FRQ );            printf ( "Digite o frequencia de repouso max " );            scanf ( "%f%*c", &FRQMAX );            printf ( "Digite a percentagem de objetivo" );            scanf ( "%f%*c", &OBJ );            printf ( "Digite a frequencia de reserva" );            scanf ( "%f%*c", &FRQRES );        } else {            printf ( "Opcao invalida " );        }    }        printf ( "O valor de IMC é de %f", IMC(peso, altura) );    printf ( "O valor de ICA é de %f", ICA(cq, altura) );    printf ( "O  da valor da pressao arterial é de %f", Pressao_Art(PAS, PAD) );    printf ( "O valor da taxa de metabolismo é de %f ", Taxa_Meta(sexo,idade,altura,peso) );    printf ( "O valor da taxa de colesterol é de %f ", Taxa_Coles( Total,HDL) );    printf ( "O valor do objetivo muscular é de %f ", OBJ );    printf ( "O valor da frequencia cardiaca é de %f", Freq_Card(FRQ,FRQMAX,OBJ, FRQRES) );        return 0;}void MenuOpcoes() {    printf ( "\n0 - Sair " );    printf ( "\n1 - Taxa Imc " );    printf ( "\n2 - Taxa Ica" );    printf ( "\n3 - Pressao arterial media" );    printf ( "\n4 - Taxa de metabolismo basal" );    printf ( "\n5 - Taxa de colesterol" );    printf ( "\n6 - Frequencia cardiaca" );}float IMC ( float peso, float altura ) {    return peso * ( pow ( altura, 2 ) );}float ICA ( float cq, float altura ) {    return ( cq ) / ( pow ( altura, 1 / 2 ) ) - ( numica );}float Pressao_Art ( float PAS, float PAD ) {    return PAS + ( PAD * 2 ) / 3;}float Taxa_Meta ( char sexo, int idade, float altura, float peso ) {    if ( sexo == 'm' ) {        return ( As * ( Sus + peso ) ) + ( 5 * altura ) - ( 6.8 * idade );    } else if ( sexo == 'f' ) {        return Mgm + ( 9.6 * peso ) + ( altura ) - ( 4.7 * idade );    }else{        printf("imposible!");        exit(1);    }}float Taxa_Coles ( float Total, float HDL ) {    return Total / HDL;}float Freq_Card ( float FRQ, float FRQMAX, float OBJ, float FRQRES ) {    // Fres= FRQ -FRQMAX;    return ( OBJ * FRQRES ) + FRQ;}

Check o funcionamento e si algo não estiver bem explique detalhadamente o problema e a possível solução que você acha que pode ser aplicada.
Sorte.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Dei uma melhorada no código. Está sem erros mas o programa só apresenta os resultados depois de aplicar em todos os teste , e eu quero que o resultado apareça logo após o teste e depois volte para o menu 

 

#include <stdlib.h>

#include <math.h>

 

#define numica 18

#define As 66

#define Sus 13.8

#define Mgm 655

 

void MenuOpcoes();

float IMC ( float peso, float altura );

float ICA ( float cq, float altura );

float Pressao_Art ( float PAS, float PAD );

float Taxa_Meta ( char sexo, int idade, float altura, float peso );

float Taxa_Coles ( float Total, float HDL );

float Freq_Card ( float FRQ, float OBJ, float FRQRES );

 

int main() {

    int op, idade;

    float altura, cq, peso, PAS, PAD, HDL, Total, FRQ,OBJ, FRQRES, fres;

    char sexo;

 

    op = 0;

 

    while ( op != 6 ) {

        MenuOpcoes();

        scanf ( "%d%*c", &op );

 

        if ( op == 1 ) {

            printf ( "Digite a altura:" );

            scanf ( "%f%*c", &altura );

            printf ( "Digite o peso:" );

            scanf ( "%f%*c", &peso );

        } else if ( op == 2 ) {

            printf ( "Digite circunferencia do quadril" );

            scanf ( "%f%*c", &cq );

            printf ( "Digite altura" );

            scanf ( "%f%*c", &altura );

        } else if ( op == 3 ) {

            printf ( "Digite a pressao arterial sistolica " );

            scanf ( "%f%*c", &PAS );

            printf ( "Digite a pressao diastolica " );

            scanf ( "%f%*c", &PAD );

        } else if ( op == 4 ) {

            printf ( "Digite o sexo do individuo- masc/fem :" );

            scanf ( "%c%*c", &sexo );

            printf ( "Digite a altura" );

            scanf ( "%f%*c", &altura );

            printf ( "Digite o peso" );

            scanf ( "%f%*c", &peso );

            printf ( "Digite a idade" );

            scanf ( "%d%*c", &idade );

        } else if ( op == 5 ) {

            printf ( "Digite  a taxa de colesterol HDL" );

            scanf ( "%f%*c", &HDL );

            printf ( "Digite a taxa de colesterol Total " );

            scanf ( "%f%*c", &Total );

        } else if ( op == 6 ) {

            printf ( "Digite a frequencia de repouso " );

            scanf ( "%f%*c", &FRQ );

            printf ( "Digite a percentagem de objetivo" );

            scanf ( "%f%*c", &OBJ );

            printf ( "Digite a frequencia de reserva" );

            scanf ( "%f%*c", &FRQRES );

        } else {

            printf ( "Opcao invalida " );

        }

    }

 

    printf ( "O valor de IMC e de %f", IMC(peso, altura) );

    printf ( "O valor de ICA e de %f", ICA(cq, altura) );

    printf ( "O  da valor da pressao arterial e de %f", Pressao_Art(PAS, PAD) );

    printf ( "O valor da taxa de metabolismo e de %f ", Taxa_Meta(sexo,idade,altura,peso) );

    printf ( "O valor da taxa de colesterol e de %f ", Taxa_Coles( Total,HDL) );

    printf ( "O valor do objetivo muscular e de %f ", OBJ );

    printf ( "O valor da frequencia cardiaca e de %f", Freq_Card(FRQ,OBJ, FRQRES) );

 

    return 0;

}

 

void MenuOpcoes() {

    printf ( "\n0 - Sair " );

    printf ( "\n1 - Taxa Imc " );

    printf ( "\n2 - Taxa Ica" );

    printf ( "\n3 - Pressao arterial media" );

    printf ( "\n4 - Taxa de metabolismo basal" );

    printf ( "\n5 - Taxa de colesterol" );

    printf ( "\n6 - Frequencia cardiaca" );

}

 

float IMC ( float peso, float altura ) {

    return peso * ( pow ( altura, 2 ) );

 

}

 

float ICA ( float cq, float altura ) {

    return ( cq ) / ( pow ( altura, 1 / 2 ) ) - ( numica );

}

 

float Pressao_Art ( float PAS, float PAD ) {

    return PAS + ( PAD * 2 ) / 3;

}

 

float Taxa_Meta ( char sexo, int idade, float altura, float peso ) {

    if ( sexo == 'm' ) {

        return ( As * ( Sus + peso ) ) + ( 5 * altura ) - ( 6.8 * idade );

    } else if ( sexo == 'f' ) {

        return Mgm + ( 9.6 * peso ) + ( altura ) - ( 4.7 * idade );

    }else{

        printf("imposible!");

        exit(1);

    }

}

 

float Taxa_Coles ( float Total, float HDL ) {

    return Total / HDL;

}

 

float Freq_Card ( float FRQ,float OBJ, float FRQRES ) {

 

    return ( OBJ * FRQRES) + FRQ;

}
Link para o comentário
Compartilhar em outros sites

#include <stdio.h>#include <stdlib.h>#include <math.h>#define NUMICA 18#define AS 66#define SUS 13.8#define MGM 655struct Dados {    int idade;    float altura;    float cq;    float peso;    float PAS;    float PAD;    float HDL;    float Total;    float FRQ;    float OBJ;    float FRQRES;    float fres;    char sexo;};typedef struct Dados Dados;void IMC         (Dados*);void ICA         (Dados*);void Pressao_Art (Dados*);void Taxa_Meta   (Dados*);void Taxa_Coles  (Dados*);void Freq_Card   (Dados*);void limparTela  ();int  menu        ();int main () {    int sair = 0;    struct Dados dados;    while ( !sair ) {        switch ( menu() ) {            case 1:  limparTela(); IMC         (&dados); break;            case 2:  limparTela(); ICA         (&dados); break;            case 3:  limparTela(); Pressao_Art (&dados); break;            case 4:  limparTela(); Taxa_Meta   (&dados); break;            case 5:  limparTela(); Taxa_Coles  (&dados); break;            case 6:  limparTela(); Freq_Card   (&dados); break;            case 0:  limparTela(); sair = 1;             break;            default:                 limparTela();                printf("Incorreto, volte a escolher uma opção"); break;        }        printf("\n\n");    }    printf("Obrigado por usar meu soft =)");    getchar();    return 0;}//IMCvoid IMC ( Dados *dados ) {    printf ( "Digite a altura:" );    scanf ( "%f%*c", &dados->altura );    printf ( "Digite o peso:" );    scanf ( "%f%*c", &dados->peso );    printf ( "O valor de IMC e de %f", dados->peso * ( pow ( dados->altura, 2 ) ));}//ICAvoid ICA (Dados* dados){    printf ( "Digite circunferencia do quadril" );    scanf ( "%f%*c", &dados->cq );    printf ( "Digite altura" );    scanf ( "%f%*c", &dados->altura );    printf ( "O valor de ICA e de %f", (dados->cq)/(pow(dados->altura, 1/2))-(NUMICA));}//Pressao_Art void Pressao_Art ( Dados * dados ) {    printf ( "Digite a pressao arterial sistolica " );    scanf ( "%f%*c", &dados->PAS );    printf ( "Digite a pressao diastolica " );    scanf ( "%f%*c", &dados->PAD );        printf ( "O  da valor da pressao arterial e de %f", dados->PAS+(dados->PAD*2)/3 );}//Taxa_Metavoid Taxa_Meta ( Dados *dados ) {    printf ( "Digite o sexo do individuo- m/f :" );    scanf ( "%c%*c", &dados->sexo );    printf ( "Digite a altura" );    scanf ( "%f%*c", &dados->altura );    printf ( "Digite o peso" );    scanf ( "%f%*c", &dados->peso );    printf ( "Digite a idade" );    scanf ( "%d%*c", &dados->idade );            if ( dados->sexo == 'm' ) {        printf ( "O valor da taxa de metabolismo e de %f ",             (AS*(SUS+dados->peso))+(5*dados->altura)-(6.8*dados->idade)        );        } else if ( dados->sexo == 'f' ) {        printf ( "O valor da taxa de metabolismo e de %f ",             MGM+(9.6*dados->peso)+(dados->altura)-(4.7*dados->idade)        );        } else {        printf ( "imposible! Nao existe esse tipo de genero.\n\n" );        }}void Taxa_Coles ( Dados *dados ) {    printf ( "Digite  a taxa de colesterol HDL" );    scanf ( "%f%*c", &dados->HDL );    printf ( "Digite a taxa de colesterol Total " );    scanf ( "%f%*c", &dados->Total );        printf ( "O valor da taxa de colesterol e de %f ", dados->Total / dados->HDL);}void Freq_Card ( Dados *dados ) {    printf ( "Digite a frequencia de repouso " );    scanf ( "%f%*c", &dados->FRQ );    printf ( "Digite a percentagem de objetivo" );    scanf ( "%f%*c", &dados->OBJ );    printf ( "Digite a frequencia de reserva" );    scanf ( "%f%*c", &dados->FRQRES );            printf ( "O valor do objetivo muscular e de %f \n", dados->OBJ );    printf ( "O valor da frequencia cardiaca e de %f", (dados->OBJ*dados->FRQRES)+dados->FRQ );}int menu(){    int op;    printf ( "\n1 - Taxa Imc " );    printf ( "\n2 - Taxa Ica" );    printf ( "\n3 - Pressao arterial media" );    printf ( "\n4 - Taxa de metabolismo basal" );    printf ( "\n5 - Taxa de colesterol" );    printf ( "\n6 - Frequencia cardiaca" );    printf ( "\n0 - Sair" );    printf ( "\n\n>>Opcao?: ");    scanf("%d%*c", &op);    return op;}void limparTela(){    system("cls");}

Espero que te ajude para futuros programas. Não esta provado 100%, mesmo porque eu não sou medico e não sei que valores por em esses campos para saber si o programa esta respondendo de forma adequada, prove ele antes de entregar ;)

Link para o comentário
Compartilhar em outros sites

Uma dica, use o código: using namespace std; embaixo da importação das bibliotecas, assim, você não precisará usar sempre o "std::cout" toda hora que for usa-lo, nem o "std::cin" e etc. Voltando ao foco do tópico.

O comando, system("cls"); limpa a tela toda, caso não seja isso que você queira, você pode usar um vetor com o tamanho de vezes que o carácter se movimentará e então removendo o índice que já foi usado. Fazendo mais ou menos assim:

char caracter[100];

for (int i=0; i <100; i++)

caracter = "x"; //atribuindo x a todas posições

for (int i=0; i < repeticoesDoCaracter; i++){

cout <<caracter;

if (i!=0){

int remove = i -1;

caracter[remove] =" "; //removendo caracter q já foi usado

}

}

Fiz na pressa, talvez há algo errado, ou mal feito. No mais é isso, tente adaptar ao seu código.

Abraços.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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