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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 102
1  Programación / Programación C/C++ / Re: CRC16 en: 29 Marzo 2023, 21:39 pm
Por un lado te preguntaría si estás 100% seguro de que el programa recibe los siguientes valores, en el orden indicado y ninguno más:
Código:
0x0B 0x01 0x56 0x50
Tanto si se le están pasando valores anteriores a esos como si el orden es diferente, el resultado también lo será.

Y por otro lado:
Citar
Me llama la atención que usa un número mayor que 9 donde ya cambia en hexadecimal pero no se si eso tiene algo que ver, incluso probé en ves de 11 17 que es B en hex y nada.
No entiendo qué fue lo que te resultó extraño aquí. La B en hexadecimal es un carácter válido y corresponde al 11 en decimal. No entiendo qué tiene ver el 17 en todo esto.
2  Programación / Programación C/C++ / Re: CRC16 en: 19 Marzo 2023, 13:44 pm
Sí, el resultado es dependiente de los valores anteriores.
Lo que tienes que hacer es lo mismo que ya te puse pero pasando varios valores antes de mostrar el resultado.
Código
  1. #include "crc16.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[]) {
  7.    Crc16 crc16;
  8.    crc16.add(0x06);
  9.    crc16.add(0x01);
  10.    crc16.add(0x56);
  11.    crc16.add(0x53);
  12.  
  13.    cout << "Salida: " << crc16.value() << endl;
  14. }

Para ejecutar esto en un compilador online como OnlineGDB tienes que crear varios ficheros (en la parte de arriba a la izquierda del botón de "Run").
Cada fichero tiene que tener el nombre adecuado: "crc16.h", "crc16.cpp" y en el que pongas la función `main()` que por defecto se llamará "main.cpp"
Copia el contenido correspondiente a cada fichero y con darle al botón de "Run" ya verás el resultado
3  Programación / Programación C/C++ / Re: CRC16 en: 18 Marzo 2023, 20:34 pm
No termino de entender qué expresión es hexadecimal.
El número que indicaste en el mensaje original es: 06015653 y ese número no es hexadecimal, es octal.

Quiero entender que son varios números hexadecimales por separado lo que quieres pasar pero no puedo adivinar si quieres:
- 0x06 + 0x01 + 0x56 + 0x53
- 0x0601 + 0x5653
- 0x06015653 <-- este espero que no porque ya te adelanto que también se pasa del rango permitido
4  Programación / Programación C/C++ / Re: Secuencia de números en C en: 18 Marzo 2023, 01:22 am
Tienes que buscar información sobre:
- Entrada de datos: en C se usa la librería `<stdio.h>` y la función `scanf()` para leer números de teclado
- Estructuras de control iterativas: en tu caso concreto la que mejor te vendrá es `for()` aunque cualquiera sirve en el fondo
- Salida de datos: en C se usa la misma librería que para la entrada `<stdio.h>` y la función `printf()` para mostrar mensajes por pantalla
5  Programación / Programación C/C++ / Re: CRC16 en: 18 Marzo 2023, 01:17 am
El código que pasaste no hace nada por si solo.
Eso es tan sólo una clase, es decir, un tipo de dato inventado que permite crear "variables" de ese tipo y cada variable tendrá:
- su propio estado: la variable `crcval`
- una serie de habilidades o cosas que sabe hacer: las funciones `init()`, `set()`, `value()` y `add()`

Para ejecutar un programa en C++ necesitas de una función `main()` que es lo que realmente se ejecuta y ahí es donde tienes que usar estas otras partes auxiliares.
Entiendo que lo que quieres hacer es algo como esto:
Código
  1. #include "crc16.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[]) {
  7.    Crc16 crc16;
  8.    crc16.add(06015653);
  9.  
  10.    cout << "Salida: " << crc16.value() << endl;
  11. }

Problemas de todo esto:
- El número `06015653` (en notación octal porque empieza por 0) equivale al número: 1579947 (en notación decimal)
- La función `add()` recibe un argumento de tipo `unsigned short` cuyo rango de valores permitidos es: [0, 65535]
- No puedes pasar ese número a la función porque no va a funcionar correctamente, deberías cambiar el parámetro de `unsigned short` a `int` para aumentar ese rango de valores permitidos
6  Programación / Programación General / Re: DUDA Big O: diferencia entre O(n^2) y O(2^n) en: 19 Febrero 2023, 01:46 am
Ya tiene unos días este tema pero creo que esto puede ser de ayuda para cualquiera que tenga dudas con este tema:
https://www.wolframalpha.com/input?i=representar+x%5E2+2%5Ex&lang=es
Si representas ambas funciones en una gráfica (como en el enlace anterior), se puede ver fácilmente que el ritmo de crecimiento es ligeramente diferente...  :silbar:
7  Programación / Programación C/C++ / Re: error en cola prioritaria c++ en: 19 Febrero 2023, 01:40 am
Hola @mari2diaz,
Echando un vistazo al código que has pegado, quedan bastantes incógnitas como para saber qué está ocurriendo :huh:
No podemos ver las implementaciones de varias funciones como `insertarPrioridad_1()` o `imprimirListaAlumnos()` ni los atributos de la clase,
y más importante, no sabemos con qué datos estás ejecutando el programa para poder ver por dónde debería ir la ejecución.

Si el código no es excesivamente grande, podrías darnos un poco más de información y si lo fuese,
intenta crear un ejemplo más pequeño pero que tengamos una visión completa y así ver qué está fallando.  ;D
8  Programación / Programación C/C++ / Re: Problema con ejecución programa en C++ en: 2 Febrero 2023, 22:00 pm
El problema no tenía nada que ver con una mala instalación de VSCode sino seguramente falta de compilador.
Y en 2023 yo no dejaría VSCode de lado a favor de Codeblocks (opinión personal)

Por ir por partes, supondré casi con total seguridad que el problema está ocurriendo en un ordenador bajo Windows (el cual no trae un compilador de C++ por defecto).
El error que aparece tiene pinta de que tu ordenador te está diciendo "quieres que ejecute este programa pero no tengo ni idea de qué programa tengo que usar para eso"  :xD

Entonces por un lado, necesitas instalar un compilador de C++. En Windows tienes varias opciones ya sea el compilador de Microsoft o el archiconocido gcc (mediante MinGW, Cygwin, WSL,...)
Ya que estás empezando y por no complicarlo de más, creo que la mejor opción es gcc mediante MinGW y casualmente aquí tienes una guía oficial con todos los pasos: https://code.visualstudio.com/docs/cpp/config-mingw
En esa guía, tras echarle un vistazo rápido, parece que que te enseñan a instalarlo mediante MSYS2 (importante: recuerda agregar la ruta correcta al PATH para tener acceso global a esos comandos, está indicado también)

Cuando hayas llegado al paso de:
Código:
g++ --version
Y te funcione y te muestre la versión de g++ que tienes instalada, ya puedes celebrar que tienes instalado y configurado el compilador de C++ en Windows  ;-) ;-)

Ahora toca volver a VSCode, instalar las extensiones recomendadas para C/C++ (que incluyen autocompletado y otras herramientras útiles para el desarrollo) y ya puedes ejecutar tu programa.
La primera vez que le des a "Run" te saldrá una lista con los compiladores disponibles para que le digas a VSCode con cuál quieres que ejecute el programa. Elige "g++" (es posible que aparezcan varios muy similares) y listo
Con esto se te creará un fichero .json con la configuración para ejecutar ese proyecto y así ya puedes ejecutarlo las veces que necesites siguiendo el mismo procedimiento.

Ahora el truco final:
La salida que se muestra tras la ejecución del programa es bastante fea a mí parecer.
En VSCode hay otra extensión muy famosa que se llama "Code Runner" y que te va a permitir ejecutar los programas en C++ de una forma mucho más sencilla y limpia.
Esta extensión también necesita de un compilador de C++ externo pero como ya lo tienes que tener instalado, no debería suponerte ningún problema.
Y ahora ya puedes ejecutar el programa haciendo clic derecho sobre el código y eligiendo "Run code" (o algo similar) o con el shortcut que aparecerá ahí mismo (Ctrl+Alt+N si mal no recuerdo)

Si vas en VSCode a: Ajustes/Extensions/Run Code configuration/Executor Map y pulsas en "Edit in settings.json", se te abrirá la configuración de VSCode en formato json y verás una serie de lenguajes y la instrucción que usará la extensión "Code Runner" para ejecutar cada uno de ellos. Puedes ir a la sección de "cpp" y añadir por ejemplo "cls;" (clear para quien esté en otro SO) al principio del comando para que se limpie la consola antes de cada ejecución y la salida se vea todavía mejor.

Espero que con esto se solucione el problema y puedas disfrutar del maravilloso mundo de C++  >:D
9  Programación / Programación C/C++ / Re: Buen dia, soy nuevo programando en C++, pero no me permite ejecutar el archivo en: 4 Diciembre 2022, 23:09 pm
Aquí tienes un tema antiguo con el mismo problema. Échale un vistazo por si te sirve de ayuda.
https://foro.elhacker.net/programacion_cc/error_archivo_fuente_no_compilado_solucionado-t481136.0.html

Si no te funciona, enséñanos la configuración del DevC++ por si hubiera algo mal configurado.
Principalmente tienes que mirar la configuración que mencione algo sobre compilador/compilar.

El programa está bien y no tiene nada que ver con el problema pero ya puestos, un consejo (cuanto antes mejor  :xD):
  • Cambia la llamada system("pause"); por cin.get();. El resultado va a ser el mismo pero es una alternativa mejor.

    Y otro consejo: a punto de empezar el 2023, yo no utilizaría DevC++. Es un programa bastante antiguo y obsoleto.
    Puedes usarlo de primeras para seguir más fácilmente las primeras lecciones del curso pero busca alguna opción más actualizada en cuanto te sientas preparado.
10  Programación / Programación C/C++ / Re: Programacion de sockets en C++ en: 23 Noviembre 2022, 21:17 pm
El código en C funcionará también para C++ por lo que puedes usar las mismas que ves en los ejemplos.
Si quieres usar una librería de sockets específica de C++ seguramente sea un módulo ya hecho por otra persona, igual que te pasaba en Python  :rolleyes:
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines