Funciones int

Iniciado por FKT, 18 Agosto 2015, 17:00 PM

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

FKT

Hola, el caso es que en un libro de hacking en la sección de programación con C# explica las funciones pero no lo entiendo nada ya que este libro toma por referencia lectores que tengan conocimientos básicos con la programación en C#.

Las funciones que se ponen después de



int (Aquí) (){

}



Un ejemplo que he visto es el de :


#include <stdio.h>
#include <stdlib.h>

int factorial(int){


return 0;
}



No entiendo lo de factorial ni el int de el parentesis y la verdad es que lo veo mucho en los codigos de C#.
Solo hay 10 tipos de personas, las que saben binario y las que no.

DarK_FirefoX

- Lo que estás poniendo no es código en C#, es código C.

Ahora:

int factorial(int){


return 0;
}


Eso es la definición de una función con su cuerpo y retornando un valor, la cual está incorrecta también (a mis conocimientos de C), pues el parámetro de entrada de la función (que está entre paréntesis) debe tener un nombre. Sería algo como:

int factorial(int numero){


return 0;
}


Si esta función esta debajo del main() debe estar declarada encima del main() de esta forma:

#include <stdio.h>
#include <stdlib.h>

int factorial(int numero);

int main()
{
/*...*/
}

int factorial(int numero)
{
/*Cuerpo del método (calculas el factorial) */
}


Espero te quede claro

Salu2s

FKT

Perdona mi ignorancia pensaba que C# era lo mismo que C aunque, corrigeme si me equivoco, C# es para desarrolo web.

Lo siento DarK_FirefoX pero no entiendo lo que me has explicado.
Voy ha volver a formular mi pregunta porque no la he redactado bien.

Que son las funciones y como se utilizan?

Yo siempre he utilizado lo siguiente:

#include <stdio.h>
#include <stdlib.h>

int main(){

return 0;
}



Siempre uso la funcion main(), que diferencia por ejemplo "main" de la "factorial"

Espero que me puedas ayudar.
Solo hay 10 tipos de personas, las que saben binario y las que no.

engel lex

CitarPerdona mi ignorancia pensaba que C# era lo mismo que C aunque, corrigeme si me equivoco, C# es para desarrolo web.


mejor estudia programación en C, en lugar de andar dando tumbos de ciego por ahí -.- c# puede usarse en desarrollo web, pero perfectamente puede ser usado en desarrollo de aplicaciones
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

DarK_FirefoX

Cita de: FKT en 18 Agosto 2015, 23:23 PM
Perdona mi ignorancia pensaba que C# era lo mismo que C aunque, corrigeme si me equivoco, C# es para desarrolo web.

No necesariamente, C# es un lenguaje de programación orientado a objetos, simple, moderno y de proposito general. Es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común (CLI)

Si bien su sintaxis básica deriva de C y de C++, el mismo utiliza el modelo de objetos de la plataforma .NET, aunque incluye mejoras derivadas de otros lenguajes.

Por lo tanto no tiene nada que ver uno con otro.

También se puede utilizar para el desarrollo web utilizando el framework para aplicaciones web: ASP.NET

Cita de: FKT en 18 Agosto 2015, 23:23 PM
Lo siento DarK_FirefoX pero no entiendo lo que me has explicado.
Voy ha volver a formular mi pregunta porque no la he redactado bien.

Que son las funciones y como se utilizan?

Yo siempre he utilizado lo siguiente:

#include <stdio.h>
#include <stdlib.h>

int main(){

return 0;
}



Siempre uso la funcion main(), que diferencia por ejemplo "main" de la "factorial"

Espero que me puedas ayudar.

Las funciones son una manera de encapsular lineas de código que cumplen un propósito particular, que se pueden utilizar luego sin preocuparte por su implementación. Si se tienen funciones correctamente diseñadas es posible ignorar COMO se hace el trabajo, siendo suficiente QUE es lo que se hace.

La definición de una función tiene esta forma:

tipo-de-retorno nombre-funcion(declaracion-parametros, si tiene)
{
    declaraciones
    sentencias
}


Las mismas pueden aparecer en cualquier orden y en un fichero referenciado o varios, aunque no puede estar una función dividida entre archivos.

La función main() es el punto de entrada del programa, por ahi es donde se empieza a ejecutar la aplicación, te puedes haber dado cuenta que la función main() tiene un sentencia return al final. Como main() es una función igual que cualquier otra puede devolver un valor al que lo llama, el cuál a los efectos es entorno en el cual el programa es ejecutado. Típicamente, el valor de retorno es 0, el cual implica que se ejecuto y termino normalmente, valores diferentes a 0 indican inusuales y/o erróneas condiciones de finalización.

Ejemplo de una función:

int factorial(int n);

Esta declaración debe ir antes del main(). La misma dice que factorial es una función que iun parámetro de tipo int llamado n, y retorna un valor int. Esta declaración, la cual es llamada prototipo de función o signatura de la función, tiene que corresponderse con la definición y el uso de la función factorial.

Corrigiendo lo que te decía antes, en la declaración de una función no es necesario especificar el nombre del parámetro, por lo tanto, esto estaría bien:

int factorial(int);

Luego está la definición:

int factorial(int n)
{
/* sentencias a ejectuar */
}


Espero esto te haya aclarado las dudas

Cualquier otra duda, pregunta

Salu2s

FKT

Entiendo, digamos que un programa muy denso o largo se puede dividir en "miniprogramas" o "minisecciones"??  :-\
Solo hay 10 tipos de personas, las que saben binario y las que no.

gAb1

Cita de: FKT en 19 Agosto 2015, 11:01 AM
Entiendo, digamos que un programa muy denso o largo se puede dividir en "miniprogramas" o "minisecciones"??  :-\

Si, más o menos, la finalidad de esto es poder usar varias veces el mismo código sin tener que repetirlo, simplemente se crea una función para poder llamarla donde se necesite.

En OOP existen las clases, que son como plantillas para crear objetos, por ejemplo, la plantilla clientes, declaras los datos personales, etc como variables para que luego puedan ser utilizados para almacenar la información. Dentro de la clase puedes crear funciones específicas para clientes, como nuevo cliente, modificar cliente, etc que son las que utilizan las variables anteriormente declaradas.

ivancea96

Sin ir más lejos, las funciones printf y scanf, como todas las demás de la librería estandar, son eso, funciones. No quieras hacer lo que ellas hacen a mano xd

FKT

#8
No quiero alargar mucho el tema porque seguramente es una cosa muy sencilla pero sigo sin entenderlo :-\

Creo que lo entenderia mejor si alguien me explicara que es el int de int main, el main y también el "()". Y como funcionan.
Solo hay 10 tipos de personas, las que saben binario y las que no.

ivancea96

En C, un main completo es:

int main(int args, char** argc){}

Suponte que el sistema operativo llama a esa función de tu programa. args es el número de argumentos que le pasa, y argc** son los argumentos.

Citarprogram.exe -s -l
argc[0] = "program.exe"
argc[1] = "-s"
argc[2] = "-l"


El int, es porque, al acabar el programa, el sistema operativo recibe un código de error del programa, que es lo que retorna la función "main".

Si lo quieres comprobar sin debugguer, y estás en Windows, ve a la consola, y llama al programa. El retorno del programa se guarda en la variable %errorlevel%.

Citarprogram.exe
echo %errorlevel%

Y verás el retorno de tu programa. Prueba.


Main es una función especial, por ser el ciclo principal del programa.

Y ya no te lío más xD

Lo que importa de momento es que utilices las funciones cuando las necesites.