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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 161
91  Programación / Programación C/C++ / Re: Pilas de caracteres en C en: 19 Septiembre 2021, 20:55 pm
Usa el stack.
Por ejemplo con la cadena 'mi caso,a.' tiene que ocurrir esto:
'm': la introduzco al stack. stack: 'm'
'i': la introduzco al stack. stack: 'mi'
' ': la introduzco al stack. stack: 'mi '
'c': la introduzco al stack. stack: 'mi c'
'a': la introduzco al stack. stack: 'mi ca'
's': la introduzco al stack. stack: 'mi cas'
'o': la introduzco al stack. stack: 'mi caso'
',': borro el ultimo elemento del stack. stack: 'mi cas'
'a': la introduzco al stack.  stack: 'mi casa'
'.': dejo de procesar la cadena. stack: 'mi casa'

Por tanto debes hacer uso del stack que te han proporcionado para realizar el trabajo.
Además deberás inventar algo para poder imprimir la cadena que hay guardada en la stack en orden y sin vaciarla.

Espero que así explicado veas que no hay que usar ese array auxiliar. Si sabes usar un stack (el ejercicio está pensado para eso) no te será difícil.
92  Programación / Programación C/C++ / Re: Pilas de caracteres en C en: 19 Septiembre 2021, 18:20 pm
Citar
Por cada operación se deben mostrar los caracteres que queden.
Según entiendo se debe mostrar la cadena procesada hasta ese momento. Pero cuando encuentras el '.' cierras el programa directamente.
Para el '!' escribes un '\0' (que te machaca el carácter que has escrito anteriormente), muestras tmpCad (recuerda que solo tiene '\0') y regresas de la función sin mirar los demás caracteres.

Además tienes toda una pila que no usas para nada. ¿Estás seguro que debes usar el array tmpCad para el ejercicio?
93  Programación / Programación C/C++ / Re: Llenar abla de access desde winform c++ en: 19 Septiembre 2021, 17:50 pm
Eso es .Net, como trabaje sin ese framework deberá encontrar otra cosa.
94  Programación / Programación C/C++ / Re: Dato tipo Booleano dentro de DO WHILE y WHILE en: 18 Septiembre 2021, 15:21 pm
Te recomiendo este hilo: https://foro.elhacker.net/programacion_cc/escapar_de_un_ciclo_con_getasynckeystate-t511897.0.html
95  Programación / Programación C/C++ / Re: Escapar de un Ciclo con GetAsyncKeyState en: 15 Septiembre 2021, 15:15 pm
Si cuando vas a escribir un nuevo post o una respuesta miras la barra de herramientas que hay justo encima del cuando de entrada, hay una lista desplegable que dice Código GeSHi. En ella hay muchos lenguajes. Debes elegir con el que vas a escribir el trozo de código.

Automáticamente aparecerá un par de etiquetas en el cuadro de escritura entre corchetes con code=lenguaje y /code. Entre las dos etiquetas escribes tu código.
96  Programación / Programación C/C++ / Re: Escapar de un Ciclo con GetAsyncKeyState en: 13 Septiembre 2021, 18:13 pm
Usa etiquetas GeSHi para poner tu código, lo encontrarás como desplegable en la barra de botones del post.

Respondiendo a tu mensaje cambia ese 0x8000 por un 1.
El 0x8000 lo que hace es mirar si la tecla se está pulsando durante la llamada a la función, el 1 informa si desde la anterior llamada a la función se ha pulsado la tecla, es decir, informa si la tecla en algún momento ha sido pulsada. Creo que ese es el comportamiento que estás buscando.

Aquí está la información al completo de cómo funciona: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
97  Programación / Programación C/C++ / Re: Ciclo DO WHILE en: 7 Septiembre 2021, 14:03 pm
Para entender cómo funciona eso debes comprender sobre el ámbito de las variables. Una variable existe desde el bloque que se crea (lo que hay dentro de unas llaves { }) y ocupa tanto a ese bloque como a todos los internos. Por lo tanto un bloque interno puede manipular una variable de un bloque más externo y esta se verá afectada pues sigue trabajando en su bloque.

Después está la ocultación: una puede declarar una variable en un bloque interno con el mismo nombre que una variable de un bloque externo. A partir de entonces y hasta el final de ese bloque interno cunado se nombre dicha variable hará referencia a la del bloque interno, la más externa está oculta del código.

Un programa ejemplo:
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    int dato = 6;
  5.  
  6.    printf("Dato del bloque externo: %d\n", dato);
  7.  
  8.    {
  9.        int dato = 7; // El dato de este bloque oculta al del bloque externo
  10.        printf("Dato dentro del primer bloque: %d\n", dato);
  11.    }
  12.  
  13.    printf("Dato del bloque externo: %d\n", dato);
  14.  
  15.    {
  16.        dato += 4; // Este dato es el del bloque externo
  17.        printf("Dato del segundo bloque: %d\n", dato);
  18.    }
  19.  
  20.    printf("Dato del bloque externo: %d\n", dato);
  21. }
98  Programación / Programación C/C++ / Re: programa en c que cambia todas las vocales por una "e" en: 3 Septiembre 2021, 23:22 pm
Bueno, seguramente está empezando y coincidirás conmigo que esa es la forma de hacer de la mayoría de los tutoriales de internet.
99  Programación / Programación C/C++ / Re: Pasar puntero en recursion en: 29 Agosto 2021, 12:48 pm
Te he modificado el programa para que funcione y te he escrito en los comentarios el por qué de cada cambio.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //
  5. // Acuérdate de realizar uan función que libere todos los nodos que hayas creado.
  6. //
  7.  
  8. // rNodo no existe, al menos en este código que nos has pasado
  9. typedef struct rLista {
  10. int dato;
  11. struct rLista * sig;
  12. } * tLista;
  13.  
  14. // tLista ya es un puntero. Esta función sólo genera un dato en en heap y lo devuelve,
  15. // por tanto no hay que regresar un puntero a puntero.
  16. tLista crear_nodo (int nuevo_dato) {
  17. tLista nuevo_elemento = malloc (sizeof(struct rLista));
  18. nuevo_elemento->dato = nuevo_dato;
  19. nuevo_elemento->sig = NULL;
  20. return nuevo_elemento;
  21. }
  22.  
  23. // nuevo_elemento debe ser un puntero a la dirección del heap con el contenido
  24. // relleno de la estructura y por tanto no un puntero a puntero,
  25. tLista agregar_final (tLista * ppio, tLista nuevo_elemento) {
  26.    // ppio es un puntero a puntero y eso es para que puedas modificar el puntero que
  27.    // está en otra función. ppio debe ser dereferenciado
  28. if (!*ppio) *ppio = nuevo_elemento;
  29. // El parámetro que se debe pasar a agregar_final es el puntero al campo sig del dato apuntado por ppio
  30. // por eso debe pasarse la referencia & a sig del puntero -> al que hace referencia * ppio
  31. else (*ppio)->sig = agregar_final(&((*ppio)->sig), nuevo_elemento);
  32.  
  33. return *ppio;
  34. }
  35.  
  36. //tLista ya es un puntero y solo hay que recorrerlo, no hay que pasarle un puntero a puntero
  37. int contar_elementos (tLista ppio) {
  38. if (!ppio) return 0;
  39. // Usar una variable contandor haría que se reiniciara cada vez, por tanto lo que hay que hacer
  40. // es añadir 1 a la siguiente llamada a la faunción. Así es como funciona la recursión:
  41. // Cuando ppio sea NULL devolverá 0 y no hará más llamadas, la función anterior devolverá 1 + 0,
  42. // la anterior devolverá 1 + 1 + 0... y así se recorrerá la lista de llamadas hasta la función inicial
  43. // que devolverá la suma de todas las llamadas al llamante
  44. else return 1+contar_elementos(ppio->sig);
  45. }
  46.  
  47. int main (void) {
  48. tLista ppio = NULL;
  49.  
  50. agregar_final(&ppio,crear_nodo(5));
  51. agregar_final(&ppio,crear_nodo(6));
  52.  
  53.        // Muestra el uso de contar_elementos
  54. printf("Elementos en la lista: %d", contar_elementos(ppio));
  55. }
100  Programación / Programación C/C++ / Re: Numeros primos n/2 Limite superior en: 23 Agosto 2021, 18:57 pm
n es el número al que se buscan los primos.
\frac{n}{\frac{n}{2}} = 2
y 2 es el primer primo. Así
\frac{n}{\frac{n}{2}+1} < 2
Por lo que cualquier número por encima de
\frac{n}{2}
salvo n, no dará un número entero y por tanto no es divisible.
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines