Ir ao conteúdo
  • Cadastre-se
AirFchy

C++ Retorno ao Menu Principal

Recommended Posts

Eu estou desenvolvendo um programa de termodinâmica, e criei um menu de divisão das equações. O meu problema é o seguinte:

Se o usuário quiser fazer uma conversão de escala termométrica, por exemplo, ele vai selecionar o menu 1, e no final do cálculo ele vai dizer "Digite 0 para sair do programa ou qualquer outro número para continuar". Só que se continuar, ele volta para a opção 1, que no caso é opção de equação de conversão de escalas. Eu quero que após o final do cálculo, se o usuário quiser continuar, que ele volte para o menu principal, e não para a mesma opção que ele resolveu calcular no início.

 

Vou colocar uma parte do programa aqui:

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
float R, Q, qmin, massa, c, deltat, tinicial, tfinal, Ql, l, K, A, e, h, tau, pressao, deltav, vinicial, vfinal, deltau, uinicial, ufinal, deltah, hinicial, hfinal;
int calculo, calculo_r, cont=0, i=0;

printf("\n____________ Termodinamica ____________\n");
printf("\n  (Sistema Internacional de Unidades)\n");
printf("\n\n------------ Menu ------------\n\n");
printf("1 - Transferencia de Escalas Termometricas\n\n");
printf("2 - Calor Sensivel\n\n");
printf("3 - Calor Latente\n\n");
printf("4 - Transferencia de Calor - Parede Plana (Lei de Fourier)\n\n"); 
printf("5 - Transferencia de Calor - Fluxo Fluido (Lei de Newton)\n\n");
printf("6 - Trabalho sob Pressao Constante\n\n");
printf("7 - Energia Interna\n\n");
printf("8 - Entalpia\n\n");
printf("9 - Transferencia de Calor por Resistencias Associadas:\n");
printf("\n\nDigite o numero da Equacao que deseja calcular:  \n");
scanf("%d", &calculo);

//Para scanf
//{
//%s=pra string
//%d ou %i = pra numeros inteiros [no printf]
//%d=somente numeros inteiros no scanf
//%i=numeros decimais, octais e hexadecimais no scanf
//%f=pra float
//}

while(calculo==1)
{
    int escala;
    float rankine, celsius, fht, kelvin;
    printf("Conversao de Escalas Termometricas\n\n\n");
    printf("\n1. Rankine\n2. Celsius\n3. Fahrenheit\n4. Kelvin\n\n");
        //°R=(°C+273,15)*1,8
        //°R=KELVIN P/ RANKINE
        //°R=°F+459,67
            //°C=K-273
            //°C=(°F-32)/1,8
            //°C=(°R-491,67)/1,8
                //K=°C+273
                //K=(((°F-32)/9)*5)+273
                //K=RANKINE P/ KELVIN
                    //°F=(1,8*C)+32
                    //°F=(((K-273)/5)*9)+32
                    //°F=RANKINE P/ FAHRENHEIT
    calculo=0;
    printf("Digite o numero da Escala que deseja converter: \n");
    scanf("%d", &escala);
    while(escala==1)
    {
    	printf("\n\nEscala Rankine\n\n");
    	printf("\n\n\nDigite o valor da Temperatura em R: \n");
    	scanf("%f", &rankine);
    	celsius=(rankine-491,67)/1,8;
    	fht= 1+1;
    	kelvin=1+1;
    	printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, kelvin);
    	escala=0;

    }
    while(escala==2)
    {
    	printf("\n\nEscala Celsius\n\n");
    	printf("\n\n\nDigite o valor da Temperatura em °C: \n");
    	scanf("%f", &celsius);
    	rankine=1+1;
    	fht=1+1;
    	kelvin=1+1;
    	printf("\n\nO Valor da Temperatura em °C, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", rankine, fht, kelvin);
    	escala=0;
		
    }
     while(escala==3)
    {
    	printf("\n\nEscala Fahrenheit\n\n");
    	printf("\n\n\nDigite o valor da Temperatura em °F: \n");
    	scanf("%f", &fht);
    	celsius=1+1;
    	rankine=1+1;
    	kelvin=1+1;
    	printf("\n\nO Valor da Temperatura em °F, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, rankine, kelvin);
    	escala=0;

	}
     while(escala==4)
    {
    	printf("\n\nEscala Kelvin\n\n");
    	printf("\n\n\nDigite o valor da Temperatura em K: \n");
    	scanf("%f", &kelvin);
    	celsius=1+1;
    	fht=1+1;
    	rankine=1+1;
    	printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, rankine);
    	escala=0;

    }
printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
scanf("%d", &calculo);		
if(calculo==0)
		{
		  calculo=0;
		}
		else
        {

		    calculo=1;    	
    }
    
}

while(calculo==2)
{
	printf("Calor Sensivel\n\n\n");
	//Q=m*c*ΔT
	printf("\nDigite o valor da Massa (em gramas):  ");
	scanf("%f", &massa);
	printf("\nDigite o valor do calor especifico da substancia (em cal/g°C):  ");
	scanf("%f", &c);
	printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
	scanf("%f", &tinicial);
	printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
	scanf("%f", &tfinal);
	deltat=tfinal-tinicial;
	Q=massa*c*deltat;
	printf("\n\n\nO valor da Quantidade de Calor Sensivel e %4.4f cal", Q);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);
	if(calculo==0)
		{
		  calculo=0;
		}
		else
        {

		    calculo=2;
		}
		
}

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicionei 1 opção para Sair no menu, substituí todos os while por if, e coloquei um único do-while englobando tudo, agora sai quando calculo é igual a 0.

 

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    float R, Q, qmin, massa, c, deltat, tinicial, tfinal, Ql, l, K, A, e, h, tau, pressao, deltav, vinicial, vfinal, deltau, uinicial, ufinal, deltah, hinicial, hfinal;
    int calculo, calculo_r, cont=0, i=0;

    do {
        printf("\n____________ Termodinamica ____________\n");
        printf("\n  (Sistema Internacional de Unidades)\n");
        printf("\n\n------------ Menu ------------\n\n");
        printf("1 - Transferencia de Escalas Termometricas\n\n");
        printf("2 - Calor Sensivel\n\n");
        printf("3 - Calor Latente\n\n");
        printf("4 - Transferencia de Calor - Parede Plana (Lei de Fourier)\n\n");
        printf("5 - Transferencia de Calor - Fluxo Fluido (Lei de Newton)\n\n");
        printf("6 - Trabalho sob Pressao Constante\n\n");
        printf("7 - Energia Interna\n\n");
        printf("8 - Entalpia\n\n");
        printf("9 - Transferencia de Calor por Resistencias Associadas:\n\n");
        printf("0 - Sair\n")
        printf("\n\nDigite o numero da Equacao que deseja calcular:  \n");
        scanf("%d", &calculo);
        //Para scanf
        //{
        //%s=pra string
        //%d ou %i = pra numeros inteiros [no printf]
        //%d=somente numeros inteiros no scanf
        //%i=numeros decimais, octais e hexadecimais no scanf
        //%f=pra float
        //}

        if(calculo==1)
        {
            int escala;
            float rankine, celsius, fht, kelvin;
            printf("Conversao de Escalas Termometricas\n\n\n");
            printf("\n1. Rankine\n2. Celsius\n3. Fahrenheit\n4. Kelvin\n\n");
            //°R=(°C+273,15)*1,8
            //°R=KELVIN P/ RANKINE
            //°R=°F+459,67
            //°C=K-273
            //°C=(°F-32)/1,8
            //°C=(°R-491,67)/1,8
            //K=°C+273
            //K=(((°F-32)/9)*5)+273
            //K=RANKINE P/ KELVIN
            //°F=(1,8*C)+32
            //°F=(((K-273)/5)*9)+32
            //°F=RANKINE P/ FAHRENHEIT
            calculo=0;
            printf("Digite o numero da Escala que deseja converter: \n");
            scanf("%d", &escala);
            if(escala==1)
            {
                printf("\n\nEscala Rankine\n\n");
                printf("\n\n\nDigite o valor da Temperatura em R: \n");
                scanf("%f", &rankine);
                celsius=(rankine-491,67)/1,8;
                fht= 1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, kelvin);
                escala=0;

            }
            if(escala==2)
            {
                printf("\n\nEscala Celsius\n\n");
                printf("\n\n\nDigite o valor da Temperatura em °C: \n");
                scanf("%f", &celsius);
                rankine=1+1;
                fht=1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em °C, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", rankine, fht, kelvin);
                escala=0;

            }
            if(escala==3)
            {
                printf("\n\nEscala Fahrenheit\n\n");
                printf("\n\n\nDigite o valor da Temperatura em °F: \n");
                scanf("%f", &fht);
                celsius=1+1;
                rankine=1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em °F, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, rankine, kelvin);
                escala=0;

            }
            if(escala==4)
            {
                printf("\n\nEscala Kelvin\n\n");
                printf("\n\n\nDigite o valor da Temperatura em K: \n");
                scanf("%f", &kelvin);
                celsius=1+1;
                fht=1+1;
                rankine=1+1;
                printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, rankine);
                escala=0;

            }
            
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);
            
            if(calculo==0)
            {
                calculo=0;
            }
            else
            {

                calculo=1;
            }
            
        }

        if(calculo==2)
        {
            printf("Calor Sensivel\n\n\n");
            //Q=m*c*ΔT
            printf("\nDigite o valor da Massa (em gramas):  ");
            scanf("%f", &massa);
            printf("\nDigite o valor do calor especifico da substancia (em cal/g°C):  ");
            scanf("%f", &c);
            printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
            scanf("%f", &tinicial);
            printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
            scanf("%f", &tfinal);
            deltat=tfinal-tinicial;
            Q=massa*c*deltat;
            
            printf("\n\n\nO valor da Quantidade de Calor Sensivel e %4.4f cal", Q);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);
            
            if(calculo==0)
            {
                calculo=0;
            }
            else
            {

                calculo=2;
            }
            
        }
    } while (calculo != 0)
    
    return 0;
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    float R, Q, qmin, massa, c, deltat, tinicial, tfinal, Ql, l, K, A, e, h, tau, pressao, deltav, vinicial, vfinal, deltau, uinicial, ufinal, deltah, hinicial, hfinal;
    int calculo, calculo_r, cont=0, i=0;

    do {
        printf("\n____________ Termodinamica ____________\n");
        printf("\n  (Sistema Internacional de Unidades - Equacoes com precisao de 2 Casas Decimais)\n");
        printf("\n\n------------ Menu ------------\n\n");
        printf("1 - Transferencia de Escalas Termometricas\n\n");
        printf("2 - Calor Sensivel\n\n");
        printf("3 - Calor Latente\n\n");
        printf("4 - Transferencia de Calor - Parede Plana (Lei de Fourier)\n\n");
        printf("5 - Transferencia de Calor - Fluxo Fluido (Lei de Newton)\n\n");
        printf("6 - Trabalho sob Pressao Constante\n\n");
        printf("7 - Energia Interna\n\n");
        printf("8 - Entalpia\n\n");
        printf("9 - Transferencia de Calor por Resistencias Associadas:\n\n");
        printf("0 - Sair do Programa\n");
        printf("\n\nDigite o numero da Equacao que deseja calcular:  \n");
        scanf("%d", &calculo);
        //Para scanf
        //{
        //%s=pra string
        //%d ou %i = pra numeros inteiros [no printf]
        //%d=somente numeros inteiros no scanf
        //%i=numeros decimais, octais e hexadecimais no scanf
        //%f=pra float
        //}

        if(calculo==1)
        {
            int escala;
            float rankine, celsius, fht, kelvin;
            printf("Conversao de Escalas Termometricas\n\n\n");
            printf("\n1. Rankine\n2. Celsius\n3. Fahrenheit\n4. Kelvin\n\n");
            //°R=(°C+273,15)*1,8
            //°R=KELVIN P/ RANKINE
            //°R=°F+459,67
            //°C=K-273
            //°C=(°F-32)/1,8
            //°C=(°R-491,67)/1,8
            //K=°C+273
            //K=(((°F-32)/9)*5)+273
            //K=RANKINE P/ KELVIN
            //°F=(1,8*C)+32
            //°F=(((K-273)/5)*9)+32
            //°F=RANKINE P/ FAHRENHEIT
            calculo=0;
            printf("Digite o numero da Escala que deseja converter: \n");
            scanf("%d", &escala);
            if(escala==1)
            {
                printf("\n\nEscala Rankine\n\n");
                printf("\n\n\nDigite o valor da Temperatura em R: \n");
                scanf("%f", &rankine);
                celsius=(rankine-491,67)/1,8;
                fht= 1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, kelvin);
                escala=0;

            }
            if(escala==2)
            {
                printf("\n\nEscala Celsius\n\n");
                printf("\n\n\nDigite o valor da Temperatura em °C: \n");
                scanf("%f", &celsius);
                rankine=1+1;
                fht=1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em °C, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", rankine, fht, kelvin);
                escala=0;

            }
            if(escala==3)
            {
                printf("\n\nEscala Fahrenheit\n\n");
                printf("\n\n\nDigite o valor da Temperatura em °F: \n");
                scanf("%f", &fht);
                celsius=1+1;
                rankine=1+1;
                kelvin=1+1;
                printf("\n\nO Valor da Temperatura em °F, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, rankine, kelvin);
                escala=0;

            }
            if(escala==4)
            {
                printf("\n\nEscala Kelvin\n\n");
                printf("\n\n\nDigite o valor da Temperatura em K: \n");
                scanf("%f", &kelvin);
                celsius=1+1;
                fht=1+1;
                rankine=1+1;
                printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, rankine);
                escala=0;

            }
            
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);
            
        }

        if(calculo==2)
        {
            printf("Calor Sensivel\n\n\n");
            //Q=m*c*ΔT
            printf("\nDigite o valor da Massa (em gramas):  ");
            scanf("%f", &massa);
            printf("\nDigite o valor do calor especifico da substancia (em cal/g°C):  ");
            scanf("%f", &c);
            printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
            scanf("%f", &tinicial);
            printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
            scanf("%f", &tfinal);
            deltat=tfinal-tinicial;
            Q=massa*c*deltat;
            
            printf("\n\n\nO valor da Quantidade de Calor Sensivel e %2.2f cal", Q);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);
            
        }
        while(calculo==3)
{
	printf("Calor Latente\n\n\n");
	//Ql=m*L
	printf("\nDigite o valor da massa (em gramas): ");
	scanf("%f", &massa);
	printf("\nDigite o valor da Constante de proporcionalidade (em cal/g): ");
	scanf("%f", &l);
	Ql=massa*l;
	printf("\n\n\nO valor da Quantidade de Calor Latente e %2.2f cal", Ql);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar:\n");
	scanf("%d", &calculo);
	
}

while(calculo==4)
{
	printf("Lei de Fourier - Transferencia de Calor [Parede Plana]\n\n\n");
	//q=(K*A*ΔT)/e
	printf("\nDigite o valor da Constante (em W/m.K): ");
	scanf("%f", &K);
	printf("\nDigite o valor da Area (em metros quadrados): ");
	scanf("%f", &A);
	printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
	scanf("%f", &tinicial);
	printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
	scanf("%f", &tfinal);
	printf("\nDigite o valor da Espessura (em metros): ");
	scanf("%f", &e);
	deltat=tfinal-tinicial;
	qmin=(K*A*deltat)/e;
	printf("\n\n\nO valor da taxa de Transferencia de calor por Conducao e %2.2f Watts", qmin);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);

}
while(calculo==5)
{
	printf("Lei de Newton - Transferencia de Calor [Fluxo Fluido]\n\n\n");
	//q=h*A*ΔT
	printf("\nDigite o valor da Constante (em W/m^2.K): ");
	scanf("%f", &h);
	printf("\nDigite o valor da Area (em metros): ");
	scanf("%f", &A);
	printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
	scanf("%f", &tinicial);
	printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
	scanf("%f", &tfinal);
	deltat=tfinal-tinicial;
	qmin=h*A*deltat;
	printf("\n\n\nO valor do Coeficiente de Conveccao e %2.2f Watts", qmin);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);

}
while(calculo==6)
{
	printf("Trabalho sob Pressao Constante\n\n\n");
	//τ=P*ΔV
	printf("\nDigite o valor da Pressao (em Pascal): ");
	scanf("%f", &pressao);
	printf("\nDigite o valor do Volume inicial (em metro cubico): ");
	scanf("%f", &vinicial);
	printf("\nDigite o valor do Volume final (em metro cubico): ");
	scanf("%f", vfinal);
	deltav=vfinal-vinicial;
	tau=pressao*deltav;
	printf("\n\n\nO Trabalho realizado foi de %2.2f Joule", tau);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);

}
while(calculo==7)
{
	printf("Energia Interna\n\n\n");
	//ΔU=Q-τ
	printf("\nDigite o valor do Calor (em Joule): ");
	scanf("%f", &Q);
	printf("\nDigite o valor do Trabalho (em Joule): ");
	scanf("%f", &tau);
	deltau=Q-tau;
	printf("\n\n\nO Valor da Variacao de Energia Interna Interna e igual a %2.2f Joule", deltau);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);

}
while(calculo==8)
{
	printf("Entalpia\n\n\n");
	//ΔH=ΔU-τ
	printf("Digite o Valor da Energia Inicial (em Joule): ");
	scanf("%f", &uinicial);
	printf("\nDigite o valor da Energia Final (em Joule): ");
	scanf("%f", &ufinal);
	printf("Digite o valor do Trabalho (em Joule): ");
	scanf("%f", &tau);
	deltau=ufinal-uinicial;
	deltah=deltau-tau;
	printf("\n\n\nO Valor da Variacao da Entalpia e igual a %2.2f Joule", deltah);
	printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
	scanf("%d", &calculo);

}
while(calculo==9)
{
	printf("Transferencia de Calor por Resistencias Associadas\n\n\n");
	//Resistência Térmica Parede Plana: R=e/(K*A)
	//Resistência Térmica Fluxo: R=1/(h*A)
	//Varias Resistências em Série: q(n)=(ΔT(n))/Rt
	    //Rt=Somatorio das Resistencias: Σ R(n)
	//Varias Resistências em Paralelo: q(n)=(ΔT(n))/(1/(Rt)
	    //(1/Rt)=Somatorio do Inverso das Resistencias: Σ (1/R(n))
	printf("1. Resistencia Termica Parede Plana\n\n");
	printf("2. Resistencia Termica Fluxo\n\n");
	printf("3. Varias Resistencias em Serie\n\n");
	printf("4. Varias Resistencias em Paralelo\n\n");
	printf("Digite o numero da Equacao que deseja Calcular:\n");
	scanf("%d", &calculo_r);
	while(calculo_r==1)
	{
		printf("\n\nResistencia Termica Parede Plana\n\n\n");
		//R=e/(K*A)
		printf("\nDigite o valor da Espessura (em metros): ");
		scanf("%f", &e);
		printf("\nDigite o valor da Condutividade Termica (em W/m.K): ");
		scanf("%f", &K);
		printf("\nDigite o valor da Area (em metros quadrados): ");
		scanf("%f", &A);
		R=(e/(K*A));
		printf("\n\nO valor da Resistencia e: %2.2f K/W", &R);
		calculo_r=0;
		
		
	}
	while(calculo_r==2)
	{
		printf("\n\nResistencia Termica Fluxo\n\n\n");
		//R=1/(h*A)
		printf("\nDigite o valor da Constante (em W/m^2.K) ");
		scanf("%f", &h);
		printf("\nDigite o valor da Area (em metros quadrados): ");
		scanf("%f", &A);
		R=1/(h*A);
		printf("\n\nO valor da Resistencia e: %2.2f K/W", &R);
		calculo_r=0;
		
	}
	while(calculo_r==3)
	{
	    int i, num_r;
	    float Rt=0;
		printf("\n\nVarias Resistencias Associadas em Serie\n\n\n");
		//q=(ΔT)/R(n)
		printf("\nDigite o Numero de Resistencias que estão associadas em Serie: ");
		scanf("%d", &num_r);
		float R[num_r];
		Rt=0;
		for(i=1; i<=num_r; i++){
		printf("\n\nInsira o valor da Resistencia (em K/W):\n");
		cin >> R[i]; 
		Rt=Rt+(R[i]);
		}
		printf("\nDigite o valor da Temperatura Inicial (em Kelvin): ");
		cin >> tinicial;
		printf("\nDigite o valor da Temperatura Final (em Kelvin): ");
		cin >> tfinal;
		deltat=tfinal-tinicial;
		qmin=(deltat)/(Rt);
		cout << "\n\nO valor do q e:" << qmin << " Watts" << "\n";
		calculo_r=0;

	}
    while(calculo_r==4)
	{
	    int i, num_r;
	    float Rt=0;
		printf("\n\nVarias Resistencias Associadas em Paralelo\n\n\n");
		//q=((Δt(n))/(1/(R(n)))
		printf("\nDigite o Numero de Resistencias que estão associadas em Paralelo: ");
		scanf("%d", &num_r);
		float R[num_r];
		Rt=0;
		for(i=1; i<=num_r; i++){
		printf("\n\nInsira o valor da Resistencia (em K/W):\n");
		cin >> R[i]; 
		Rt=Rt+(1/(R[i]));
		}
		printf("\nDigite o valor da Temperatura Inicial (em Kelvin): ");
		cin >> tinicial;
		printf("\nDigite o valor da Temperatura Final (em Kelvin): ");
		cin >> tfinal;
		deltat=tfinal-tinicial;
		qmin=(deltat)/(Rt);
		cout << "\n\nO valor do q e:" << qmin << " Watts" << "\n";
		calculo_r=0;

	}
printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
scanf("%d", &calculo);

}
    } while (calculo != 0);
    
    return 0;
}

Certo!! Resolvesse uma parte do meu problema, a única coisa que to tentando implementar mas só deu erro, foi na parte dos sub-menus, como no caso do "1. Transferência de Escalas" e "9. Transferência de calor por resistências associadas". Estas duas opções abrem um sub-menu com mais opções para o usuário fazer o cálculo, eu gostaria que no final do cálculo o usuário tivesse a opção de voltar pro sub-menu, voltar para o menu principal, ou digitar 0 para sair, é possivel?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais troca de whiles por if/else ifs, mais do whiles, etc, etc...

 

Notei que está misturando bibliotecas do C (stdio.h, math.h) com do C++ (iostream), está programando em C ou C++?

 

E também está usando printf e scanf junto com cin e cout, se vai programar em C++ é melhor usar os recursos do C++ (cin e cout).

 

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    float R, Q, qmin, massa, c, deltat, tinicial, tfinal, Ql, l, K, A, e, h, tau, pressao, deltav, vinicial, vfinal, deltau, uinicial, ufinal, deltah, hinicial, hfinal;
    int calculo, calculo_r, cont=0, i=0;

    int escala;
    float rankine, celsius, fht, kelvin;

    do {
        printf("\n____________ Termodinamica ____________\n");
        printf("\n  (Sistema Internacional de Unidades - Equacoes com precisao de 2 Casas Decimais)\n");
        printf("\n\n------------ Menu ------------\n\n");
        printf("1 - Transferencia de Escalas Termometricas\n\n");
        printf("2 - Calor Sensivel\n\n");
        printf("3 - Calor Latente\n\n");
        printf("4 - Transferencia de Calor - Parede Plana (Lei de Fourier)\n\n");
        printf("5 - Transferencia de Calor - Fluxo Fluido (Lei de Newton)\n\n");
        printf("6 - Trabalho sob Pressao Constante\n\n");
        printf("7 - Energia Interna\n\n");
        printf("8 - Entalpia\n\n");
        printf("9 - Transferencia de Calor por Resistencias Associadas:\n\n");
        printf("0 - Sair do Programa\n");
        printf("\n\nDigite o numero da Equacao que deseja calcular:  \n");
        scanf("%d", &calculo);
        //Para scanf
        //{
        //%s=pra string
        //%d ou %i = pra numeros inteiros [no printf]
        //%d=somente numeros inteiros no scanf
        //%i=numeros decimais, octais e hexadecimais no scanf
        //%f=pra float
        //}

        if(calculo==1)
        {
            do {
                printf("Conversao de Escalas Termometricas\n\n\n");
                printf("\n1. Rankine\n2. Celsius\n3. Fahrenheit\n4. Kelvin\n0.Voltar\n\n");
                //°R=(°C+273,15)*1,8
                //°R=KELVIN P/ RANKINE
                //°R=°F+459,67
                //°C=K-273
                //°C=(°F-32)/1,8
                //°C=(°R-491,67)/1,8
                //K=°C+273
                //K=(((°F-32)/9)*5)+273
                //K=RANKINE P/ KELVIN
                //°F=(1,8*C)+32
                //°F=(((K-273)/5)*9)+32
                //°F=RANKINE P/ FAHRENHEIT
                calculo=0;
                printf("Digite o numero da Escala que deseja converter: \n");
                scanf("%d", &escala);
                else if(escala==1)
                {
                    printf("\n\nEscala Rankine\n\n");
                    printf("\n\n\nDigite o valor da Temperatura em R: \n");
                    scanf("%f", &rankine);
                    celsius=(rankine-491,67)/1,8;
                    fht= 1+1;
                    kelvin=1+1;
                    printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, kelvin);
                    escala=0;

                }
                else if(escala==2)
                {
                    printf("\n\nEscala Celsius\n\n");
                    printf("\n\n\nDigite o valor da Temperatura em °C: \n");
                    scanf("%f", &celsius);
                    rankine=1+1;
                    fht=1+1;
                    kelvin=1+1;
                    printf("\n\nO Valor da Temperatura em °C, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", rankine, fht, kelvin);
                    escala=0;

                }
                else if(escala==3)
                {
                    printf("\n\nEscala Fahrenheit\n\n");
                    printf("\n\n\nDigite o valor da Temperatura em °F: \n");
                    scanf("%f", &fht);
                    celsius=1+1;
                    rankine=1+1;
                    kelvin=1+1;
                    printf("\n\nO Valor da Temperatura em °F, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, rankine, kelvin);
                    escala=0;

                }
                else if(escala==4)
                {
                    printf("\n\nEscala Kelvin\n\n");
                    printf("\n\n\nDigite o valor da Temperatura em K: \n");
                    scanf("%f", &kelvin);
                    celsius=1+1;
                    fht=1+1;
                    rankine=1+1;
                    printf("\n\nO Valor da Temperatura em R, equivale a:\n%2.2f°C\n%2.2f°F\n%2.2fK", celsius, fht, rankine);
                    escala=0;

                }
                if(escala != 0) {
                    printf("\nDigite 0 para voltar ao menu principal ou 1 para continuar\n");
                    scanf("%d", &escala);
                }

            } while(escala!=0);
        }

        else if(calculo==2)
        {
            printf("Calor Sensivel\n\n\n");
            //Q=m*c*ΔT
            printf("\nDigite o valor da Massa (em gramas):  ");
            scanf("%f", &massa);
            printf("\nDigite o valor do calor especifico da substancia (em cal/g°C):  ");
            scanf("%f", &c);
            printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
            scanf("%f", &tinicial);
            printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
            scanf("%f", &tfinal);
            deltat=tfinal-tinicial;
            Q=massa*c*deltat;

            printf("\n\n\nO valor da Quantidade de Calor Sensivel e %2.2f cal", Q);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==3)
        {
            printf("Calor Latente\n\n\n");
            //Ql=m*L
            printf("\nDigite o valor da massa (em gramas): ");
            scanf("%f", &massa);
            printf("\nDigite o valor da Constante de proporcionalidade (em cal/g): ");
            scanf("%f", &l);
            Ql=massa*l;
            printf("\n\n\nO valor da Quantidade de Calor Latente e %2.2f cal", Ql);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar:\n");
            scanf("%d", &calculo);

        }

        else if(calculo==4)
        {
            printf("Lei de Fourier - Transferencia de Calor [Parede Plana]\n\n\n");
            //q=(K*A*ΔT)/e
            printf("\nDigite o valor da Constante (em W/m.K): ");
            scanf("%f", &K);
            printf("\nDigite o valor da Area (em metros quadrados): ");
            scanf("%f", &A);
            printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
            scanf("%f", &tinicial);
            printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
            scanf("%f", &tfinal);
            printf("\nDigite o valor da Espessura (em metros): ");
            scanf("%f", &e);
            deltat=tfinal-tinicial;
            qmin=(K*A*deltat)/e;
            printf("\n\n\nO valor da taxa de Transferencia de calor por Conducao e %2.2f Watts", qmin);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==5)
        {
            printf("Lei de Newton - Transferencia de Calor [Fluxo Fluido]\n\n\n");
            //q=h*A*ΔT
            printf("\nDigite o valor da Constante (em W/m^2.K): ");
            scanf("%f", &h);
            printf("\nDigite o valor da Area (em metros): ");
            scanf("%f", &A);
            printf("\nDigite o valor da Temperatura Inicial (em °C ou K): ");
            scanf("%f", &tinicial);
            printf("\nDigite o valor da Temperatura Final (em °C ou K): ");
            scanf("%f", &tfinal);
            deltat=tfinal-tinicial;
            qmin=h*A*deltat;
            printf("\n\n\nO valor do Coeficiente de Conveccao e %2.2f Watts", qmin);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==6)
        {
            printf("Trabalho sob Pressao Constante\n\n\n");
            //τ=P*ΔV
            printf("\nDigite o valor da Pressao (em Pascal): ");
            scanf("%f", &pressao);
            printf("\nDigite o valor do Volume inicial (em metro cubico): ");
            scanf("%f", &vinicial);
            printf("\nDigite o valor do Volume final (em metro cubico): ");
            scanf("%f", vfinal);
            deltav=vfinal-vinicial;
            tau=pressao*deltav;
            printf("\n\n\nO Trabalho realizado foi de %2.2f Joule", tau);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==7)
        {
            printf("Energia Interna\n\n\n");
            //ΔU=Q-τ
            printf("\nDigite o valor do Calor (em Joule): ");
            scanf("%f", &Q);
            printf("\nDigite o valor do Trabalho (em Joule): ");
            scanf("%f", &tau);
            deltau=Q-tau;
            printf("\n\n\nO Valor da Variacao de Energia Interna Interna e igual a %2.2f Joule", deltau);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==8)
        {
            printf("Entalpia\n\n\n");
            //ΔH=ΔU-τ
            printf("Digite o Valor da Energia Inicial (em Joule): ");
            scanf("%f", &uinicial);
            printf("\nDigite o valor da Energia Final (em Joule): ");
            scanf("%f", &ufinal);
            printf("Digite o valor do Trabalho (em Joule): ");
            scanf("%f", &tau);
            deltau=ufinal-uinicial;
            deltah=deltau-tau;
            printf("\n\n\nO Valor da Variacao da Entalpia e igual a %2.2f Joule", deltah);
            printf("\nDigite 0 para sair ou qualquer outro numero para continuar\n");
            scanf("%d", &calculo);

        }
        else if(calculo==9)
        {
            do {
                printf("Transferencia de Calor por Resistencias Associadas\n\n\n");
                //Resistência Térmica Parede Plana: R=e/(K*A)
                //Resistência Térmica Fluxo: R=1/(h*A)
                //Varias Resistências em Série: q(n)=(ΔT(n))/Rt
                //Rt=Somatorio das Resistencias: Σ R(n)
                //Varias Resistências em Paralelo: q(n)=(ΔT(n))/(1/(Rt)
                //(1/Rt)=Somatorio do Inverso das Resistencias: Σ (1/R(n))
                printf("1. Resistencia Termica Parede Plana\n\n");
                printf("2. Resistencia Termica Fluxo\n\n");
                printf("3. Varias Resistencias em Serie\n\n");
                printf("4. Varias Resistencias em Paralelo\n\n");
                printf("0. Voltar\n\n");
                printf("Digite o numero da Equacao que deseja Calcular:\n");
                scanf("%d", &calculo_r);
                if(calculo_r==1)
                {
                    printf("\n\nResistencia Termica Parede Plana\n\n\n");
                    //R=e/(K*A)
                    printf("\nDigite o valor da Espessura (em metros): ");
                    scanf("%f", &e);
                    printf("\nDigite o valor da Condutividade Termica (em W/m.K): ");
                    scanf("%f", &K);
                    printf("\nDigite o valor da Area (em metros quadrados): ");
                    scanf("%f", &A);
                    R=(e/(K*A));
                    printf("\n\nO valor da Resistencia e: %2.2f K/W", &R);
                    //calculo_r=0;


                }
                else if(calculo_r==2)
                {
                    printf("\n\nResistencia Termica Fluxo\n\n\n");
                    //R=1/(h*A)
                    printf("\nDigite o valor da Constante (em W/m^2.K) ");
                    scanf("%f", &h);
                    printf("\nDigite o valor da Area (em metros quadrados): ");
                    scanf("%f", &A);
                    R=1/(h*A);
                    printf("\n\nO valor da Resistencia e: %2.2f K/W", &R);
                    //calculo_r=0;

                }
                else if(calculo_r==3)
                {
                    int i, num_r;
                    float Rt=0;
                    printf("\n\nVarias Resistencias Associadas em Serie\n\n\n");
                    //q=(ΔT)/R(n)
                    printf("\nDigite o Numero de Resistencias que estão associadas em Serie: ");
                    scanf("%d", &num_r);
                    float R[num_r];
                    Rt=0;
                    for(i=1; i<=num_r; i++) {
                        printf("\n\nInsira o valor da Resistencia (em K/W):\n");
                        cin >> R[i];
                        Rt=Rt+(R[i]);
                    }
                    printf("\nDigite o valor da Temperatura Inicial (em Kelvin): ");
                    cin >> tinicial;
                    printf("\nDigite o valor da Temperatura Final (em Kelvin): ");
                    cin >> tfinal;
                    deltat=tfinal-tinicial;
                    qmin=(deltat)/(Rt);
                    cout << "\n\nO valor do q e:" << qmin << " Watts" << "\n";
                    //calculo_r=0;

                }
                else if(calculo_r==4)
                {
                    int i, num_r;
                    float Rt=0;
                    printf("\n\nVarias Resistencias Associadas em Paralelo\n\n\n");
                    //q=((Δt(n))/(1/(R(n)))
                    printf("\nDigite o Numero de Resistencias que estão associadas em Paralelo: ");
                    scanf("%d", &num_r);
                    float R[num_r];
                    Rt=0;
                    for(i=1; i<=num_r; i++) {
                        printf("\n\nInsira o valor da Resistencia (em K/W):\n");
                        cin >> R[i];
                        Rt=Rt+(1/(R[i]));
                    }
                    printf("\nDigite o valor da Temperatura Inicial (em Kelvin): ");
                    cin >> tinicial;
                    printf("\nDigite o valor da Temperatura Final (em Kelvin): ");
                    cin >> tfinal;
                    deltat=tfinal-tinicial;
                    qmin=(deltat)/(Rt);
                    cout << "\n\nO valor do q e:" << qmin << " Watts" << "\n";
                    //calculo_r=0;

                }
                if (calculo_r != 0) {
                    printf("\nDigite 0 para voltar ao menu principal ou 1 para continuar\n");
                    scanf("%d", &calculo_r);
                }
            } while (calculo_r != 0);
        }
    } while (calculo != 0);

    return 0;
}

 

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

×