Ir para conteúdo

Foto

acumulador


  • Por favor, faça o login para responder
1 resposta neste tópico

#1
fireands

fireands

    Novato

  • Novato
  • Pip
  • 13 posts
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

Editado por Astromech, 19 julho 2011 - 22:57.


#2
ofernandofilo

ofernandofilo

    Membro

  • Membro
  • PipPip
  • 100 posts
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




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos