elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Por qué mi programa crashea? en: 11 Octubre 2016, 17:57 pm
Hola estoy construyendo un nuevo programa y no entiendo por qué crashea, ya que es un programa muy simple. No se si tiene que ver con un problema a la hora de programar o es un problema del compilador, pero al ejecutar obtengo el mensaje "process exited with return value 3221226356". Si alguien me puede ayudar.

Código:

Código
  1. //New_problem_1
  2.  
  3. #include<iostream>
  4. #include<vector>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. const double rho1=1500.0, rho2=1600.0, rho3=1900.0, rho4=2500.0; //densities(kg/m3)
  10. const double cp1=750.0, cp2=770.0, cp3=810.0, cp4=930.0; //cp (J/kg*K)
  11. const double k1=170.0, k2=140.0, k3=200.0, k4=140.0; //thermic_conductivity (W/m*K)
  12. const double alpha=9.0, Tg=33+273; //heat_transfer_coefficient_and_temperature_of_external_gas
  13. const double q_top=60.0; //Q_flow_on_the_top_considered_outgoing
  14. double k12=0.0, k13=0.0, k32=0.0, k24=0.0, k34=0.0; //heat_transfer_coefficients_internal_borders
  15. const double t_step=1.0; //time_discretitzation
  16. const double L=1.1, H=0.8; //geometric_definition
  17. const double T0=281.0; //initial_temperature
  18. const int Nx=11, Ny=8; //control_volumes_(horitzontal_vertical)
  19. const double Ax=L/Nx, Ay=H/Ny; //nodes_separation
  20.  
  21. int main(){
  22.  
  23. vector<double> Xnode(Nx+1,0.0), Ynode(Ny+1,0.0); //nodes_position_vectors
  24. vector<vector<double> > T_bef_calc(Nx+1,vector<double>(Ny+1,0.0)); //T(n)_calculated
  25. vector<vector<double> > T_now_est(Nx+1,vector<double>(Ny+1,0.0)); //T(n+1)_estimated
  26. vector<vector<double> > T_now_calc(Nx+1,vector<double>(Ny+1,0.0)); //T(n+1)_calculated
  27.  
  28. //geometric_definition
  29.  
  30. Xnode[0]=0;
  31. Xnode[1]=Ax/2;
  32. Xnode[Nx+1]=L;
  33. for (int i=2;i<=Nx+1;i++){
  34. Xnode[i]=Xnode[i-1]+Ax;
  35. }
  36.  
  37. Ynode[0]=0;
  38. Ynode[1]=Ay/2;
  39. Ynode[Ny+1]=H;
  40.  
  41. for (int i=2;i<=Ny+1;i++){
  42. Ynode[i]=Ynode[i-1]+Ay;
  43. }
  44.  
  45. //Initialitzation_of_temperatures
  46.  
  47. for (int i=0;i<=1;i++){
  48. for (int j=0; j<=1; j++){
  49. T_bef_calc[i][j]=T0;
  50. }
  51. }
  52.  
  53. return 0;
  54. }


Mod: Los códigos deben ir en etiquetas GeSHi
2  Programación / Programación C/C++ / Problema de acceso a una condición en: 6 Octubre 2016, 01:08 am
Muy Buenas,

Necesito ayuda con un error de c++ que no sé resolver.
El caso es que estoy realizando un programa para estudiar la transferencia de calor por conducción en una placa 2D, con lo que necesito construir una malla sobre la placa, asignando coordenadas a cada nodo y cara. El hecho es que el programa funciona bien hasta que la iteración llega a la coordenada y=0.6 y no logro entender por qué, ya que, aunque cuando reviso el vector donde guardo las coordenadas y (y_face) el sexto valor es igual a 0.6, el programa no me deja acceder a sentencias condicionales dónde y==0.6.

A continuación os adjunto la parte del código que estoy usando para revisar el error y ni siquiera con un programa tan sencillo logro acceder a la condición y==0.6:

// programa_2


Código
  1. #include<iostream>
  2. #include<stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(void){
  7. int N_h=11, N_v=8;
  8. double y_face[N_v], y_node[N_v+1]; //faces_and_nodes_coordinates
  9. double L=1.1, H=0.8; //geometric_definition
  10. int i=0;
  11.  
  12.  
  13.  
  14. cout<<"y_face:"<<"\n";
  15. for (i=0;i<=N_v;i++){
  16. y_face[i]=(H/N_v)*i;
  17.        cout<<y_face[i]<<endl;
  18.    }
  19.    cout<<"y_node:"<<"\n";
  20.    for (i=1;i<=N_v;i++){
  21.        y_node[i]=(y_face[i-1]+y_face[i])/2;
  22.        cout<<y_node[i]<<endl;
  23.    }
  24.    y_node[0]=0; //first node y coordinates
  25.    y_node[N_v+1]=H; //last node y coordinates
  26. if (y_face[6]==0.6){
  27. cout<<"hola";
  28. }
  29.  
  30. }
  31.  
  32.  
Si me pudierais ayudar a descubrir por qué os estaría muy agradecido

y_face:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
y_node:
0.05
0.15
0.25
0.35
0.45
0.55
0.65
0.75

--------------------------------
Process exited with return value 0
Press any key to continue . . .

Esto es lo que obtengo, como veis a pesar de que el sexto valor del vector y_face es 0.6, el programa no muestra la palabra "hola" por pantalla...

MOD: No hacer doble post. Usar etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines