fireands

acumulador

2 posts in this topic

Boa Noite,como iniciante em programação estou tendo dificuldade em concluir um programa de hidrulica que consistiria em: através dos dados inseridos o mesmo calcularia o valor do diametro "Dp", o padronizaria em um valor comercial "dpad" e em um diametro para singularidades(curva, cotovelos, etc), "dsing", porém para cada diametro "dsing" e para cada singularidade correspondera a uma perda "s"(em unidade de comprimento cm), as singularidades e o numero de vezes em que elas aparecem dispostas em um menu.O problema ocorre é o seguinte: todo a singularidade escolhida deve retornar um valor "s" em cm que deve ser multiplicado por quantas vezes essa singularidade aparece (questão 2),e esse valor deve ser acumulado em uma variavel e em caso se deseje relatar mais alguma singularidade (questão 3),e o processo deve se repetir, e se somar ao resultado anterior, para posteriormente ser usado para outro calculo.Para resolver bastaria que eu colocasse o algoritimo "L2=L2+(ns*s);"dentro da chave do while porem encontrei outro problema L2 retorna um valor de erro pois o valor de s só será calculado no final do programa...se o colocar fora do while, o algoritimo so retorna o ultimo valor de "s" enfim da errado...., ja pensei em quebrar o programa em funções, porem como o programa funciona em sequencia o progrma principal teria que expor valores tenho como fazer isso? Peço ajuda; não tenho urgencia alguma porem gostaria que se possivel me dessem um retorno.

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

int main(void)
{
   int dsing2, sing, s;






   int dec;

   float PN, Ptb, Qmax, L1, visc, VP, Dp, dpad, ns, dsing, Re, Fa, AP, lt, L2, L3;

   printf("INSIRA O VALOR DA PRESAO DE TRABALHO DO CIRCUITO (EM Bar):\n");
   scanf("%f", &Ptb);

   printf("INSIRA O VALOR DA PRESSAO NOMINAL DO CIRCUITO (EM Bar):\n");
   scanf("%f", &PN);

   printf("INSIRA O VALOR DA VAZAO MAXIMA DO SISTEMA (EM l/min):\n");
   scanf("%f", &Qmax);


   printf("INSIRA O COMPRIMENTO DO TRECHO RETO DO CIRCUITO (EM METROS):\n");
   scanf("%f", &L1);

   printf("INSIRA O VALOR DA VISCOSIDADE DO MATERIAL (EM STOKES):\n");
   scanf("%f", &visc);

   printf("nnnOBSERVE O MENU DE SINGULARIDADES ABAIXO:\n");
   printf("1- Cotovelo 90 R. longo 8- Te de passagem direta \n");
   printf("2- Cotovelo 90 R. medio 9- Te de saida de lado \n");
   printf("3- Cotovelo 90 R. curto 10- Te de saida bilateral \n");
   printf("4- Cotovelo 45 11- Registro de Gaveta \n");
   printf("5- Curva 90 R. longo 12- Registro de Globo \n");
   printf("6- Curva 90 R. curto 13- Registro de Angulo \n");
   printf("7- curva 45 14- Valvula de Pe e crivo \n");


   while (dec != 2) {
printf("DIGITE (UMA POR VEZ) O NUMERO CORRESPONDENTE NO MENU A SINGULARIDADE ENCONTRADA NO CIRCUITO EM QUESTAO:\n");
scanf("%d", &sing);
printf("DIGITE O NUMERO DE VEZES EM QUE A SINGULARIDADE SELECIONADA APARECE NO CIRCUITO:\n");
scanf("%f", &ns);
printf("DESEJA RELATAR MAIS ALGUMA SINGULARIDADE (1) SIM , (2) não:\n");
scanf("%d", &dec);

   }



   VP = (121.65) * (pow(PN, (0.30303)));
   Dp = sqrt((Qmax / (0.015 * VP * (3.14))));





// padronização do diametro encontrado e dos diametros comerciais


   if (Dp >= 0 && Dp <= 0.4)
dpad = 0.4;
   if (Dp >= 0.4 && Dp <= 0.5)
dpad = 0.5;
   if (Dp >= 0.5 && Dp <= 0.6)
dpad = 0.6;
   if (Dp >= 0.6 && Dp <= 0.64)
dpad = 0.64;
   if (Dp >= 0.64 && Dp <= 0.8)
dpad = 0.8;
   if (Dp >= 0.8 && Dp <= 0.95)
dpad = 0.95;
   if (Dp >= 0.95 && Dp <= 1.00)
dpad = 1.00;
   if (Dp >= 1.00 && Dp <= 1.2)
dpad = 1.2;
   if (Dp >= 1.2 && Dp <= 1.27)
dpad = 1.27;
   if (Dp >= 1.27 && Dp <= 1.4)
dpad = 1.4;
   if (Dp >= 1.4 && Dp <= 1.5)
dpad = 1.5;
   if (Dp >= 1.5 && Dp <= 1.6)
dpad = 1.6;
   if (Dp >= 1.6 && Dp <= 1.8)
dpad = 1.8;
   if (Dp >= 1.8 && Dp <= 1.9)
dpad = 1.9;
   if (Dp >= 1.9 && Dp <= 2.0)
dpad = 2.0;
   if (Dp >= 2.0 && Dp <= 2.2)
dpad = 2.2;
   if (Dp >= 2.2 && Dp <= 2.5)
dpad = 2.5;
   if (Dp >= 2.5 && Dp <= 2.54)
dpad = 2.54;
   if (Dp >= 2.54 && Dp <= 2.8)
dpad = 2.8;
   if (Dp >= 2.8 && Dp <= 3.00)
dpad = 3.00;
   if (Dp >= 3.00 && Dp <= 3.2)
dpad = 3.2;
   if (Dp >= 3.2 && Dp <= 3.5)
dpad = 3.5;
   if (Dp >= 3.5 && Dp <= 3.8)
dpad = 3.8;
   if (Dp >= 3.8 && Dp <= 4.2)
dpad = 4.2;

   Re = (VP * dpad) / visc;
   Fa = 90 / Re;
// diametros das singularidades

   if (Dp >= 0 && Dp <= 0.32)
dsing = 0.32;
   if (Dp >= 0.32 && Dp <= 0.64)
dsing = 0.64;
   if (Dp >= 0.64 && Dp <= 0.95)
dsing = 0.95;
   if (Dp >= 0.95 && Dp <= 1.27)
dsing = 1.27;
   if (Dp >= 1.27 && Dp <= 1.59)
dsing = 1.59;
   if (Dp >= 1.59 && Dp <= 1.91)
dsing = 1.91;
   if (Dp >= 1.91 && Dp <= 2.22)
dsing = 2.22;
   if (Dp >= 2.2 && Dp <= 2.54)
dsing = 2.54;
   if (Dp >= 2.54 && Dp <= 2.86)
dsing = 2.86;
   if (Dp >= 2.86 && Dp <= 3.18)
dsing = 3.18;
   if (Dp >= 3.18 && Dp <= 3.49)
dsing = 3.49;
   if (Dp >= 3.49 && Dp <= 3.81)
dsing = 3.81;
   if (Dp >= 3.81 && Dp <= 4.13)
dsing = 4.13;
   if (Dp >= 4.13 && Dp <= 4.45)
dsing = 4.45;
   if (Dp >= 4.45 && Dp <= 4.76)
dsing = 4.76;
   if (Dp >= 4.76 && Dp <= 5.08)
dsing = 5.08;
   if (Dp >= 5.08 && Dp <= 5.4)
dsing = 5.4;
   if (Dp >= 5.4 && Dp <= 5.72)
dsing = 5.72;
   if (Dp >= 5.72 && Dp <= 6.04)
dsing = 6.04;
   if (Dp >= 6.04 && Dp <= 6.36)
dsing = 6.36;
   if (Dp >= 6.36 && Dp <= 6.67)
dsing = 6.67;
   if (Dp >= 6.67 && Dp <= 6.99)
dsing = 6.99;

   dsing2 = (dsing * 100);

   printf("o valor de Pn =%.2f\n", PN);
   printf("o valor de ptb =%.2f\n", Ptb);
   printf("o valor de vazao =%.2f\n", Qmax);

   printf("o valor de visc =%.2f\n", visc);
   printf("o valor de vp =%.2f\n", VP);
   printf("o valor de Dp =%.2f\n", Dp);
   printf("o valor de Dpad =%.2f\n", dpad);
   printf("o valor de sing =%d\n", sing);
   printf("o valor de ns =%.2f\n", ns);
   printf("o valor de dec =%d\n", dec);

   printf("o valor de dsing =%.2f\n", dsing);
   printf("o valor de Comprimento total =%.2f\n", L2);
   printf("o valor de Comprimento singulardade =%.2f\n", L3);
   printf("o valor do trecho reto =%.2f\n", L1);
   printf("o valor de dsing2 =%d\n", dsing2);
   printf("o valor de Re =%.2f\n", Re);
   printf("o valor de Fa =%.2f\n", Fa);
   printf("o valor de Ap =%.2f\n", AP);

   printf("o valor de s =%.2f\n", s);


   system("pause");
   return (0);
}

int singularidade(void)
{
   int sing, dsing2;
   float s;
//singularidade
   printf("o valor de dsing2 =%d\n", dsing2);
   switch (dsing2) {
   case 32:
{
    switch (sing) {
    case 1:
 s = 10.01;
 break;
    case 2:
 s = 10.01;
 break;
    case 3:
 s = 10.01;
 break;
    case 4:
 s = 10.01;
 break;
    case 5:
 s = 10.01;
 break;
    case 6:
 s = 10.01;
 break;
    case 7:
 s = 10.01;
 break;
    case 8:
 s = 10.01;
 break;
    case 9:
 s = 30.00;
 break;
    case 10:
 s = 30.00;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 s = 80.01;
 break;
    case 13:
 s = 70.00;
 break;
    case 14:
 s = 88.88;
 break;
    };
    break;
};
break;
   case 64:
{
    switch (sing)
    {
    case 1:
 s = 19.99;
 break;
    case 2:
 s = 20.24;
 break;
    case 3:
 s = 30.00;
 break;
    case 4:
 s = 10.01;
 break;
    case 5:
 s = 10.01;
 break;
    case 6:
 s = 19.99;
 break;
    case 7:
 s = 10.01;
 break;
    case 8:
 s = 30.00;
 break;
    case 9:
 s = 50.01;
 break;
    case 10:
 s = 50.01;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 13:
 s = 30.00;
 break;
    case 14:
 s = 230.00;
 break;
    };
    break;
};
break;
   case 95:
{
    switch (sing) {
    case 1:
 s = 19.99;
 break;
    case 2:
 s = 30.00;
 break;
    case 3:
 s = 40.01;
 break;
    case 4:
 s = 19.99;
 break;
    case 5:
 s = 19.99;
 break;
    case 6:
 s = 19.99;
 break;
    case 7:
 s = 19.99;
 break;
    case 8:
 s = 19.99;
 break;
    case 9:
 s = 80.01;
 break;
    case 10:
 s = 80.01;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 13:
 s = 100.00;
 break;
    case 14:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
    };
    break;
};
break;
   case 127:
{
    switch (sing)
    {
    case 1:
 s = 30.00;
 break;
    case 2:
 s = 40.01;
 break;
    case 3:
 s = 50.01;
 break;
    case 4:
 s = 19.99;
 break;
    case 5:
 s = 19.99;
 break;
    case 6:
 s = 30.00;
 break;
    case 7:
 s = 19.99;
 break;
    case 8:
 s = 30.00;
 break;
    case 9:
 s = 100.00;
 break;
    case 10:
 s = 100.00;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 13:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 14:
 s = 359.99;
 break;
    };
    break;
};
break;
   case 159:
{
    switch (sing)
    {
    case 1:
 s = 30.00;
 break;
    case 2:
 s = 50.01;
 break;
    case 3:
 s = 59.99;
 break;
    case 4:
 s = 19.99;
 break;
    case 5:
 s = 19.99;
 break;
    case 6:
 s = 30.00;
 break;
    case 7:
 s = 19.99;
 break;
    case 8:
 s = 30.00;
 break;
    case 9:
 s = 10.01;
 break;
    case 10:
 s = 119.99;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 13:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 14:
 s = 459.99;
 break;
    };
    break;
};
break;
   case 191:

{
    switch (sing) {
    case 1:
 s = 40.01;
 break;
    case 2:
 s = 59.99;
 break;
    case 3:
 s = 70.00;
 break;
    case 4:
 s = 30.00;
 break;
    case 5:
 s = 30.00;
 break;
    case 6:
 s = 40.01;
 break;
    case 7:
 s = 19.99;
 break;
    case 8:
 s = 40.01;
 break;
    case 9:
 s = 140.00;
    case 10:
 s = 140.01;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 s = 670.00;
 break;
    case 13:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 14:
 s = 599.99;
 break;
    };
    break;
};
break;
   case 222:

{
    switch (sing) {
    case 1:
 s = 40.01;
 break;
    case 2:
 s = 59.99;
 break;
    case 3:
 s = 70.00;
 break;
    case 4:
 s = 30.00;
 break;
    case 5:
 s = 30.00;
 break;
    case 6:
 s = 40.01;
 break;
    case 7:
 s = 40.01;
 break;
    case 8:
 s = 40.01;
 break;
    case 9:
 s = 152.97;
 break;
    case 10:
 s = 150.01;
 break;
    case 11:
 s = 10.01;
 break;
    case 12:
 s = 740.00;
 break;
    case 13:
 s = 410.01;
 break;
    case 14:
 s = 640.00;
 break;
    };
    break;
};
break;
   case 254:
{
    switch (sing) {
    case 1:
 s = 50.01;
 break;
    case 2:
 s = 70.00;
 break;
    case 3:
 s = 80.01;
 break;
    case 4:
 s = 40.01;
 break;
    case 5:
 s = 30.00;
 break;
    case 6:
 s = 50.01;
 break;
    case 7:
 s = 19.99;
 break;
    case 8:
 s = 50.01;
 break;
    case 9:
 s = 170.00;
 break;
    case 10:
 s = 170.00;
 break;
    case 11:
 s = 23.14;
 break;
    case 12:
 s = 819.48;
 break;
    case 13:
 s = 459.99;
 break;
    case 14:
 s = 730.00;
 break;
    };
    break;
};
break;
   case 700:
{
    switch (sing) {
    case 1:
 s = 40.01;
 break;
    case 2:
 s = 140.00;
 break;
    case 3:
 s = 140.00;
 break;
    case 4:
 s = 10.01;
 break;
    case 5:
 s = 670.00;
 break;
    case 6:
 s = 436.19;
 break;
    case 7:
 s = 559.99;
 break;
    case 8:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 9:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 10:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 11:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 12:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 13:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    case 14:
 printf("o valor da perda por singularidade solicitado não consta do arquivo\n");
 break;
    };
    break;
};
break;

   }










   return dsing2, sing, s;
}

EDITADO: INDENTAÇÃO

Edited by Astromech

Share this post


Link to post
Share on other sites

Amigo,

Seu código está imenso...

Mas me responda: é um exercício de faculdade? Ou você tá querendo fazê-lo pra aprender mesmo?

Você tem o enunciado original desse exercício?

Não garanto resultados, garanto apenas que posso tentar lhe ajudar.

abraços

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.