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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Ayuda Codigo C++ en: 26 Noviembre 2014, 23:55 pm
Pues tengo el problema de que cuando ejecuto el codigo todo sale bn, exepto la parte donde me dice las clases no asignadas, en la varaible edif.clasesasignadas lo uso para verificar si la clases fue o no asignada pero no funciona correctamente el resto si funciona bn!

Gracias por cualquier ayuda que me puedan brindar!

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. typedef struct edif{
  9. int edificio [5][5]={{21,35,36,41,20},{22,34,30,28,40},{25,31,27,25,36},{33,32,26,24,41},{37,23,29,37,38}};
  10. /*Se llena la matriz con valores estaticos para el programa */
  11. int salonvacios[5][5]; //Variable para saber que salones ya se encuentra ocupados.
  12. int clases[25] = { }; //Variable para guardar tamano de clases.
  13. int clasesasignadas[25]; //Varibale para saber clases no asignadas.
  14. int tamigual; //Variable para asignaciones iguales.
  15. int tam05=0; //Varibale para asignaciones diferencia 5.
  16. int tam10=0; //Varibale para asignaciones diferencia 10.
  17. int tam15=0; //Varibale para asignaciones diferencia 15.
  18. int tam20=0; //Varibale para asignaciones diferencia 20.
  19. int salonesnoasignados=0; //Contador Salones no asigandos.
  20. int clasesnoasignado=0; //Contador Clases no asignadas.
  21. int salonesasignados=0; //Contador Salones asigandos.
  22. int clasesasignado=0;  // Contador clases asignadas
  23. int temp0 = 0; //Variable temporal
  24. int temp1 = 0; //Variable temporal
  25. int temp2 = 0; //Variable temporal
  26. int temp3 = 0;
  27. };
  28.  
  29. edif edif;
  30.  
  31. int main(){
  32. srand(time(NULL));
  33. for (int q=0;q<25;q++){
  34. edif.clases[q]=20+(rand()%41); // Asigna valores al azar desde 20 a 60 para el numero de personas por clase
  35. /*Si el numero de peresona se predefine en la estructura eliminar esta linea*/
  36. edif.clasesasignadas[q] = 0;
  37. /*Se asigan valores en 0 en dado caso que que la direccion de memoria ya tenga un dado por OS*/
  38. cout << edif.clases[q] << endl;
  39. }
  40. for(int q =0; q<5; q++){
  41. for(int w=0; w<5; w++){
  42. edif.salonvacios[q][w] = 0;
  43. /*Se asigan valores en 0 en dado caso que que la direccion de memoria ya tenga un dado por OS*/
  44. }
  45. }
  46. for(int q=0;q<25;q++){
  47. edif.temp0=edif.clases[q];
  48. for(int w=0;w<5;w++){
  49. for(int e=0;e<5;e++){
  50. if((edif.temp0 == edif.edificio[w][e]) && (edif.salonvacios[w][e] == 0) ){
  51. edif.salonvacios[w][e] = 1;
  52. edif.clasesasignadas[q] = 1;
  53. edif.salonesasignados++;
  54. edif.clasesasignado++;
  55. edif.tamigual++;
  56. break;
  57. }
  58. edif.temp1 = edif.temp0 + 5;
  59. if((edif.temp1 > edif.edificio[w][e]) && (edif.temp0 < edif.edificio[w][e]) && (edif.salonvacios[w][e] == 0) ){
  60. edif.salonvacios[w][e] = 1;
  61. edif.clasesasignadas[q] = 1;
  62. edif.salonesasignados++;
  63. edif.clasesasignado++;
  64. edif.tam05++;
  65. break;
  66. }
  67. edif.temp1 = edif.temp0 + 10;
  68. if((edif.temp1 > edif.edificio[w][e]) && (edif.temp0 < edif.edificio[w][e]) && (edif.salonvacios[w][e] == 0) ){
  69. edif.salonvacios[w][e] = 1;
  70. edif.clasesasignadas[q] = 1;
  71. edif.salonesasignados++;
  72. edif.clasesasignado++;
  73. edif.tam10++;
  74. break;
  75. }
  76. edif.temp1 = edif.temp0 + 15;
  77. if((edif.temp1 > edif.edificio[w][e]) && (edif.temp0 < edif.edificio[w][e]) && (edif.salonvacios[w][e] == 0)){
  78. edif.salonvacios[w][e] = 1;
  79. edif.clasesasignadas[q] = 1;
  80. edif.salonesasignados++;
  81. edif.clasesasignado++;
  82. edif.tam15++;
  83. break;
  84. }
  85. edif.temp1 = edif.temp0 + 20;
  86. if((edif.temp1 > edif.edificio[w][e]) && (edif.temp0 < edif.edificio[w][e]) && (edif.salonvacios[w][e] == 0) ){
  87. edif.salonvacios[w][e] = 1;
  88. edif.clasesasignadas[q] = 1;
  89. edif.salonesasignados++;
  90. edif.clasesasignado++;
  91. edif.tam20++;
  92. break;
  93. }
  94. }
  95. }
  96. cout
  97. << "El numero de salones del edificion son 25" << endl
  98. << "El numero de clases a asignar son de 25" << endl
  99. << "Numero de salones Asignados" << endl
  100. << edif.salonesasignados << endl
  101. << "Numero de Salones Libres" << endl
  102. << 25-edif.salonesasignados << endl
  103. << "Numero de clases Asignadas" << endl
  104. << edif.clasesasignado << endl
  105. << "Igual" << endl
  106. << edif.tamigual << endl
  107. << "Diferencia de 5" << endl
  108. << edif.tam05 << endl
  109. << "Diferencia de 10" << endl
  110. << edif.tam10 << endl
  111. << "Diferencia de 15" << endl
  112. << edif.tam15 << endl
  113. << "Diferencia de 20" << endl
  114. << edif.tam20 << endl
  115. << "Numero de Salones No asignados" << endl
  116. << 25-edif.salonesasignados << endl
  117. << "Numero de clases no Asignadas" << endl
  118. << 25-edif.clasesasignado << endl;
  119.  
  120. for (int q=0;q<25;q++){
  121. if(edif.clasesasignadas[q] == 0){
  122. edif.clasesnoasignado++;
  123. cout
  124. << "\t\t La clase numero " <<  "   " << q << "no fue asignada. Tiene un valor de" <<  "   "<< edif.clases[q] << endl;
  125. }
  126. }
  127. for (int q=0;q<5;q++){
  128. for (int w=0;w<5;w++){
  129. if(edif.salonvacios[q][w] == 0){
  130. edif.salonesnoasignados++;
  131. cout
  132. << "\t\t El Salon numero " <<  "   " << q << "- " << w << "no fue asignado. Tiene un valor de" <<  " " << edif.edificio[q][w] << endl;
  133.  
  134. }
  135. }
  136. }
  137.  
  138. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines