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

 

 


Tema destacado:


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / .NET (C#, VB.NET, ASP) / (Recurso) Manual de asp. net core (2022 en inglés) en: 9 Abril 2023, 19:55 pm
Buenas, comparto este recurso. A decir verdad, siempre me cuesta encontrar material actualizado de asp. net core, así que tal vez le sirva a alguien. Saludos

https://mega.nz/file/eIEm1QyD#6wQh-uGCDdGodMPeMgUJhLel3qsHf5r7gRHkaE1Rb6s
2  Programación / Scripting / Objetos imprimen None en: 10 Enero 2023, 01:08 am
Buenas, una duda, resulta que estoy intentando diseñar una clase en Python pero cada vez que imprimo los objetos se me agrega
un None que no consigo ver de dónde sale...
Todo está en un mismo archivo
Por cierto, estoy empezando en este lenguaje por lo tanto tal vez ignore alguna práctica que sea más recomendable...

La clase es la siguiente y abajo el main.

Código
  1. class Producto:
  2.    contador_productos = 0
  3.    def __init__(self,nombre: str, precio: float):
  4.        self._id = Producto._generar_id()
  5.        self._nombre = nombre
  6.        self._precio = self._verificar_precio(precio)
  7.  
  8.    @staticmethod
  9.    def _generar_id():
  10.        Producto.contador_productos += 1
  11.        return Producto.contador_productos
  12.  
  13.    def obtener_id(self):
  14.        return self._id
  15.  
  16.    def obtener_nombre(self):
  17.        return self._nombre
  18.  
  19.    def obtener_precio(self):
  20.        return self._precio
  21.  
  22.    def _verificar_precio(self,precio):
  23.        if precio > 0:
  24.            return precio
  25.        else:
  26.            return -1
  27.  
  28.    def imprimir_producto(self):
  29.        print(f'{self._id}, {self._nombre}, {self._precio}')
  30.  

Código
  1. def main():
  2.    a = Producto("Mouse",1700)
  3.    b = Producto("Teclado",8000)
  4.    c = Producto("Monitor",15000)
  5.  
  6.    print(a.obtener_id(), a.obtener_nombre(), a.obtener_precio())
  7.    print(b.obtener_id(), b.obtener_nombre(), b.obtener_precio())
  8.    print(c.obtener_id(), c.obtener_nombre(), c.obtener_precio())
  9.  
  10.    print(a.imprimir_producto())
  11.    print(b.imprimir_producto())
  12.    print(c.imprimir_producto())
  13.  
  14. if __name__ == '__main__':
  15.    main()
  16.  

salida:

1 Mouse 1700
2 Teclado 8000
3 Monitor 15000
1, Mouse, 1700
None
2, Teclado, 8000
None
3, Monitor, 15000
None
3  Foros Generales / Dudas Generales / qué es preferible múltiples returns o un solo return? en: 3 Enero 2023, 21:52 pm
Buenas estimados, que opinan al respecto de esto? Me he encontrado con profesores de programación que son partidarios de un solo return en una función o método, sin embargo, también he encontrado que utilizan varios sentencias return en un bloque de código. Tengo que decir que soy más partidario de un solo return por función.

ejemplo la función factorial:

Código
  1. def factorial(n):
  2.    rta = 0
  3.    if n == 0:
  4.        rta = 1
  5.    else:
  6.        rta = n * factorial(n-1)
  7.    return rta
  8.  

Código
  1. def factorial(n):
  2.    if n == 0:
  3.        return 1
  4.    else:
  5.        return n * factorial(n-1)
  6.  
4  Programación / Desarrollo Web / posicionar menú navegación en: 16 Diciembre 2022, 18:40 pm
Buenas estimados,
hace poco empiezo con HTML5 y CSS3, y tengo una duda que tal vez me puedan aclarar.
La idea seria armar un menú navegación de esta manera:

https://imgur.com/a/bzWYJDz

osea un menú de navegación a la izquierda.

Lo pude implementar pero no sé si lo estoy haciendo de la manera más optima, convendria hacerlo utilizando solo cajas flexibles o en este caso solo se puede utilizar la propiedad float?

Saludos

Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <head>
  4.        <meta charset="UTF-8">
  5.        <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.        <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.        <title>Car Market</title>
  8.        <link href = "./css/estilos.css" rel = "stylesheet"/>
  9.    </head>
  10.  
  11.    <body>
  12.        <header>
  13.            <h1>Cabecera</h1>
  14.        </header>
  15.  
  16.        <nav>
  17.            <h2>menu</h2>
  18.        </nav>
  19.  
  20.        <section>
  21.            <p>sección</p>
  22.        </section>
  23.  
  24.        <footer>
  25.            Pagina hecha por SFK&copy
  26.        </footer>
  27.  
  28.    </body>
  29. </html>
  30.  

Código
  1. body
  2. {
  3.    height: 100%;
  4.    max-width: 100%;
  5.    background-color: #e5dada;
  6.    color: #02040f;
  7.    margin: 0%;
  8. }
  9.  
  10. header
  11. {
  12.    margin: 0% 0% 1% 0% ;
  13.    display: flex;
  14.    border: 1px solid black;
  15. }
  16.  
  17. nav
  18. {
  19.    float: left;
  20.    margin: 1% 1%;
  21.    display: flex;
  22.    flex-direction: column;
  23.    border: 1px solid black;
  24. }
  25.  
  26. section
  27. {
  28.    flex-direction: column;
  29.    margin: 1% 1%;
  30.    display: flex;
  31.    border: 1px solid black;
  32. }
  33.  
  34. footer
  35. {
  36.    clear: both;
  37.    border: 1px solid black;
  38. }
  39.  
5  Programación / Programación C/C++ / Extraer palabras de un texto leido en un archivo (en C) en: 21 Noviembre 2022, 14:42 pm
Buenas a todos,
resulta que estoy teniendo un error con este codigo, tal vez no estoy viendo algo o me falta un concepto.
La idea seria leer un texto por usuario y guardarlo en un archivo binario,
segundo,  mostrarlo por consola,
y lo mas importante extraer todas y cada una de las palabras del texto ingresado por usuario.

Ahora bien, tengo entendido que los archivos binarios son mejores para guardar registros ( estructuras) y los archivos txt para texto. Lamentablemente, me piden que sean archivos binarios... Cosa que no le veo mucho sentido.
El error es que si ingreso un texto de mas de 3 o 4 palabras aveces algunas palabras se muestran con basura. Por ejemplo si ingreso  "la casa roja y el perro blanco" no hay problema.
Si ingreso "la raiz cuadrada de una potencia" entonces la palabra "cuadrada" muestra basura tambien. Esto por poner algunos ejemplos.
Este el codigo, (por cierto mucho que mejorar)
gracias, saludos.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. #define ARCH0 "arch0.bin"
  7. #define TAM_MAX 1000
  8.  
  9. void crearArchivo()
  10. {
  11.    FILE* pfile = fopen(ARCH0, "wb");
  12.    char texto[TAM_MAX];
  13.  
  14.    if( pfile )
  15.    {
  16.        printf("\nIngrese el texto:\n");
  17.        gets(texto);
  18.  
  19.        fwrite(&texto,sizeof(texto),1,pfile);
  20.  
  21.        fclose(pfile);
  22.    }
  23. }
  24.  
  25. void mostrarArchivo()
  26. {
  27.    FILE* pfile = fopen(ARCH0, "rb");
  28.    char texto[TAM_MAX];
  29.  
  30.    if( pfile )
  31.    {
  32.        fread(&texto, sizeof(texto),1,pfile);
  33.  
  34.        puts(texto);
  35.  
  36.        fclose(pfile);
  37.    }
  38. }
  39.  
  40. void limpiarArreglo(char a[],int j)
  41. {
  42.    while( j - 1 >= 0 )
  43.    {
  44.        a[j] = 0;
  45.        j--;
  46.    }
  47. }
  48.  
  49. void archivoToDic()
  50. {
  51.    FILE* pfile = fopen(ARCH0,"rb");
  52.    char texto[TAM_MAX];
  53.    int i = 0; /**contador texto*/
  54.    char aux[30]; /**para guardar cada termino del texto*/
  55.    int j = 0; /**contador string aux*/
  56.  
  57.    if( pfile )
  58.    {
  59.        fread(&texto, sizeof(texto),1,pfile);
  60.  
  61.        while( i < strlen(texto) )
  62.        {
  63.            while( isalpha(texto[i]) )
  64.            {
  65.                /*copia cada letra leida distinta de espacio a la cadena auxiliar*/
  66.                aux[j] = texto[i];
  67.                j++;
  68.                i++;
  69.            }
  70.  
  71.            /*tras salir del while, aux contiene 1 palabra del texto, es decir, los caracteres hasta
  72.             el primer espacio encontrado*/
  73.            printf("\n%s\n",aux);
  74.  
  75.            system("pause");
  76.  
  77.            /*limpiar el arreglo y volver el contador j a 0*/
  78.            while( j - 1 >= 0 )
  79.            {
  80.                aux[j] = 0;
  81.                j--;
  82.            }
  83.            j = 0;
  84.  
  85.            /*el proceso sigue con todos los terminos*/
  86.            i++;
  87.        }
  88.  
  89.        fclose(pfile);
  90.    }
  91.  
  92. }
  93.  
  94. int main()
  95. {
  96.    crearArchivo();
  97.  
  98.    printf("\nContenido Archivo:\n");
  99.    mostrarArchivo();
  100.  
  101.    archivoToDic();
  102.  
  103.    return 0;
  104. }
  105.  

Por ultimo decir que pense como solucion utilizar memoria dinamica de manera que solo se guarden en el archivo estrictamente los caracteres del texto ingresado y no otra basura que me pueda estar guardando. qué opinan al respecto?
6  Programación / .NET (C#, VB.NET, ASP) / Aprender .net recomendaciones? en: 17 Noviembre 2022, 05:30 am
Buenas a todos,
una consultita, resulta que me interesa aprender la plataforma .net. Tengo entendido que utiliza una serie de lenguajes tanto para crear aplicaciones de escritorio, como de consola o webs. Me decidí por aprender C# con el libro "Cómo programar c# 2da edición" de Deitel. El libro es del año 2005 eso sí, lo ven como un buen material para empezar? Conocen algún otro material?
Luego para codear los ejemplos del libro, instalé microsoft Visual studio community 2022, el cual me resulta un poco lento ya que cada vez que quiero codear un ejemplo nuevo, creo un proyecto nuevo y por alguna razón tarda bastante en crearse. Creen conveniente otra alternativa de IDE?
Por cierto qué tal notepad++ para C#?
Saludos gracias  :D
7  Programación / Programación C/C++ / funcion limpiar buffer de teclado en: 6 Octubre 2021, 16:51 pm
Buenas a todos,

Tengo una duda con la siguiente función... la saqué de un libro de texto. Y es una solución para limpiar buffer de entrada de teclado (sin usar el vaciado de fflush() ) en C, antes de leer un string. Solo que cuando la utilizo en la consola, tengo que oprimir dos veces  salto de linea, una vez cuando ingreso el dato y otra vez mas para que salte de linea.  A diferencia de ingresar el dato y oprimir salto de linea "enter", y que se guarde el dato de inmediato.

Alguien sabe una alternativa a esta función ?

Saludos

Código
  1.  
  2. void limpiarBuffer()
  3. {
  4.    char c;
  5.  
  6.    do
  7.    {
  8.        c = getchar();
  9.    }while( c != '\n' );
  10.  
  11. }
  12.  
  13.  
8  Programación / Programación C/C++ / Libros de Win32 API en C/C++ en: 26 Agosto 2021, 02:57 am
Buenas gente, no sé si esta será la categoría más adecuada...

Estoy aprendiendo lo que es la interfaz de Win32 en C para programar cosas simples que me surgan. Estoy leyendo el libro "Programming Windows 5th edition " de Charles Petzold . El tema es que es un libro del año 98. De momento los ejemplos de codigo me funcionan perfecto.
Creen que no habría problema al aprender con este libro? Conocen algun otro más que sea accesible en la red?

gracias, saludos
9  Foros Generales / Dudas Generales / Existe material que trate el diseño de un sistema operativo simple? en: 23 Agosto 2021, 18:47 pm
Hola a todos. Bueno la cuestión es la siguiente, para un proyecto final una materia de programación en C ( donde vemos lo que es programación estructurada incluyendo estructuras dinámicas), tengo ganas de hacer algún programa que simule ser un sistema operativo, algo que sea simple pero que vaya por ese lado . He visto también en algún libro un ejercicio para crear un "lenguaje máquina" propio y luego diseñar una especie de compilador, pero no trata muy a fondo el tema...

Saben de material que trate sobre esta clase de proyectos especificamente para obtener alguna idea ?

gracias, saludos.
10  Programación / Programación C/C++ / Error de printeo con puntero triple en: 21 Agosto 2021, 21:33 pm
Hola genios. Bueno resulta que estoy practicando el manejo de punteros y arreglos, pero estoy teniendo problemas: no se muestran los valores desde main. Alguien puede notar algo? Si nadie se quiere molestar lo entiendo porque puede parecer complejo... gracias saludos.

Código
  1. //la funcion crearArreglo maneja la creacion del arreglo, primero guarda
  2. //la memoria necesaria y luego le copia los valores.
  3. //crearArreglo recibe un puntero a entero y la dimension.
  4. //Luego le pasa el puntero a puntero
  5. //a otra funcion asignarMemoria. Luego le pasa el puntero a puntero
  6. //a copiarValores, donde se asignan numeros random.
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <time.h>
  10.  
  11. void crearArreglo(int**punteroApuntero, int dim);
  12. void asignarMemoria(int***punteroTriple, int dim );
  13. void copiarValores(int ***punteroTriple, int dim);
  14.  
  15. int main()
  16. {
  17.    int *pArreglo = NULL;
  18.    int dim = 0; //dimension
  19.  
  20.    printf("\nIngrese la dimension del arreglo: ");
  21.    scanf("%d",&dim);
  22.  
  23.    srand(time(NULL)); //para obtener valores random en copiarValores()
  24.    crearArreglo(&pArreglo,dim); //se le pasa el puntero a puntero y la dimension
  25.  
  26.    printf("\nPrimer elemento desde main: %d\n",*pArreglo); //printea un valor erroneo
  27.  
  28.    return 0;
  29.  
  30. }// fin main
  31.  
  32. void crearArreglo(int **punteroApuntero, int dim)
  33. {
  34.    asignarMemoria(&punteroApuntero, dim);
  35.  
  36.    copiarValores(&punteroApuntero, dim);
  37.  
  38. }// fin funcion crearArreglo
  39.  
  40. void asignarMemoria(int ***punteroTriple, int dim)
  41. {
  42.    (**punteroTriple) = (int *) malloc ( dim * sizeof(int) );
  43.  
  44.    if( (**punteroTriple) == NULL )
  45.    {
  46.        printf("\nError en asignacion de memoria.\n");
  47.        exit(EXIT_FAILURE);
  48.    }//fin if
  49.    else
  50.    {
  51.        printf("\nAsignacion de memoria exitosa.\n");
  52.  
  53.    } // fin else
  54.  
  55. } // fin funcion asignarMemoria
  56.  
  57. void copiarValores(int ***punteroTriple, int dim)
  58. {
  59.    int i = 0;
  60.  
  61.    while( i < dim )
  62.    {
  63.        (***punteroTriple) = rand() % 10;
  64.        printf("Elemento %d : %d\n",i,***punteroTriple);
  65.        system("pause");
  66.        (**punteroTriple)++; //dudas aca
  67.        i++;
  68.    }// fin while
  69.  
  70. } // fin funcion copiarValores
  71.  
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines