Sie sind auf Seite 1von 13

SUBSECRETARA DE EDUCACIN SUPERIOR DIRECCIN GENERAL DE EDUCACIN SUPERIOR TECNOLGICA INSTITUTO TECNOLGICO DE SAN LUIS POTOS

INSTITUTO TECNOLGICO DE SAN LUIS POTOS

INVESTIGACIN

RUTH ALVAREZ MRQUEZ

31 DE MAYO DEL 2013

SAN LUIS POTOS, S.L.P.

FUNCIONES Y PARMETROS
Los parmetros se usan para mandar valores a las funciones. Una funcin trabajar con los parmetros para realizar las acciones. Por decirlo de otra manera, los parmetros son los valores de entrada que recibe una funcin. Por poner un ejemplo sencillo de entender, una funcin que realizase una suma de dos nmeros tendra como parmetros a esos dos nmeros. Los dos nmeros son la entrada, as como la salida sera el resultado de la suma, pero eso lo veremos ms tarde. Veamos un ejemplo anterior en el que crebamos una funcin para mostrar un mensaje de bienvenida en la pgina web, pero al que ahora le vamos a pasar un parmetro que contendr el nombre de la persona a la que hay que saludar.

Como podemos ver en el ejemplo, para definir en la funcin un parmetro tenemos que poner el nombre de la variable que va a almacenar el dato que le pasemos. Esa variable, que en este caso se llama nombre, tendr como valor el dato que le pasemos a la funcin cuando la llamemos. Adems, la variable donde recibimos el parmetro tendr vida durante la ejecucin de la funcin y dejar de existir cuando la funcin termine su ejecucin. Para llamar a una funcin que tiene parmetros se coloca entre parntesis el valor del parmetro. Para llamar a la funcin del ejemplo habra que escribir:

Al llamar a la funcin as, el parmetro nombre toma como valor "Alberto Garca" y al escribir el saludo por pantalla escribir "Hola Alberto Garca" entre etiquetas <H1>. Los parmetros pueden recibir cualquier tipo de datos, numrico, textual, boleano o un objeto. Realmente no especificamos el tipo del parmetro, por eso debemos tener un cuidado especial al definir las acciones que realizamos dentro de la funcin y al pasarle valores, para asegurarnos que todo es consecuente con los tipos de datos que esperamos tengan nuestras variables o parmetros. Mltiples parmetros Una funcin puede recibir tantos parmetros como queramos y para expresarlo se colocan los nombres de los parmetros separados por comas, dentro de los parntesis. Veamos rpidamente la sintaxis para que la funcin de antes, pero hecha para que reciba dos parmetros, el primero el nombre al que saludar y el segundo el color del texto.

Llamaramos a la funcin con esta sintaxis. Entre los parntesis colocaremos los valores de los parmetros.

He colocado entre los parntesis dos variables en lugar de dos textos entrecomillados. Cuando colocamos variables entre los parmetros en realidad lo que estamos pasando a la funcin son los valores que contienen las variables y no las mismas variables. Los parmetros se pasan por valor Al hilo del uso de parmetros en nuestros programas Javascript, tenemos que saber que los parmetros de las funciones se pasan por valor. Esto quiere decir que estamos pasando valores y no variables. En la prctica, aunque modifiquemos un parmetro en una funcin, la variable original que habamos pasado no cambiar su valor. Se puede ver fcilmente con un ejemplo.

En el ejemplo tenemos una funcin que recibe un parmetro y que modifica el valor del parmetro asignndole el valor 32. Tambin tenemos una variable, que inicializamos a 5 y posteriormente llamamos a la funcin pasndole esta variable como parmetro. Como dentro de la funcin modificamos el valor del parmetro podra pasar que la variable original cambiase de valor, pero como los parmetros no modifican el valor original de las variables, sta no cambia de valor. De este modo, una vez ejecutada la funcin, al imprimir en pantalla el valor de miVariable se imprimir el nmero 5, que es el valor original de la variable, en lugar de 32 que era el valor con el que habamos actualizado el parmetro. En Javascript slo se pueden pasar las variables por valor.

Funciones de entrada y salida de datos


Entrada/salida, E/S o input/output I/O, Son interfaces que transfieren informacin entre sistemas a personas o viceversa.

Las entradas son interfaces que reciben datos o seales de un sistema o persona externo, para luego ser llevadas a una unidad que luego realiza otra funcin (ser retransmitidas o procesadas).

Las salidas son interfaces que envan datos o seales a otros sistemas o personas desde una unidad, las respuestas pudieron ser solicitadas previamente o no, o los datos enviados pueden ser en respuesta a procedimientos rutinarios. Cuando nos referimos a entrada/salida estndar (E/S estndar) queremos decir que los datos o bien se estn leyendo del teclado, bien se estn escribiendo en el monitor de video. En el lenguaje c++ tenemos varias alternativas para ingresar y/o mostrar datos, dependiendo de la librera que vamos a utilizar para desarrollar el programa.

Las operaciones de entrada y salida no forman parte del conjunto de sentencias de C++, sino que pertenecen de C++. al Ellas conjunto se de funciones y en clases de

la biblioteca estndar

incluyen

los archivos de

cabecera iostream.h por lo que siempre que queramos utilizarlas deberemos introducir la lnea de cdigo #include <iostream.h>

Esta biblioteca es una implementacin orientada a objetos y est basada en el concepto de flujos. A nivel abstracto un flujo es un medio de describir la secuencia de datos de una fuente a un destino o sumidero. As, por ejemplo, cuando se introducen caracteres desde el teclado, se puede pensar en caracteres que fluyen o se trasladan desde el teclado a las estructuras de datos del programa. Los objetos de flujo que vienen predefinidos sern:

cin, que toma caracteres de la entrada estndar (teclado); cout, pone caracteres en la salida estndar (pantalla);

cerr y clog ponen mensajes de error en la salida estndar.

SALIDA (OUT)

El operador de insercion, <<, inserta datos en flujo, ejemplos: cout << 500; // envia el numero 500 a la pantalla cout << " esto es una cadena " ; // visualiza Esto es una cadena

Es posible usar una serie de operadores << en cascada, ejemplo:

cout << 500 << 600 << 700;

visualiza 500, 600, 700.

De igual modo, cout << 500 <<", " << 600 << ", " << 700;

visualiza 500, 600, 700

C++ utiliza secuencias de escape para visualizar caracteres que no estn representados por simbolos tradicionales, tales como \a,\b,etc. ejemplo: cout<< "\n" // salta a una nueva lnea cout<< "Yoestoypreocupado \nnoporel funcionamiento \nsino porla claridad \n";

ENTRADA (CIN)

El archivo de cabecera iostream.h de la biblioteca C++proporciona un flujo de entrada estndar ciny un operadorde extraccin, >>, para extraer valores del flujo yalmacenarlos en variables, la entrada normal es el teclado. Ejemplo:

int n, n1, n2; // se declara las variables n, n1 y n2 cin >> n; // el cursor aparece en pantalla esperando un // date de entrada por el teclado para ponerlo // en la variable n.

// abajo, el cursor aparece despues del mensaje entre comillas // esperando dos valores, cada uno seguido de la tecla ENTER.

cout <<"introduscalos valores den1y n2"; cin >> n1 >> n2

Uso de funciones de alto nivel

Hay varias maneras de usar entrada/salida en ensamblador, vamos a presentar la ms sencilla, usando funciones de alto nivel del lenguaje de programacin C. En C, las instrucciones bsicas de entrada salida son printf y scanf, las cuales permiten respectivamente enviar (print, imprimir) o recibir (scanf, leer) informacin. Printf La funcin printf permite escribir en la salida estndar (monitor), proporcionando un formato especfico para los datos a escribir. Esta funcin recibe una cantidad variable de argumentos, en los que solo uno de ellos es obligatorio: la cadena de formato. Este parmetro es una cadena que permite indicar el formato que tendr la impresin que se quiere realizar, y en base a la cual se determina la cantidad y tipo de los parmetros restantes. Dicha cadena puede contener caracteres comunes y corrientes, los cuales se mostrarn en pantalla exactamente como se encuentran en la cadena, y un segundo tipo de caracteres conocidos como especificadores de formato, los cuales estn formados por un smbolo de porcentaje (%) y un cdigo de formato.

Scanf

La funcin scanf permite leer desde la entrada estndar, proporcionando un formato especfico para los datos a recibir. De forma anloga a la funcin printf, esta funcin permite reconocer los tipos de datos especificados por el estndar ANSI de C tales como nmeros, caracteres y cadenas. Los argumentos recibidos por la funcin scanf son similares a los de la funcin printf, siendo de nuevo el primero de ellos la cadena de formato. Sin embargo en este caso la cadena de formato es utilizada para especificar una "plantilla" que deber ser completada con la entrada proporcionada por el usuario. En este caso, por cada especificador de formato que se encuentre en la cadena ser necesario proporcionar un apuntador a la direccin de memoria en la que ser almacenado el elemento reconocido. Los especificadores de formato compatibles con la funcin scanf son los mismos que para printf.

Acerca de los argumentos

Una diferencia importante entre las funciones printf y scanf consiste en la manera en que se les pasan los argumentos. Todos los argumentos de una llamada a la funcin scanf (a excepcin de la cadena de formato) son pasados por referencia, es decir, se proporciona la direccin de la variable y no su valor. Esto se debe a que la funcin utiliza estas variables para almacenar un valor ledo de la entrada estndar y en consecuencia necesita saber la posicin de memoria en la que el mismo ser almacenado. En contraparte, la funcin printf no necesita conocer la direccin de las variables, sino el valor que contienen para poder escribirlo en la salida estndar. Por esta razn, todos los tipos de dato simple (enteros, caracteres, etc.) son pasados por valor. Algunas otras variables como los arreglos y las estructuras (esto incluye las cadenas ya que son arreglos de caracteres) son pasados por referencia, pero esto se debe a limitaciones del pase de parmetros por valor (ya que los parmetros se almacenan en la pila, y no a que la funcin printf necesite conocer la direccin de dichos argumentos.

E/S de alto nivel, definida por el estndar ANSI. Tambin se denomina sistema de archivos con bffer. E/S de bajo nivel, o E/S de tipo UNIX. E/S por consola. Los dos estndares ANSI y UNIX son redundantes. Turbo C admite los dos, pero no deben utilizarse dentro de un mismo programa funciones de ambos.

E/S de caracteres. Funciones getche () y getch () Son las dos funciones bsicas que capturan caracteres simples por teclado. Los programas que utilizan estas funciones deben incluir el archivo de cabecera conio.h mediante una sentencia #include. Ambas funciones devuelven el carcter ledo del teclado (sin esperar a pulsar la tecla ). La funcin getche () muestra en pantalla el carcter tecleado. No as la funcin getch (). El uso correcto de estas funciones es mediante sentencias del tipo: char a; /* Tambin puede declararse como int */ (Pascual, 2013)

Funciones con paso de parmetro por valor


Este mtodo copia el valor de los argumentos sobre los parmetros formales, de manera que los cambiosde valor de los parmetros no afectan a las variables utilizadas como argumentos en la llamada. Lo importante en el paso por valor es el valor del argumento, por eso es indiferente si este argumento es una variable, una constante o una expresin.

Por defecto, los parmetros se pasan por valor. Esto significa que si el valor de la variable que se pasa como parmetro a la funcin sufre algn cambio en su valor dentro de la funcin, ste cambio no afectar al valor original de la variable. El ejemplo siguiente aclara las dudas de mejor manera: <?php $original = "Esto es fuera de la funcin"; function cambio($original){ $original = "Esto es dentro de la funcin"; echo $original; } echo "Fuera de la funcin la variable es: "; echo $original."<BR>"; echo "Dentro de la funcin, la variable es: "; cambio($original); echo "<BR>Esto est fuera de la funcin de nuevo: "; echo $original; ?> Lo anterior produce el siguiente resultado:

(anonimo, Aula facil, 2011)

Funciones con paso de parmetro referencia


A diferencia del paso por valor, en el paso por referencia los parmetros no copian el valor del argumento, sino que comparten su valor. Por lo que cuando cambia el valor del parmetro tambin cambia el valor de la variable utilizada como argumento en la llamada. La forma de indicar un parmetro por referencia es anexar el smbolo &al final del nombre de la variable de tipo en la lista de parmetros formales, tanto en el prototipo de la funcin como en el encabezado de su definicin. Cuando se pasan parmetros por referencia, le damos autorizacin a la funcin de cambiar permanentemente el valor original de la variable. Para pasar siempre un parmetro por referencia, basta con anteponer un ampersand (&) al nombre del parmetro en la definicin de la funcin de la siguiente forma: <?php $original = "Esto es fuera de la funcin"; functioncambio_total(&$original){ $original = "Esto es dentro de la funcin y fuera de la funcin"; echo $original; } echo "Fuera de la funcin la variable es: "; echo $original."<BR>"; echo "Dentro de la funcin, la variable es: "; cambio_total($original); echo "<BR>Esto est fuera de la funcin de nuevo: "; echo $original; ?> El cdigo anterior produce la siguiente salida:

(anonimo, Aula facil, 2011) (Ricardo, 2003)

Apuntadores hacia las funciones


| Un apuntador a una funcin contiene la direccin de la funcin en memoria El nombre de la una funcin es realmente la direcci'on inicial en memoria del cdigo que ejecuta la tarea de dicha funcin. Estos apuntadores pueden ser pasados a funciones, refresado de las funciones, almacenados en arreglos, y asignados a otros apuntadores de funcin Se debe tener cuidado con la declaracin: int * f1() f1 es una funcin sin parmetros que regresa un apuntador a un entero int (*f1)() f1 es un apuntador a una funcin sin parmetros que regresa un entero

La aritmtica de apuntadores no tiene sentido en los apuntadores a funciones Los apuntadores normales se pueden inicializar a travs de otra variable del mismo tipo, (parasitaje), o por asignacin de memoria, los apuntadores de funciones solo pueden inicializarse por parasitaje.

Nombres funciones y apuntadores a funciones

Cuando una funcin aparece como un operando, esta es convertida en un apuntador al principio del cdigo ejecutable Considerar: int f() { ...... } main() {

int (*p)(); int i; p = f; /* parasitaje: p apunta hacia f */ p = f(); /* INVALIDO */ i = p(); /* aplicando operador llamada() a p */ i = f(); /* aplicando opreador llamada() a f */ i = (*p)(); /* equivalente a i=f() */ i }

Ejemplo de uso: arreglo funciones /* Programa de arreglo de funciones, que puede reemplazar una estructura switch */ #include<math.h> main() { staticdouble (*action[3])(double) = ffabs, sqrt, expg; int i; doublex,y; x=1.0; printf(''De un numero (0-2): ''); scanf(''%d'',&i); y = (*action[i])(x); printf(''nn encontramos: %lfnn'',y); } Nota: El arreglo action es un arreglo de tres apuntadores a funciones doubles, que regresan un double y esta inicializado en fabs, sqrt y exp. (anonimo, cryptomex.org, 2004) CONCLUSIN Las funciones bsicas de entrada y salida en el lenguaje C, nos sirven para poder introducir datos a la computadora de manera que el computador pueda entenderlos, para ello existen bibliotecas que nos ayudan a introducir los datos.

Bibliografa
anonimo. (24 de enero de 2004). cryptomex.org. Recuperado el 28 de mayo de 2013, de cryptomex.org: http://cryptomex.org/Tutorial-LengC/apun_fun.html anonimo. (13 de mayo de 2011). Aula facil. Recuperado el 28 de mayo de 2013, de Aula sacil: http://www.aulafacil.com/php/curso/Lecc-22.htm Pascual, A. S. (16 de febrero de 2013). alfredosalinas-algoritmos.blogspot.mx. Recuperado el 28 de mayo de 2013, de alfredosalinas-algoritmos.blogspot.mx: http://alfredosalinasalgoritmos.blogspot.mx/2013/02/funciones-basicas-de-entrada-y-salida.html Ricardo. (09 de Diciembre de 2003). informatica uv . Recuperado el 28 de mayo de 2013, de http://informatica.uv.es/mguia/asignatu/INF/2003_04/PR8/pract08_2003.pdf

Das könnte Ihnen auch gefallen