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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Problemas con mostrar un registro en: 11 Abril 2020, 04:24 am
gracias, ya he podido arreglar el programa. Sobre el problema, lo hice con el depurador y vi que, al poner un numero en el for, al menos el ciclo si terminaba, si utilizaba ne, después de usar pun+i, cambiaba el valor de ne y no terminaba, o cambiaba el valor de los string.

En el programa deje solo un puntero en el struct.

Código
  1. struct notas{
  2.  
  3. ...
  4.  
  5. }*pun;
  6.  

y luego en la funcion capt(), puse un arreglo dinamico.

Código
  1. void capt(){
  2. system("pause");
  3. gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne;
  4.  
  5. pun = new notas [ne];
  6.  
  7. for(int i=0;i<ne;i++){
  8. ...
  9. }
  10.  

Ademas, cambie el fflush() con el cin.ignore() y utilice el cin.getline() con los punteros.
2  Programación / Programación C/C++ / Re: Problemas con mostrar un registro en: 10 Abril 2020, 14:16 pm
Gracias.

Ya pude entender mejor donde estaba el problema de los punteros, voy a intentar hacerlo con un array de estructuras, no entiendo muy bien la libreria vector xD.

Lo del problema es que, como el puntero accedia a un memoria que no tenia reservada, me cambiaba algunas variables, por ejemplo.

Código
  1. void capt(){
  2. system("cls");
  3. gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne;
  4. const int ju = ne;
  5.  
  6. for(int i=0;i<ju;i++){
  7. formu();
  8. fflush(stdin);
  9. gt(23,9); gets((pun+i)->cod);
  10. gt(24,11); gets((pun+i)->nom);
  11. gt(26,12); gets((pun+i)->apel);
  12. gt(23,14); cin>>(pun+i)->n1;
  13. gt(23,15); cin>>(pun+i)->n2;
  14.  
  15. (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2;
  16. gt(38,17); cout<<(pun+i)->defi;
  17. system("pause");
  18. }
  19. ne = ju;
  20. }
  21.  

Con ne, la variable para pedir el numero de formularios para el for, como que cambiaba su valor y no salia del for, por eso agregue una constante "const int ju", digamos para solucionarlo y que su valor no cambiara, pero aun asi tambien cambiaba los demas valores.

Ya lo unico que me no entiendo es,  si pongo un numero cualquiera en el for, ya me salen los datos bien. Como ejemplo, pongo que solo se hagan 3 formularios, y eso ya arregla el problema.

Código
  1. void capt(){
  2. system("cls");
  3.  
  4. for(int i=0;i<3;i++){
  5. formu();
  6. fflush(stdin);
  7. gt(23,9); gets((pun+i)->cod);
  8. gt(24,11); gets((pun+i)->nom);
  9. gt(26,12); gets((pun+i)->apel);
  10. gt(23,14); cin>>(pun+i)->n1;
  11. gt(23,15); cin>>(pun+i)->n2;
  12.  
  13. (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2;
  14. gt(38,17); cout<<(pun+i)->defi;
  15. system("pause");
  16. }
  17. }
  18.  
3  Programación / Programación C/C++ / Problemas con mostrar un registro en: 9 Abril 2020, 23:18 pm
Hola, es sobre un problema que estoy teniendo a la hora de mostrar unos datos con punteros, lo que pasa es que uno de los datos que ingreso se "cambia" por un carácter especial o algo así.

Aquí esta parte del código, perdón si esta asi, lo copie rápido.

Código
  1. #include <string.h>
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. void gt(int x, int y){             // -Posicion X y Y en el Programa
  9. HANDLE Manipulador;  //Puntero
  10. COORD Coordenadas; //Coordenadas
  11. Manipulador = GetStdHandle(STD_OUTPUT_HANDLE); //Contenedor del Programa
  12. Coordenadas.X = x; //Posicion en X
  13. Coordenadas.Y = y; //Posicion en Y
  14. SetConsoleCursorPosition(Manipulador,Coordenadas); //Envia el Contenedor y variable para la posicion
  15. }
  16.  
  17. void formu(){
  18. system("cls");
  19. gt(15,9); cout<<"Codigo: ";
  20. gt(15,11); cout<<"Nombres: ";
  21. gt(15,12); cout<<"Apellidos: ";
  22. gt(15,14); cout<<"Nota 1: ";
  23. gt(15,15); cout<<"Nota 2: ";
  24. gt(15,17); cout<<"Su Nota Definitiva es: ";
  25. }
  26.  
  27. struct notas{
  28. char nom[50];
  29. char apel[50];
  30. char cod[50];
  31. float n1, n2;
  32. float defi;
  33. }alu, *pun=&alu;
  34.  
  35. void capt();
  36. void list();
  37. void consul();
  38. int ne;
  39.  
  40. int main(){
  41. char op;
  42. do{
  43. system("cls");
  44. gt(20,10); cout<<"MENU REGISTROS";
  45. gt(22,12); cout<<"1. Capturar.";
  46. gt(22,13); cout<<"2. Consultar registros.";
  47. gt(22,14); cout<<"3. Salir.";
  48.  
  49. gt(23,16); cout<<char(167)<<"Digite un numero: "; op = getch();
  50.  
  51. switch(op){
  52. case '1':
  53. capt();
  54. break;
  55. case '2':
  56. consul();
  57. break;
  58. case '3':
  59. gt(6,18); cout<<"Saliendo...";
  60. Sleep(200);
  61. gt(5,25); exit(1);
  62. break;
  63. default:
  64. gt(6,18); cout<<"Debe digitar un numero del 1 al 3...";
  65. system("pause");
  66. break;
  67. }
  68. }
  69. while(op != '3');
  70. }
  71.  
  72. void capt(){
  73. system("cls");
  74. gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne;
  75. const int ju = ne;
  76.  
  77. for(int i=0;i<ju;i++){
  78. formu();
  79. fflush(stdin);
  80. gt(23,9); gets((pun+i)->cod);
  81. gt(24,11); gets((pun+i)->nom);
  82. gt(26,12); gets((pun+i)->apel);
  83. gt(23,14); cin>>(pun+i)->n1;
  84. gt(23,15); cin>>(pun+i)->n2;
  85.  
  86. (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2;
  87. gt(38,17); cout<<(pun+i)->defi;
  88. system("pause");
  89. }
  90. ne = ju;
  91. }
  92.  
  93. void consul(){
  94. char op;
  95. do{
  96. system("cls");
  97. gt(20,10); cout<<"MENU - Consultas";
  98. gt(22,12); cout<<"1. Listar.";
  99. gt(22,13); cout<<"2. Volver al menu anterior";
  100. gt(22,14); cout<<"3. Salir";
  101.  
  102. gt(23,16); cout<<"Digite un numero: "; op = getch();
  103.  
  104. switch(op){
  105. case '1':
  106. list();
  107. break;
  108. case '2':
  109. gt(6,18); cout<<"Volviendo...";
  110. Sleep(200);
  111. main();
  112. break;
  113. case '3':
  114. gt(6,18); cout<<"Saliendo...";
  115. Sleep(200);
  116. gt(5,25); exit(1);
  117. break;
  118. default:
  119. gt(6,18); cout<<"Digite un numero del 1 al 3...";
  120. system("pause");
  121. break;
  122. }
  123. }
  124. while(op != '4' || op == '2');
  125. system("pause");
  126. }
  127.  
  128. void list(){
  129. system("cls");
  130. fflush(stdin);
  131. if((pun)->defi == 0){
  132. gt(15, 10); cout<<"No se Encontraron Registros...";
  133. }
  134. else{
  135. gt(16,8); cout<<"--- REGISTROS ---";
  136.  
  137. gt(3,10); cout<<"No.";
  138. gt(7,10); cout<<"Codigo";
  139. gt(17,10); cout<<"Nombre";
  140. gt(33,10); cout<<"Apellido";
  141. gt(47,10); cout<<"Nota 1";
  142. gt(57,10); cout<<"Nota 2";
  143. gt(67,10); cout<<"Definitiva";
  144.  
  145. for(int i=0;i<ne;i++){
  146. gt(3,i+12); cout<<i+1;
  147. gt(7,i+12); cout<<(pun+i)->cod;
  148. gt(17,i+12); cout<<(pun+i)->nom;
  149. gt(32,i+12); cout<<(pun+i)->apel;
  150. gt(47,i+12); cout<<(pun+i)->n1;
  151. gt(57,i+12); cout<<(pun+i)->n2;
  152. gt(67,i+12); cout<<(pun+i)->defi;
  153. }
  154. system("pause");
  155. }
  156. }
  157.  

Y asi me queda cuando quiero mostrar los registros.

                --- REGISTROS ---

   No. Codigo    Nombre          Apellido      Nota 1    Nota 2    Definitiva

   1   32GRE     ANDRES         SUR            45        20        32.5
   2   AH3H2     ♥              PEREZ          34        50        42
   3   4H2BG     ESTEBAN        HONZ           45        35        40Presione una tecla para continuar . . .
4  Programación / Desarrollo Web / Como hacer que un usuario haga cambios en una pagina? en: 15 Octubre 2019, 04:15 am
Hola, soy nuevo con lo de Paginas web y me gustaría saber como hacer que un usuario que entra a una pagina, pueda modificar o implementar algo en ella (agregar un texto, foto etc.). ya teniendo conocimiento de como hacer un login y todo eso con php. :-*
5  Programación / Programación C/C++ / Como Guardar Varios elementos en un arreglo? en: 1 Diciembre 2018, 16:25 pm
 :D Hola, Necesito guardar un número de elementos en un arreglo y luego que sean escritos en el programa.

Por ejemplo en un programa que me pase un numero a binario, utilice una sentencia while que me daría cada resultado de la división, Pero ahora quiero es guardar esos resultados en un arreglo.

Código
  1. #include<iostream.h>
  2. #include<conio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(){  //Numero a Binario
  7.    int numero, resto, mostr=0, binario[500], div=2;
  8.    int i=0;
  9.  
  10.    cout <<"\nIngrese el Numero:";
  11.    cin>>numero;
  12.  
  13.    while(numero>=div){
  14.                       mostr = mostr + 1;
  15.                       resto = numero;
  16.  
  17.                       numero = numero / div;
  18.                       resto = resto % div;
  19.  
  20.                       resto = binario[i];
  21.    }
  22.  
  23.    for(int i=0;i<mostr;i++){
  24.            cout<<"\n--------------------------------";
  25.            cout<<"\n"<<binario[i];
  26.    }
  27.  
  28.  
  29. getch();
  30. return 0;
  31. }
  32.  
6  Programación / Programación C/C++ / Re: Medidas de Dispersión. Error en: 12 Octubre 2018, 17:34 pm
:0, Esta Perfecto me siento pendejo pero bn. mi error era que utilizaba una variable int para cada arreglo. Muchas Gracias por ayudarme, es increíble. ;D
7  Programación / Programación C/C++ / Re: Medidas de Dispersión. Error en: 12 Octubre 2018, 15:35 pm
Es crear un programa que realice las medidas de dispersión en datos agrupados, pero como este utiliza dos arreglos, uno para los datos y luego otro para la frecuencia de cada uno. de estos toca sacar el promedio, desviación al cuadrado, de esa desviación multiplicarla por la frecuencia etc. el programa creo que esta bien, pero no se que pasa en la desviación al cuadrado que creo que los datos salen mal
8  Programación / Programación C/C++ / Medidas de Dispersión. Error en: 11 Octubre 2018, 22:44 pm
ya corregí algunas cosas en el arreglo para pedir los valores, pero no se que es lo que podría estar mal en la desviación por la frecuencia.

Código:
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

int main(int argc, char** argv) {
    
    ddouble  numeros[500], numeros2[500], numeros3[500], n;
                                double  fre=0, coef=0, des=0, varia=0, suma=0, media=0, suma2=0;
                               
                               
                                cout <<"\nDigite el Numero de Datos:";
                                cin>>n;
                               
                                for(int i=0, j=0, k=0;i<n && j<n && k<n;i++ && j++ && k++){     
                                               
                                               cout <<"\n-Digite el numero: ";
                                               cin>>numeros[i];
                                               cout <<"\n-Digite la Frecuencia del Dato: ";
                                               cin>>numeros2[j];
                                               
                                               fre = fre + numeros2[j];
                                               
                                               numeros3[k] = numeros[i] * numeros2[j] ;
                                               //cout <<"\n X.F:"<<numeros3[k];
                                               suma = suma + numeros3[k];
                                }
                                media = suma / fre;
                                cout<<"\n Promedio:"<<media;
                               
                                for(int i=0;i<n;i++){
                                        numeros[i]= numeros[i] - media;
                                        numeros[i]= pow(numeros[i],2);
                                        cout<<"\nDesviacion al cuadrado: "<<numeros[i];
                                }
                               
                                for(int i=0, j=0;i<n && j<n;i++ && j++){
                                       numeros2[j] = numeros2[j] * numeros[i];
                                       cout<<"\nDesviacion por la Frecuencia: "<<numeros2[j];
                                       suma2 = suma2 + numeros2[j];
                                }
                               
                                varia = suma / fre;
                                cout<<"\nLa Varianza es: "<<varia;
                               
                                des = sqrt(varia);
                                cout<<"\nLa Desviacion Estandar es: "<<varia;
                               
                                coef = (des*100)/media;
                                cout<<"\nCoeficiente de Variacion: "<<coef;
getch();
return 0;
}
9  Programación / Programación C/C++ / Re: Ayuda en Programa basico sobre Medidas de Dispersion en: 2 Septiembre 2018, 17:22 pm
wow, el problema era que sobrepasaba, entonces si cambio arriba en for(int j=0;j<n-1;j++){    , creo que ya estaría. pero ahora uno de los problemas es el rango que no se como podría seleccionar el dato mayor y dato menor sin seleccionarlos todos.



aunque si en amp =numeros[i-01] cambio i por n me daría error de invalido.


Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
10  Programación / Programación C/C++ / Ayuda en Programa basico sobre Medidas de Dispersion en: 1 Septiembre 2018, 03:58 am
No veo que pueda estar mal, aunque... creo que el problema empieza con el ordenamiento.

Código
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<math.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8.              int l=0;
  9.              double  numeros[500], j, aux, n, deses=0, coef=0, pos = n/2, suma=0, media=0, varia=0, amp=0;
  10.  
  11.              //Amplitud de Variación de los Datos
  12.  
  13.              cout<<"Digite el Numero de Elementos: ";
  14.              cin>>n;
  15.  
  16.              for(int i=0;i<n;i++){
  17.                      cout<<"digite un numero: "<<endl;
  18.                      cin>>numeros[i];
  19.              }
  20.              for(int i=0;i<n;i++){  //Ordenamiento
  21.                               for(int j=0;j<n-1;j++){
  22.                                       if(numeros[j]>numeros[j+1]){
  23.                                                                   aux = numeros[j];
  24.                                                                   numeros[j] = numeros[j+1];
  25.                                                                   numeros[j+1] = aux;
  26.                                                                   }
  27.                                       }
  28.                               }
  29.              for(int i=0;i<n;i++){
  30.              cout<<"Numeros en Orden: ";
  31.              cout<<" - "<<numeros[i]<<endl;
  32.              suma = suma + numeros[i];
  33.              amp =numeros[i-01]-numeros[0];
  34.              }
  35.  
  36.              media = (suma)/(n);
  37.              cout<<"El Rango es: "<<amp<<endl;        
  38.              cout<<"La Media Aritmetica es: "<<media<<endl;
  39.  
  40.              for(int i=0;i<n;i++){
  41.                      numeros[i]= numeros[i]- media;
  42.              cout<<"Desviacion: ";
  43.              cout<<" - "<<numeros[i]<<endl;
  44.              }
  45.  
  46.              for(int i=0;i<n;i++){
  47.                      numeros[i]= pow(numeros[i],2);
  48.              cout<<"Desviacion al Cuadrado: ";
  49.              cout<<" - "<<numeros[i]<<endl;
  50.              suma = suma + numeros[i];
  51.              }
  52.  
  53.              varia = (suma)/(n-1);
  54.              cout<<"Varianza: "<<varia<<endl;
  55.  
  56.              deses = sqrt(varia);
  57.              cout<<"Desviacion Estandar: "<<deses<<endl;
  58.  
  59.              coef = (deses*100)/media;
  60.              cout<<"Coeficiente de Variacion: "<<coef;
  61.              cout<<"% ";
  62.  
  63. getch();
  64. return 0;
  65. }
  66.  

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines