Autor Tema: ¿Cuáles programas de código libre quisieran entender al 100%?  (Leído 28124 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Francisco™

  • The Communiter-
  • *
  • Mensajes: 1373
  • Bitch you make me hurl...
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #120 : abril 11, 2016, 09:35:58 am »
Aquí tengo este procedimiento por ahora manual para evaluar la distribución de tipos de archivo en un archivo o partición del disco duro. Esto es útil para saber qué tipos de archivo tenemos y en qué cantidad. Esto nos va a servir después para buscar


http://windirstat.info/

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #121 : abril 13, 2016, 11:42:54 am »
187 lineas de codigo para ordenar numeros. ahuevos.

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #122 : abril 13, 2016, 12:01:33 pm »
y si yo quiero que ese programa ordene un listado de numeros que tengo en un archivo de excel, o sea, que no tenga que ingresar los numeros como parametros sino que le diga la ruta de mi archivo de excel "c:factura.xlsx" como modifico el programa?
es que en mi trabajo, siempre tengo que estar ordenando por valor de compra la factura y eso me quita mucho tiempo en excel
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #123 : abril 13, 2016, 03:29:37 pm »
entonces no podes?

yo no tengo ni idea de que es sqlite.

yo quiero ordenar unos datos en excel y vi que usando tu programa es bien fácil, modificalo porfa para que pueda pasarle un parámetro en excel, suponiendo que tiene un formato estandar de filas y columnas.

Presumiblemente creí que podías modificarlo, para que pueda abrir el contenido de un archivo xlsx y que con otro parámetro le diga en que celda esta la columna por la que quiero que ordene el resultado y cuando yo abra el archivo de excel, PUM ya este ordenado todo el listado por esa columna.. eso es muy difícil de hacer en excel y como te repito, veo que tu programa vien vergon lo hace mágicamente... ayudame!
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #125 : abril 13, 2016, 03:53:01 pm »
Si se trabaja directamente en CSV sería más fácil de implementar que tener que interpretar todo el formato del XLS/XLSX.

Solo estarían los valores y columnas crudas para importarse en otros formatos, no solo a Excel.  No habría ruido de un formato que ya no es simple, solo por ordenar valores simples de texto.

Excel puede trabajar en ese formato como si fuera una hoja de cálculo básica y podría usar TABS como carácter separador de los valores.

Se pueden abrir y guardar en CSV y si se quiere se puede generar un XLS final con títulos y estilos, pero ya no tendría formato CSV.
osea que vos programas en terminos de "se pueden" "habria que" "es posible".

men vos fueras el project manager mas exitoso de la historia.
« Última Modificación: abril 13, 2016, 03:55:56 pm por g00mba »

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #126 : abril 13, 2016, 04:02:20 pm »
Necesito un XLS o CSV real para saber cómo implementarlo.
juela que dificil, donde se podra conseguir un xls real =p por que no es algo que cualquiera pueda abrir un excel numerar una columna poner datos dummy en otra y probar... ahhh es que para probar tenemos que empezar a programar excel desde cero para que sea "real" XD
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #127 : abril 13, 2016, 04:06:01 pm »
pues mi hoja de excel es el de una factura simple

Código: [Seleccionar]
fila 1 -> #   DESCRIPCION                    CANT      VALOR_UNITARIO           VALOR_TOTAL
fila 2 -> 1    AltComp126                      1               0.25                0.25
fila 3 -> 2    gata descansando en mi patio    2               0.10                0.20

etc etc etc... o sea, que hay más registros iguales, debajo del item 2.... y lo que me cuesta es ordenar por VALOR_TOTAL, tenes excel en tu compu para crear un archivo así o te lo subo a amazon glacier?
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Francisco™

  • The Communiter-
  • *
  • Mensajes: 1373
  • Bitch you make me hurl...
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #128 : abril 13, 2016, 04:15:55 pm »
pues mi hoja de excel es el de una factura simple

Código: [Seleccionar]
fila 1 -> #   DESCRIPCION                    CANT      VALOR_UNITARIO           VALOR_TOTAL
fila 2 -> 1    AltComp126                      1               0.25                0.25
fila 3 -> 2    gata descansando en mi patio    2               0.10                0.20

etc etc etc... o sea, que hay más registros iguales, debajo del item 2.... y lo que me cuesta es ordenar por VALOR_TOTAL, tenes excel en tu compu para crear un archivo así o te lo subo a amazon glacier?

toda la troleada que le estas dando al colocho es para plantear que usas amazon glacier, va? :trollface:

Desconectado ayman ☺

  • Sv Member
  • ***
  • Mensajes: 474
  • ♫♫♫ miau ♫♫♫ miau ♫♫♫ miau ♫♫♫ miau ♫♫♫ miau ♫♫♫
Re:Ordenar números en orden ascendente o descendente en C
« Respuesta #129 : abril 13, 2016, 04:22:03 pm »
Con este programa en C aprenderemos a:

  • Detectar el valor máximo positivo y mínimo negativo de un tipo de datos entero con signo para una arquitectura de hardware/CPU dada.

  • Ordenar números en orden ascendente (y por lo tanto descendente al simplemente invertir el orden del bucle).

  • Usar una versión muy optimizada del algoritmo de ordenamiento por burbujas (bubble sort) que usa el mismo arreglo y no usa otro arreglo intermedio, y que hace uso de un mínimo de operaciones. Está en la función void int_ordenar_ascendente(int *arreglo_numeros, int numElems).

    Esa función logra ordenar un arreglo de números en solo 5 líneas de código claves.



Aquí tengo la grabación del código:

>> Obtener Números No Repetidos <<




Aquí tengo un video en YouTube que muestra cómo compilar y usar el programa:

Ordenar Números en Orden Ascendente




Aquí está la versión final del código.
Código: [Seleccionar]
Compilarlo usando MinGW:
                          gcc num_ascendente.c -o num_ascendente.exe
Para correrlo:
                          num_ascendente 6 3 15 19 856 34 845 51 3 1 41 0 -9

E imprimirá los números en orden (-9 0 0 3 3 6 15 19 34 41 51 845 856).



Código: (C) [Seleccionar]
#include <stdio.h>    //printf()
#include <stdlib.h>   //malloc(), free()


void int_obtener_min_max(int *arreglo_numeros, int numElems, int *min, int *idx_min, int *max, int *idx_max);
void int_ordenar_ascendente(int *arreglo_numeros, int numElems);


//Tomar los números directamente de la línea de comandos:
///
int main(int argc, char *argv[])
{
 //Preparar un número dinámico de enteros:
 ///
  int *numeros;         // Arreglo de enteros de tamaño dinámico
  int cuenta_numeros=0; // Cuántos números están presentes realmente
  int x=0;              // Variable general para bucles


 //Descontamos el primer parámetro que es el nombre del
 //programa mismo, de la cuente de parámetros (argc == "arg count"):
 ///
  argc--;


 //Indicar si hay suficientes parámetros:
 ///
  if(argc<2)
  {
   printf("ERROR: Por favor ingrese números enteros separados por espacios.\n");
   printf("       Se necesitan por lo menos dos números.\n\n");
   return -1;
  }


 //Reservar memoria para el número indicado de enteros
 //por los parámetros de línea de comandos.
 //
 //Necesitamos obtener el tamaño de un entero en memoria
 //y multiplicarlo por el número de argumentos.
 //
 //Siempre reservar un valor más para poder maniobrar siempre
 //aunque sea entre 2 elementos. Lo correcto sería poner a cero
 //el último elemento para que haya coherencia:
 ///
  numeros = (int *)malloc(sizeof(int)*argc+1);
  numeros[sizeof(int)*argc]=0;

 //Recorremos cada uno de los valores separados por espacios.
 //Los convertimos de cadena de caracteres a número y vemos
 //si ya está en el arreglo:
 ///
  for(x=0; x<argc; x++)
  {
   //Obtenemos el parámetro actual de la línea de comandos.
   //Le sumamos 1 a x ya que anteriormente le restamos 1 y el
   //parámetro 0 es el nombre del programa mismo, así que si
   //si no hacemos esto perderíamos un número:
   ///
    numeros[cuenta_numeros++]=atoi(argv[x+1]);
  }


 //Ordenamos el arreglo del menor al mayor:
 ///
  int_ordenar_ascendente(numeros, cuenta_numeros);



 //Ahora simplemente mostramos el arreglo en pantalla:
 ///
  printf("Lista de números ordenados ascendentes: ");
  for(x=0; x<cuenta_numeros; x++)
  {
   printf("%d ", numeros[x]);
  }
   printf("\n");

  printf("Lista de números ordenados descendentes: ");
  for(x=cuenta_numeros-1; x>=0; x--)
  {
   printf("%d ", numeros[x]);
  }
   printf("\n");





 //Liberamos la memoria reservada para el arreglo numérico
 //en tiempo de ejecución, ya que llegamos al final del programa:
 ///
  free(numeros);


 return 0;
}






void int_obtener_min_max(int *arreglo_numeros, int numElems, int *min, int *idx_min, int *max, int *idx_max)
{
 int x=0;

 //Tratar de poner el número máximo con el negativo más pequeño
 //para intentar detectar cualquier máximo subsiguiente.
 //Con este método pretendemos obtener el valor con sign más pequeño
 //para este tipo de datos:
 ///
  *max = ~(unsigned int)0;            //Obtenemos máximo número de bits a 1
  *max =  (unsigned int)(*max<<1)>>1; //Deshacernos del bit de mayor peso
  *max =  (unsigned int)~*max;        //Poner solo el bit de mayor peso a 1


 //Para el mínimo, simplemente obtenemos el valor máximo de bits
 //con signo, y nos deshacemos del bit de mayor peso (el del signo
 //para tipos de datos que interpretan negativos y positivos).
 //Con esto lo ponemos al valor positivo más grande de bits
 //y así podemos detectar cualquier valor máximo subsiguiente:
 ///
  *min = ~(unsigned int)0;
  *min =  (unsigned int)(*min<<1)>>1;


 x=numElems;
 while(x--)
 {
  if(arreglo_numeros[x]>*max)
  {
   *max=arreglo_numeros[x];
   *idx_max=x;
  }

  if(arreglo_numeros[x]<*min)
  {
   *min=arreglo_numeros[x];
   *idx_min=x;
  }
 }


 return;
}






void int_ordenar_ascendente(int *arreglo_numeros, int numElems)
{
 int x=0;
 int cuenta_desordenados = numElems;

 int minimo_actual       = 0;
 int indice_minimo       = 0;
 int maximo_actual       = 0;
 int indice_maximo       = 0;

 //Aquí recorreremos todos los elementos del arreglo,
 //buscando el elemento máximo actual, sobreescribiéndolo
 //y moviéndolo al final del arreglo mismo, para que tenga
 //el efecto de ordenar de forma ascendente:
 ///
  while(cuenta_desordenados--)
  {
   //Aquí obtendremos repetidamente el máximo actual entre los
   //elementos del arreglo que todavía no hemos procesado.
   //Obtendremos tanto su valor como su índice para recopiar el
   //resto de elementos desordenados y mover el valor máximo
   //actual al sobreescribilo estando este normalmente enmedio
   //del arreglo.
   //
   //Usamos cuenta_desordenados+1 para poder usar la cuenta numérica
   //basada en 1 a pesar de haber descontado ya ese elemento particular:
   ///
    int_obtener_min_max(arreglo_numeros, cuenta_desordenados+1, &minimo_actual, &indice_minimo, &maximo_actual, &indice_maximo);

   //Aquí sobreescribiremos el máximo actual, copiaremos desde ahí
   //los valores de 1 posición adelante y pondremos el valor
   //máximo actual al final de la posición indicada por x
   //al terminar este bucle:
   ///
    for(x=indice_maximo; x<cuenta_desordenados; x++)
    {
     arreglo_numeros[x]=arreglo_numeros[x+1];
    }
     arreglo_numeros[x]=maximo_actual;
  }



 return;
}




gracias genio a repasar  :thumbsup:

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #130 : abril 13, 2016, 05:41:20 pm »
a saber que put@s hiciste ahi pero no es lo que tekun te pidio.

Desconectado aniceto

  • Sv Full Member
  • *
  • Mensajes: 566
  • Es que uno de cipote es tonto!
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #131 : abril 13, 2016, 07:53:39 pm »
y si yo quiero que ese programa ordene un listado de numeros que tengo en un archivo de excel, o sea, que no tenga que ingresar los numeros como parametros sino que le diga la ruta de mi archivo de excel "c:factura.xlsx" como modifico el programa?
es que en mi trabajo, siempre tengo que estar ordenando por valor de compra la factura y eso me quita mucho tiempo en excel

Pero si queres ordenar un excel en base a una columna, excel ya tiene para poder ordenar las filas en base a una columna de forma ascendente o descendente  :dumb: :

http://www.gcflearnfree.org/excel2013/18
Aniceto Porsisoca
Soquenla!!

Desconectado Shinryu

  • The Communiter-
  • *
  • Mensajes: 1614
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #132 : abril 13, 2016, 08:22:51 pm »
Pero si queres ordenar un excel en base a una columna, excel ya tiene para poder ordenar las filas en base a una columna de forma ascendente o descendente  :dumb: :

http://www.gcflearnfree.org/excel2013/18

En realidad eres tu él que no ha entendido lo que esta pasando aqui.

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #133 : abril 14, 2016, 08:29:52 am »
entonces no podes modificar tu programa "gcc num_ascendente.c" para leer un archivo de excel o CSV?

toda la troleada que le estas dando al colocho es para plantear que usas amazon glacier, va? :trollface:
nambe , no ocupo glacier, tengo una usb externa donde respaldo mis .MP4
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado snake of persia

  • Sv Full Member
  • *
  • Mensajes: 586
Re:¿Cuáles programas de código libre quisieran entender al 100%?
« Respuesta #134 : abril 14, 2016, 08:46:57 am »
a saber que put@s hiciste ahi pero no es lo que tekun te pidio.

Exacto segun para lo que te solicito ayuda el comuno Tekun, la solucion que le propones no es viable a lo que el te estaba preguntando :S
Ryzen 5 5600x |MSI B450 TOMAHAWK |Corsair Vengeance LPX 32GB (2x16GB) DDR4 3200MHz | NZXT C850 | INNO3D RTX 3070 8GB | Cooler Master K500 | NOCTUA NH-D15