• Martes 14 de Abril de 2026, 23:34

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - tambor

Páginas: [1]
1
C/C++ / Re: ¿Arreglos o archivos?
« en: Sábado 18 de Diciembre de 2010, 06:02 »
PD: ¿de donde sacan ese formato tipo cuaderno donde se ven las lineas de código y que es más cómodo para el lector?

2
C/C++ / Re: ¿Arreglos o archivos?
« en: Sábado 18 de Diciembre de 2010, 05:59 »
De nuevo gracias por la paciencia y el entusiasmo....jeje....

nos vamos acercando a la cuestión....

para la ilustrar mi dilema anexo a continuación  ( :blink:) un pequeño codigo
de un programa que escribí yo, y que debe ser parecido sino igual a otros, pues tiene como fin encontrar primos.
un algoritmo muy conocido, supongo. pero el programa tiene la particularidad que va guardando los primos en un vector, y usa ese vector para comprobar si los numeros son primos.  

esto fue lo que hice:

 
//
// Programa para contar y guardar primos


#include <stdlib.h>
#include <stdio.h>



int main()

{

int *primos, *primoscopia, i,j,k,m1,s,m2;
float d,d1;

m1=2;
m2=2;
s=1;
primos = (int *)malloc (m1*sizeof(int));                  ////asignando memoria para vector de enteros
primoscopia = (int *)malloc (m1*sizeof(int));          ///// copia del vector

primos[0] = 2;
primos[1] = 3;
primoscopia[0] = 2;
primoscopia[1] = 3;
i=4; j=0;                   ////////////////////////Condiciones iniciales
 
                   //////////////////////bucle principal
            while(i<100000)
                    {
                        do{
                           d=(float)i/primos[j];
                           d1= d-(int)d;
                           if(d1== 0){s=0;}
                           if(j == m1-1)
                                 {  printf("el numero %d es primon",i);
                                      m2 = m1+1;  
                                      primos = (int *)malloc (m2*sizeof(int));  /////////Reasignando memoria para el vector;
                                   
                                      primos[m1] = i;
                                      s=0;
                                 }
                           
                       
                           else { j++;}
                             

                           } while(s==1);


                           
                            if(m2==m1+1) {
                                   
                                       for(k=0;k<m1;k++) {
                                              primos[k]= primoscopia[k];                    
                                                         }
                                        primoscopia = (int *)malloc (m2*sizeof(int));   //////////reasignando memoria para el vector copia
                                   
                           for(k=0;k<m2;k++) {
                                                  primoscopia[k]= primos[k];
                                                          }

                                         }          
                      m1=m2;
                      j=0;
                      s=1;
                      i++;
                     }

        printf("%dn", m1);
}  

nota: fue después, hace muy poco que me entere de la existencia de a%b en c. (función residuo).


bueno la cuestión es que el programa funciona muy bien hasta 100.000. si se usa un numero mas grande sucede que por ahí en 130.000 el programa, ejecutándolo bajo terminal, es abortado. de echo en la terminal sale algo como "finalizado(killed)" y ya ni una coma más. en aquel momento pensé que la cuestión podía tener que ver con la memoria ram o algo por ese lado......ahí fue la primera vez que pensé usar un archivo.


pero entonces si ustedes dicen que la memoria sobra........y el vector en mi programa cuando llega a 130.000 no tendrá más de 13.000 números, entonces me surgen dudas, dudas.     ¿que es lo que pasa?.

me voy a poner a cacharrear un rato haber si consigo recuperar mi vieja idea de llevar este programa a su nueva versión archivo y de paso practico estas nuevas funciones en las que estoy incursionando.


Gracias, Muchas Gracias a todos, ayudenme a salir de dudas.

3
C/C++ / Re: ¿Arreglos o archivos?
« en: Viernes 17 de Diciembre de 2010, 05:12 »
me falto agregar, que a lo mejor todo esto lo puedo hacer muy fácil con sql, pero me pregunto como hago para que mi programa alterne entre c y sql, ¿que compatibilidad hay?

4
C/C++ / Re: ¿Arreglos o archivos?
« en: Viernes 17 de Diciembre de 2010, 04:52 »
Muchas gracias moskito y morfhus por responder.
Realmente no conocía sql, y en tanto estoy en cero.....
pero estuve mirando rápidamente algo de la información que hay por todos lados.....y descubrí que es un lenguaje de programación pensado para manejar bases de datos.....etc etc etc....
en todo caso me surgen inquietudes:
me explicó:
*El programa debe crear vectores en R3. ciertamente muchos vectores en R3.
      si uso **vector para crear una matriz de 3 filas y n columnas la cosa va muy bien,
      aunque usa todos los recursos de memoria. yo quiero liberarla para hacer otras cosas y después volver a usar ese conjunto de vectores.
      incluso he pensado que sería interesante que la función que crea a **vector, dentro de su bucle escribiera directamente sobre un archivo cada vez que crea un nuevo trió  
     de números, un vector de R3.
      digo que las funciones de c permiten hacer esto.

    ahora si después quiero utilizar el vector, tengo que cargar el archivo y lograr moverme cómodamente por entre las diferentes posiciones. identificando cada componente de      
   cada distinto vector

             acuando lo hago por el método ** vector es fácil para mi acceder a cualquier posición de la matriz. solo necesito usar un
             
             /* vector[a] */ para acceder a la fila A columna B de mi matriz. (en eso tiene moskito una confusión).

            luego en el archivo no es tan sencillo. aunque de nuevo c tiene algunas funciones..... pero no estoy seguro como usarlas,
           ¿ hay una función que me permita dentro del archivo ir hasta el siguiente espacio, es decir que cuente 100 espacios desde el comienzo del documento?      
           con una función de ese estilo podría resolver mi problema.

alguien que me de nuevas luces,
Gracias muchachos.

5
C/C++ / ¿Arreglos o archivos?
« en: Miércoles 15 de Diciembre de 2010, 07:58 »
muchas gracias de antemano para el que se tome el trabajo de ayudar.

Mi cuestión va por este lado. estoy haciendo un programa que debe generar algo así como 10.000 puntos en R3. es decir una matriz de tres filas y 10.000 columnas.
o al revés. se que puedo usar un vector multi-dimensional algo como  **vector o vector[ ][ ] ; pero mi inquietud pasa porque preferiría que el programa guarde el vector en el disco duro. después otra función debe poder acceder al archivo y moverse en el como si fuera una matriz, e identificar con facilidad que valor corresponde a cada punto para cada coordenada; me parece que esto es mucho mas fácil manejándolo como **vector, y realmente no se muy bien como hacerlo trabajando como un archivo en el disco. alguien me puede tender una manito, botar unas pistas.

Alegrías para todos.

Páginas: [1]