Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda estudiante acciones y funciones

Estas en el tema de Duda estudiante acciones y funciones en el foro de Programación General en Foros del Web. Hola a todos, he buscado por el foro respuestas sobre la duda que tenemos los que empezamos sobre acciones y funciones. En algunas se dice ...
  #1 (permalink)  
Antiguo 20/10/2010, 16:19
 
Fecha de Ingreso: octubre-2006
Mensajes: 169
Antigüedad: 17 años, 6 meses
Puntos: 2
Duda estudiante acciones y funciones

Hola a todos,

he buscado por el foro respuestas sobre la duda que tenemos los que empezamos sobre acciones y funciones. En algunas se dice que una función se identifica porque devuelve un valor y una acción porque no lo devuelve. Pero en otras esa diferencia no está tan clara.

Por ejemplo, calcular el área de un rectángulo que debo introducir los datos por teclado. Para mí es una función que dentro tiene otras de lectura de teclado, ya que según la definición devuelve un valor. Pero si hago caso de otras definiciones, sería una acción que dentro tiene unas funciones que capturan los datos por el teclado y después la acción hace el cálculo. La verdad, no lo tengo claro.

¿Podéis poner un pequeño código en C en que se vea una acción y una función?

Un saludo y gracias.
  #2 (permalink)  
Antiguo 21/10/2010, 13:03
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda estudiante acciones y funciones

Si no me equivoco lo que a vos te enseñan como Acción es lo que a mí me enseñaron como Procedimiento: un trozo de código que hace cosas con sus parámetros, pide datos si los necesita, pero no devuelve un valor. Una función sería una rutina de código que devuelve un valor, no modifica sus datos de entrada, y no pide datos extra al usuario.

Sí se puede hacer un procedimiento que calcule el área, porque no es lo mismo devolver datos a una rutina del programa que al usuario (lo siguiente pretende ser código PASCAL, disculpa si tiene algún error)
Código:
PROCEDURE AreaCuadrado();
VAR
    lado : INTEGER;
    area : INTEGER;
BEGIN
    READ("Escribe el lado", lado);
    area := lado*lado;
    WRITE("El area es ");
    WRITELN(area);
END;
Lo anterior no devuelve un valor a una rutina que lo invoque, pero sí devuelve datos en la salida estándar. Es un procedimiento.
Lo siguiente sería un programa con una función Area definida:
Código:
PROGRAM AreaCuadrado;
VAR
    lado, area : INTEGER;

FUNCTION AreaCuadrado(INTEGER lado) : INTEGER;
BEGIN
    AreaCuadrado := lado*lado;
END;

BEGIN
    Read("Escribe el lado", lado);
    area = AreaCuadrado(lado);
    WriteLn(area);
END.
Acá la función devuelve un valor al programa principal cuando éste la llama. Una función, en teoría, no debe tocar ni la entrada ni la salida estándar.

Función y Procedimiento son conceptos casi que puramente teóricos, de los lenguajes que conozco solamente Pascal tiene una sintaxis diferente para cada cosa. Los demás simplemente tienen funciones y el programador decide cómo trabajan (como procedimientos o como funciones) siguiendo esa clasificación.


Saludos.
  #3 (permalink)  
Antiguo 21/10/2010, 14:17
 
Fecha de Ingreso: octubre-2006
Mensajes: 169
Antigüedad: 17 años, 6 meses
Puntos: 2
Respuesta: Duda estudiante acciones y funciones

Muchas gracias AlvaroG.

imagino que es esa conceptualidad lo que hace más confuso el tema.

Un saludo.

Etiquetas: acciones, funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:43.