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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda: con sustitución de funciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda: con sustitución de funciones  (Leído 11,870 veces)
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #20 en: 6 Marzo 2013, 23:06 pm »

Pues así, por ejemplo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <float.h>
  4.  
  5. int main(void){
  6.    int i=0;
  7.    float num,mayor=-FLT_MAX ;
  8.    do {
  9.        printf ("Introduzca el numero %d : ",i+1);
  10.        scanf("%f",&num);
  11.        while (getchar()!='\n');
  12.        if (num > mayor)
  13.            mayor = num;
  14.        i++;
  15.    }while (num!=0);
  16.    printf ("\n\nEl mayor es: %g",mayor);
  17. return EXIT_SUCCESS;
  18. }
  19.  
  20.  

Saluditos!. ...
Debo ser el rey de las cosas complicadas, eso no se me había ocurrido xD.

En su lugar tendría que haber dicho que ordenases esos numeros... Así no te ahorrarias de almacenarlos  ;D


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ayuda: con sustitución de funciones
« Respuesta #21 en: 7 Marzo 2013, 03:10 am »

sizeof es un operador
http://msdn.microsoft.com/es-es/library/0w557fh7.aspx

por qué una función?

en varios lugares le dicen función  :o
http://www.it.uc3m.es/labas/course_notes/dynamic_memory_sizeof_es.html

será porque se usa como una función?



En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #22 en: 7 Marzo 2013, 03:23 am »

Debo ser el rey de las cosas complicadas, eso no se me había ocurrido xD.

En su lugar tendría que haber dicho que ordenases esos numeros... Así no te ahorrarias de almacenarlos
En esa linea un ejercicio mencionado ocasionalmente es el calculo de la mediana: para encontrar al elemento central primero se debe ordenar la lista.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #23 en: 7 Marzo 2013, 03:41 am »

Debo ser el rey de las cosas complicadas, eso no se me había ocurrido xD.

En su lugar tendría que haber dicho que ordenases esos numeros... Así no te ahorrarias de almacenarlos
Siguiendo esa linea un ejercicio seria el calculo de la mediana: para encontrar el elemento al centro primero debe ordenar la lista.

----

en varios lugares le dicen función  :o
http://www.it.uc3m.es/labas/course_notes/dynamic_memory_sizeof_es.html

será porque se usa como una función?
Considerando que para obtener el tamaño de un tipo los paréntesis son obligatorios (con las expresiones no) me parece un error un tanto extraño (en algunos tutoriales).

Caso similar con las sentencias de retorno, frecuentemente se publican programas en estos foros utilizando paréntesis en la forma "return(N);". No se necesitan pero por alguna (extraña) razón los ponen.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ayuda: con sustitución de funciones
« Respuesta #24 en: 7 Marzo 2013, 05:01 am »

Siguiendo esa linea un ejercicio seria el calculo de la mediana: para encontrar el elemento al centro primero debe ordenar la lista.

----
Considerando que para obtener el tamaño de un tipo los paréntesis son obligatorios (con las expresiones no) me parece un error un tanto extraño (en algunos tutoriales).

Caso similar con las sentencias de retorno, frecuentemente se publican programas en estos foros utilizando paréntesis en la forma "return(N);". No se necesitan pero por alguna (extraña) razón los ponen.

Un saludo


AHAHAHAHAHAHA si RIR eso hace al codestyle de cada uno XD, ya se que lo decís por mi  ;-)

En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #25 en: 7 Marzo 2013, 05:53 am »

Honestamente (y sin mala intención) no lo decía como una critica hacia ti.

Es un estilo relativamente usual, revisando mis mensajes el mas viejo es del 2011: Problemas con una funcion en c.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #26 en: 7 Marzo 2013, 07:28 am »

Otra forma de implementarlo sin vectores. Gracias a la magia de los punteros:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. struct Eslabon
  6. {
  7.    int N;
  8.    Eslabon* Anterior;
  9. };
  10. int main()
  11. {
  12.    Eslabon* Numero = (Eslabon*)malloc(sizeof(Eslabon));
  13.    ...........................................................
  14. [/quote]

amchacon ¿has usado algún modo especial al compilar. porque me saltan múltiples errores y en modo no pedantic?:

|8|error: expected specifier-qualifier-list before 'Eslabon'|
||In function 'main':|ntitled38.
|12|error: 'Eslabon' undeclared (first use in this function)|
12|error: (Each undeclared identifier is reported only once|
|12|error: for each function it appears in.)|
|12|error: 'Numero' undeclared (first use in this function)|
|12|error: expected expression before ')' token|
|13|error: 'Buffer' undeclared (first use in this function)|
|28|error: expected expression before ')' token|
||=== Build finished: 8 errors, 0 warnings (0 minutes, 0 seconds) ===|

Y rn PellesC:

Building 0.obj.
\0.c(8): error #2001: Syntax error: expected '}' but found 'Eslabon'.
\0.c(9): error #2156: Unrecognized declaration.
\0.c(12): error #2048: Undeclared identifier 'Eslabon'.
0.c(12): error #2048: Undeclared identifier 'Numero'.
\0.c(12): error #2039: Illegal expression.
\0.c(12): error #2001: Syntax error: expected ')' but found 'malloc'.
\0.c(12): error #2088: Lvalue required.
\0.c(12): error #2001: Syntax error: expected ';' but found 'malloc'.
\0.c(13): error #2048: Undeclared identifier 'Buffer'.
\0.c(18): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(18): error #2168: Operands of '=' have incompatible types 'int' and 'void *'.
0.c(23): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(25): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(28): error #2039: Illegal expression.
C\0.c(28): error #2001: Syntax error: expected ')' but found 'malloc'.
\0.c(28): error #2001: Syntax error: expected ';' but found 'malloc'.
\0.c(29): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(31): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(35): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(37): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(37): error #2168: Operands of '!=' have incompatible types 'int' and 'void *'.
0.c(39): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(40): error #2112: Left operand of '->' has incompatible type 'int'.
*** Error code: 1 ***
Done.

Saluditos".
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #27 en: 7 Marzo 2013, 13:20 pm »

Pues lo debi hacer con el compilador de C++ sin darme cuenta.

Supongo que para que te corra en C tendras que poner la estructura al estilo C (con el typedef y tal).

Cuando éste en casa te confirmo.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #28 en: 7 Marzo 2013, 17:14 pm »

En efecto, para que compile en C solo había que cambiar la declaración de la estructura eslabón:
Código
  1. typedef struct cadena
  2. {
  3.    int N;
  4.    struct cadena* Anterior;
  5. }Eslabon;
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ayuda: con sustitución de funciones
« Respuesta #29 en: 7 Marzo 2013, 19:29 pm »

......................................
Te aventuro a que intentes crear en C el siguiente programa:

- Dado una lista de numeros terminados con un cero, calcula el numero mayor.

No puedes determinar el tamaño del array hasta que hayas terminado de guardar todos los números. Con array estáticos no puedes y con array dinámicos da bastantes problemas.


Aunque para calcular el mayor no hace falta punteros o arrays, para que no se diga que con arrays dinámicos hay grandes problemas:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <float.h>
  4.  
  5. int main(void){
  6.    int i=0,n=1;
  7.    float *num,mayor=-FLT_MAX ;
  8.    num = (float *) malloc (10*sizeof(float));
  9.    while (1) {
  10.        printf ("Introduzca el numero %d : ",i+1);
  11.        scanf("%f",&num[i]);
  12.        if (num[i]==0)
  13.            break;
  14.        if (i>= 9*n){
  15.            num = (float *) realloc (num,sizeof(float)*(i+10));
  16.            n++;
  17.            if ( num == NULL )  {
  18.                            printf("\nOut of memory!\n");
  19.                            return -1;
  20.            }
  21.        }
  22.        if (num [i]> mayor)
  23.            mayor = num[i];
  24.        i++;
  25.    }
  26.    printf ("\n\nEl mayor es: %g",mayor);
  27. return EXIT_SUCCESS;
  28. }
  29.  
  30.  

Saluditos!. ....

P.D: Pongo 10 para que se pueda "ver" que el realloc funciona.
« Última modificación: 7 Marzo 2013, 19:43 pm por leosansan » En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Criptografía - Cifrado por sustitución
.NET (C#, VB.NET, ASP)
hadree 2 8,663 Último mensaje 22 Noviembre 2010, 19:14 pm
por hadree
[Batch] Criptoanalizador del cifrado generico monoalfabetico por sustitucion
Scripting
lShadowl 0 3,942 Último mensaje 26 Febrero 2011, 14:23 pm
por lShadowl
Cifrado por sustitucion ASM
ASM
capiil4d 1 2,892 Último mensaje 19 Junio 2013, 11:23 am
por Eternal Idol
Sustitución directa del EIP
Bugs y Exploits
Lodos76 3 3,293 Último mensaje 10 Marzo 2014, 00:34 am
por Lodos76
[AYUDA] [BATCH] Problemita con sustitución de caracteres... « 1 2 »
Scripting
.:Xx4NG3LxX:. 10 5,360 Último mensaje 21 Febrero 2020, 17:38 pm
por .:Xx4NG3LxX:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines