Ir ao conteúdo
  • Cadastre-se
The_Oicle

dúvida em c++

Recommended Posts

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. 

Compartilhar este post


Link para o post
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;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu programa ta muito confuso... algumas funções tem nomes pouco claros. 'tambem'??? esse nome que é.

Explique que tem que fazer cada função, onde serão chamadas, arrume pelo menos o nome correto aos parâmetros e assim já poderei te ajudar, é que nem eu entendo o que põe aí?

  • Curtir 1

Compartilhar este post


Link para o post
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;

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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;

}

Compartilhar este post


Link para o post
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 ;)

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×