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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Aumento de la memoria del Heap por desbordamiento. C++ Qt5 en: 23 Marzo 2022, 15:12 pm
     Ya he solucionado el problema utilizando la libreria <vector>.
     A la hora de guardar los datos, en vez de declarar 4 arrays, declaro 4 vectores de la siguiente manera:
Código
  1. vector<float> coordenadax;
  2. vector<float> coordenaday;
  3. vector<float> coordenadaz;
  4. vector<float> coordenadai;
  5.  
     De esta manera al llenarlos dentro de la funcion, me permitio superar los 2 millones de datos.
2  Programación / Programación C/C++ / Aumento de la memoria del Heap por desbordamiento. C++ Qt5 en: 22 Marzo 2022, 21:28 pm
     Muy buenas a todos, amigos. Hoy vengo con una nueva duda sobre c++ y es sobre la memoria del HEAP. Como ya sabran, existe la memoria de stack (local) y la memoria del heap (no se como describirla, solo se que se utiliza para no consumir la memoria local). Estoy haciendo una aplicacion en la que declaro 4 arrays de 1 dimension (vectores) y les estoy asignando un espacio en la memoria de 1.500.000 porque cada arreglo debe tener 1 millon y medio de elementos y hasta mas que luego se llenaran dentro de una funcion.
Código
  1.    float coordenadasx[cantidad];
  2.    float coordenadasy[cantidad];
  3.    float coordenadasz[cantidad];
  4.    float coordenadasi[cantidad];
  5.  

     la variable cantidad es una variable que contiene una funcion que lee un archivo y me retorna la cantidad de lineas que posee para luego establecer el tamaño de los arreglos y llenarlos en otra funcion. Cuando hago la depuracion o ejecuto la aplicacion me salta un erro que dice:
Código
  1. The inferior stopped because it received a signal from the operating system.
  2. Signal name:      SIGSEGV
  3. Signal meaning:  Segmentation fault
  4.  

     Yo manipulando la funcion puedo hacer que retorne mas o menos elementos, haciendo pruebas descubri que el maximo de elementos que me ha dejado integrar es de 1.200.000, cuando subo de ahi me suelta el error.

     Alguien sabe como aumentar la memoria del Heap?? O una manera de que este error no me salte, porque estaba leyendo y vi que QT5 tenia una especie de bloqueo cuando veia que a una variable se le asignaba mucha memoria, pero no se si se trate de eso.
3  Programación / Programación General / Hacer grafico de dispersion en Python con muchos datos en: 20 Marzo 2022, 15:35 pm
     Muy buenos dias amigos. La semana pasada empezo mi primer dia en un nuevo trabajo como desarrollador. A mi con un mes de anticipacion me dijeron que iba a programar con Python, estuve practicando y alcance un buen nivel en el lenguaje. Cuando llego me informan que ahora voy a programar con c++... Me dieron la semana pasada para ponerme al dia con el lenguaje y ya a partir de esta semana quieren ver resultados con el mismo... Yo estoy trabajando en eso pero les comento lo siguiente:

     La razon por la que ellos quieren que programe en C++ es porque necesitan graficar un cilindro con un grafico de dispersion de puntos, usando la libreria Matplotlib tarda al rededor de 8 - 20 minutos generarse la grafica en 3D. Por lo que optaron por cambiar a un lenguaje de bajo nivel donde todo se hace con mayor velocidad.

     Por lo que si consigo una manera de hacer ese grafico en un tiempo mucho menor entonces no tendria necesidad de usar c++ al menos para ese tema. Tienen alguna idea de que libreria o API o la manera que sea, en la que pueda graficar millones de datos en 3D utilizando python sin que tarde tanto tiempo??

     Estoy aprendiendo poco a poco y temo que no pueda cumplir sus espectativas, asi que si pueden ayudarme de alguna manera se los agradeceria enormemente...
4  Programación / Programación C/C++ / Re: Tengo una duda sobre los punteros, trabajar con archivos, arrays y vectores. En c+++ en: 18 Marzo 2022, 00:55 am
     Gracias por tu respuesta, tendre en cuenrta todo lo que me comentas si llega la hora de optimizar.

Lo dicho, cualquiera de estas opciones hace el problema más complejo, aunque me parece que estas últimas que te puse son asequibles con leer un poco. Pero como escribí al inicio, primero deberías comprobar que de verdad necesites optimizar.

     Por ahora voy a dejar de lado la optimizacion y me enfocare en que el programa funcione y haga lo que le pido, ya me dieron un regaño por no entregar resultados asi que me preocupare de hacerlo de la manera mas eficiente cuando se me solicite explicitamente. Por el momento me pidieron graficar los datos en un grafico de dispersion de puntos, algo similar al scatter de matplotlib de python. Tienes alguna idea de que librerias puedo usar para hacerlo? Porque de verdad estoy retrasado en el trabajo y llevo todo el dia investigando sobre el tema sin conseguir resultados. Gracias nuevamente por las recomendaciones que me diste, sobre el tema de las librerias graficas, en el foro coloque otro tema por si quieres responder por ahi.
5  Programación / Programación C/C++ / Urgente! Librerias o maneras de graficar en C++ en: 17 Marzo 2022, 23:06 pm
     Muy buenas a todos, amigos.

     Necesito su ayuda con urgencia... Conocen librerias para hacer graficas en 2D y 3D para c++? Puntualmente necesito hacer un grafico de dispersion de puntos basado en 3 variables (radio, tita, altura) Por ahora, solo graficar con X y Y tengo suficiente para esta semana, pero necesito mostrar avances en el tema pero no he conseguido nada hasta ahora... La cosa es que he estado investigando pero no encuentro nada concreto o que expliquen bien su instalacion y manejo, como soy nuevo en c++ no consigo entender al 100% las cosas entonces sufro mucho. Si alguien pudiera guiarme en esta area estaria mas que agradecido.

     Encontre una libreria llamada gnuplot pero no encuentro mucha documentacion con respecto a lo que necesito o no lo estoy entendiendo bien. Por si no saben como es un grafico de dispersion de puntos, es lo mismo a la funcion scatter de python, de la libreria matplotlib.
    
6  Programación / Programación C/C++ / Re: Lectura de fichero de texto en c++ el programa no ejecuta en: 17 Marzo 2022, 03:44 am
Soy nuevo en esto de c++ y mi martirio ha sido la lectura de ficheros, pero en esa busqueda he encontrado una manera de leer los archivos de texto mucho mas sencilla. Supongamos que tienes un archivo de texto con el siguiente formato.

colum11 colum12
colum21 colum22
colum31 colum32
colum41 colum42

Si ejecutas el siguiente codigo podras acceder a cada columna.
Código
  1. char x,y;
  2. string filename("archivo.txt");
  3. ifstream input_file(filename);
  4. while(input_file >> x >> y)
  5. {
  6. cout << x << ' ' << y << endl;
  7. }
  8.  

Con el codigo anterior el item de la columna 1 de la primera fila se guardara en la variable x y la columna dos se guardara en la columna y. El codigo te deberia dar una salida similar a la siguiente.
Citar
colum11 colum12
colum21 colum22
colum31 colum32
colum41 colum42

Con lo que ahora puedes trabajar cada elemento como quieras.





Código
  1. std::ifstream archivoProcesos("Procesos.txt");
  2. NodoProceso* Cola;
  3. std::string linea;
  4. std::string nombreProceso;
  5. int tiempoCPU;
  6. for(std::string proceso; std::getline(archivoProcesos, linea); ){
  7.  
  8. std::istringstream datosProceso(linea);
  9.  
  10. for(int columna = 0; std::getline(datosProceso, proceso, ' '); columna++){
  11. switch(columna){
  12. case 0:
  13. nombreProceso = proceso;
  14. break;
  15. case 1:
  16. tiempoCPU = std::stoi(proceso);
  17.    break;
  18. }
  19. }
  20.                Cola->encolar(nombreProceso, tiempoCPU);
  21. }

Puede ser que el error este en el for, ya que estoy viendo que en la segunda llamada de este
Código
  1. for(int columna = 0; std::getline(datosProceso, proceso, ' '); columna++){
  2.  

Creo estas encerrando en la variable proceso el contenido del getline, intenta crear una variable tipo string a parte y ponla ahi en vez de usar proceso. OJO repito que no conozco mucho de c++ Solo estoy dando una idea segun los problemas que me han dado a mi codigos anteriores. Segundo punto, seguro de que la funcion getline debe usarse en ese caso?? Me refiero a cuando la usas por segunda vez con la variable proceso.
7  Programación / Programación C/C++ / Re: Tengo una duda sobre los punteros, trabajar con archivos, arrays y vectores. En c+++ en: 17 Marzo 2022, 00:58 am
Puedes decir que todos las cifras de esa tabla gigante tienen un número fijo de dígitos o es algo arbitrario? Lo digo porque si fueran todos de dos dígitos, como muestras en el ejemplo, con un poco de matemáticas sacas la dimensión de la tabla.

El formato como tal es asi:
Código
  1. 1.21548 4.12354 3.14485 0.0054
  2. -1.21548 4.12354 -3.14485 0.0054
  3. -1.21548 4.12354 3.14485 0.0054
  4. 1.21548 4.12354 3.14485 0.0054
  5. 0 0 0 0.0235
  6. 0 0 0 0.2015
  7. 0 0 0 0.5043
  8.  

El formato de vez en cuando varia, lo normal es que sean 4 columnas tipo flotantes, pudiendo ser negativas o positivas. con 1 numero y 5 decimales las primeras 3 columnas y la 4ta columna de un cero y 4 decimales.

De vez en cuando puede ocurrir que den las primeras 3 columnas 0 o alguna que otra columna de 0.
8  Programación / Programación C/C++ / Re: Tengo una duda sobre los punteros, trabajar con archivos, arrays y vectores. En c+++ en: 16 Marzo 2022, 22:51 pm
     Me interesa esa opcion de trabajar con archivos bianrios, pero por desgracia ese formato no se me puede entregar de otra manera, conoce alguna manera de convertirno en formato binario y trabajarlo de la manera que me dices en ese otro archivo convertido??

     Muchas gracias por la respuesta, como dije soy nuevo en este lenguaje y estoy aprendiendo a los golpes, como dicen por ahi me clavo un puñal en la mano jajajaja.

     Hasta ahora encontre una manera de hacerlo con la funcion getline, pero como dices es engorroso hacerlo y me da la impresion de que no es muy eficiente... Al trabajar con millones de datos la eficiencia es algo que debo cuidar desde el incio. Por lo que si conoces una manera de convertir ese archivo a formato binario para posteriormente obtener las columnas y encerrarlas en un vector o un array entonces estaria mas que agradecido.



Creo que el fichero es tal cual y no puede modificar su estilo, como cuando en el trabajo te dicen: esto es lo que debes consumir y quiero que hagas esto.

Saltarse esa cabecera, en C++ no sé, pero en C sería:
Código
  1. fscanf(archivo, "%*d\n"
  2.                "%*d\n"
  3.                "%*d %*d\n"
  4.                "%*d %*d\n"
  5.                "%*d,%*d %*d,%*d %*d,%*d\n");

O si controlas las comas decimales mediante configuración de localización:
Código
  1. fscanf(archivo, "%*d\n"
  2.                "%*d\n"
  3.                "%*d %*d\n"
  4.                "%*d %*d\n"
  5.                "%*f %*f %*f\n");

Holaa, gracias por tu respuesta, aunque ya resolvi como hacerlo con la funcion getline que lee linea por line el documento y solo coloque un contador junto con un if que me ejecutara el codigo cuando el contador informase que estaba en la linea que necesitaba, pero me da curiosidad porque no se como trabajar con el scanf. Cual es la eficiencia del scanf?? Se puede utilizar para hacer lo que te comento de agarrar cada columna y encerrarla en una variable??
9  Programación / Programación C/C++ / Tengo una duda sobre los punteros, trabajar con archivos, arrays y vectores. En c+++ en: 16 Marzo 2022, 02:20 am
     Hola, espero que todos tengan un buen día.
Necesito su ayuda para entender la forma más eficiente de trabajar con muchos datos...
Tengo un archivo que tiene como 2.000.000 de datos, divididos en 4 columnas.

     El formato sería algo así:

3554
4562
11     11
12     12
0,00  0,00  0,00
12     13     15     16
11     11     11     11
20     20     20     30

     Como pueden ver, primero encuentro 2 líneas con 1 columna, luego 2 líneas con 2 columnas, luego una línea con 3 columnas y por último comienzan las 2.000.000 líneas con 4 columnas, todos los valores son decimales y estan separados por un espacio. Lo que quiero es saltarme las primeras 5 líneas del archivo y encerrar todos los valores de 4 columnas en una matriz. No sé cuál es la forma más eficiente de hacerlo, ya que hay tantos datos que el código puede llevar mucho tiempo.

     Estaba pensando en encerrar todo en un array, pero no siempre serán 2 000 000 de filas, ocasionalmente serán 2 500 000 o menos y necesito asignar el espacio de memoria que necesitará para ese caso.

     Me dijeron que era más eficiente encerrar cada columna en vectores, pero no tengo idea de cómo usarlos... Soy nuevo en C++ y no soy muy bueno con los punteros y los códigos que encontré en el internet para separar datos usando espacios en blanco no los entiendo. Trabajo con un archivo txt.

     Si alguien me puede explicar mejor esto, se lo agradecería mucho y de ser posible mostrarme un ejemplo de como hacerlo.
10  Informática / Software / Re: Necesito ayuda con un programa llamado Saint Enterprise en: 3 Agosto 2021, 17:35 pm
Esos manuales están muy desactualizados, me ayudan a medio guiarme pero en la versión en la que trabajo ya cambiaron muchas cosas.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines