Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.

Slides:



Advertisements
Presentaciones similares
Estructuras de control Secuenciales y selectivas
Advertisements

Tema 5 Sentencias básicas. Sentencia –Línea de código en C Básicas –Entrada de datos desde el teclado –Salida de datos por la pantalla –Asignación de.
Instrucciones Básicas Entrada de Información
Fundamentos de Programación I Agradecimientos al Ing. Namuel Solórzano Peralta por el contenido de esta presentación.
Estructuras de decisión en C
Funciones y recursividad
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Repaso para la construcción del intérprete 2012
Elementos básicos del Lenguaje
Fundamentos de la Programación Estructurada
Procedimientos y Funciones
Programación I Teoría IV
Funciones. Programación, Algoritmos y Estructuras de Datos.
EJERCICIOS DE PROGRAMACION
FUNCIONES EN C.
INFORMATICA I Funciones CLASE 13.
ESTRUCTURA DEL LENGUAJE C
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
Programación Estructurada
Algoritmo y Estructura de Datos I
Funciones Funciones De biblioteca Definidas por el usuario
Una breve introducción
SOBRECARGA DE FUNCIONES
Ejemplos en C /* Ejemplos L/E en C con printf y scanf */ #include #include main(){ int i; int i; char nombre[30]; char nombre[30]; printf ("\nIntroduce.
17/09/2014Catedra de Programacion I1 Programación I Funciones.
Acciones y funciones Concepto
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
Funciones en lenguaje C
Funciones y procedimientos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
El lenguaje de programación C - Funciones -
Subrutinas.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Creación de Aplicaciones
Tema 6: Clases Antonio J. Sierra.
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Tema 3 Entrada y Salida.
Tema 9 Estructuras.
Semana 5 Subprogramas..
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Estructura de un programa en C
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.

Lenguaje C Ing. Sonia Alexandra Pinzón Nuñez
Sintaxis.
Descomposición Modular. Funciones
Programación en Lenguaje C
Introducción a la Programación “El lenguaje C” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Estructuras de Control.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Funciones Definidas por el Programador
Definición de subprogramas en C
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Radio Volumen esfera m. m #include.
Modularización (Funciones) Prof. Miguel Vélez Rubio.
INTRODUCCION A LA PROGRAMACION
LENGUAJE “C” Programación.
Una función es un bloque de instrucciones que se ejecuta al ser llamada desde algún punto del programa, con nombre, que ejecuta una tarea específica y.
ESTRUCTURAS DE DECISION MULTIPLE
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
TIPOS DE DATOS PARCIAL III FUNCIONES. Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman ciertos valores.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
Integrantes:  Gómez Desire  Orgelys Linares  Oriannys Linares  Sánchez Alfredo  Wendher Villasmil.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

Tema 7c Entrada y salida de funciones

Funciones Funcion Entradas SalidasTareas

Funciones Funcion int promedio(int n1, int n2, int n3){ … }

Funciones Recibir entradas Realizar calculos, tranformaciones, etc. Preparar resultado Entregar resultados Validar entradas

Funciones En este tema nos centraremos en –La recepción y validacion de entradas. –Los detalles del cuerpo de la funcion –La preparacion y entrega de la salida. Partiremos por la salida por ser más simple.

Salida de una función Una función realiza transformaciones y calculos sobre las entradas para generar una salida. Una vez que se ejecutan todos los pasos necesarios la salida es “devuelta” a quien invocó a la función. La devolución de la salida implica el termino de la función –Una vez devuelto el resultado, el programa sigue su ejecucion justo despues de la invocación.

Salida de una función Una función debe definir el tipo de dato que devuelve –int –double –char –void –etc. El valor que devuelva debe ser consecuente con el tipo de dato especificado.

La instrucción “return” Para indicar el valor “devuelto” por la función, se utiliza la palabra reservada return. Return indica que ha llego el momento de entregar la salida al invocador –Es necesario entregar el valor a devolver –Implica el termino de la función

La instrucción “return” return ; Palabra reservada Fin de instruccion return etc…

La instrucción “return” return suma; return 0; return contador>1; return suma-4; return (a = = b);

La instrucción “return” double pi(){ return ; } void main(){ … printf(“El valor de pi es %f\n”,pi()); … }

La instrucción “return” double pi(){ return ; } void main(){ printf(“El valor de pi es %f\n”,pi()); } double pi(){ return 3; } double pi(){ return “3.1415”; }

La instrucción “return” La instrucción return debe entregar un valor acorde al tipo especificado en la declaración Además, indica el termino de la función –Una vez invocado, no se ejecutan mas instrucciones de la función. –¿Tiene sentido entonces definir instrucciones despues de ella?

Ejemplo 1 int leerNumero(){ int n=0; scanf(“%d”,&n); return n; } int leerNumero(){ int n=0; scanf(“%d”,&n); return n; printf(“ok”); } Nunca se ejecuta

Ejemplo 2 int leerPositivo(){ int n=0; scanf(“%d”,&n); if(n>0) return n; } int leerPositivo(){ int n=0; scanf(“%d”,&n); if(n>0) return n; else{ printf(“error”); return 0; } ¿Y si n<=0?

Ejemplo 3 double leerInteres(){ double i=0; printf(“Interes?[0-100]%:”); scanf(“%lf”,&i); if(i<0) return 0; i= i/100; return i; } void main(){ double i1=0,i2=0; i1=leerInteres();//usuario ingresa -1 i2=leerInteres();//usuario ingresa 56 printf(“Intereses: %f y %f”, i1,i2); }

Retorno de void Si la función especifica un tipo de retorno “void” puede utilizar a “return” sin especificar un valor. Sirve para terminar la ejecucion de una función. Si no se utiliza ningun “return”, la función termina con el cierre de llave (‘}’)

Retorno de void void escribirMucho(){ int i=0; for(i=0;;i=i*2){ printf(“%d-”,i); if(i%7==0) return; }

Retorno en “main” Si la funcion main se define como void, return termina la aplicación Main se puede definir con devolución entera –El sistema operativa interpreta este valor como “ejecutado con éxito”, “termino forzoso” u otro. –Altamente dependiente del sistema operativo.

Retorno en “main” int main(){ double i1=0,i2=0; i1=leerInteres(); if(i1==0) return 0; i2=leerInteres(); if(i1==0) return 0; printf(“Intereses: %f y %f”, i1,i2); return 1; }

Retorno en “main” Otra forma de poner termino a un programa es con la función “exit”. “exit” finaliza el programa desde cualquier parte (incluso dentro de funciones). “exit” recibe como parámetro el valor que se entrega al sistema operativo. –Si se omite, por norma se entrega un cero.

Retorno en “main” double leerInteres(){ double i=0; printf("Interes?[0-100]%:"); scanf("%lf",&i); if(i<0) exit(0);//return 0; i= i/100; return i; } void main(){ double i1=0,i2=0; i1=leerInteres(); if(i1==0) printf("Error");//return 0; i2=leerInteres(); if(i1==0) printf("Error");//return 0; printf("Interes:%fy%f", i1,i2); //return 1; }

Cuerpo de una función El cuerpo de una función es un conjunto de instrucciones Se pueden definir variables locales –Estas variables solo son visibles dentro de la función. –El función no puede afectar cosas fuera de ella. –Los nombres de variables debe ser únicos solo dentro de ella.

Cuerpo de una función Variables globales –Son variables definidas fuera de toda función. –Cualquiera las puede leer y modificar. –Deben ser únicas a través de todo el programa. Las variable globales pueden sustituir la entrada y la salida!

Cuerpo de una función int x; void f(){ int y; x=1; } void g(){ int z; y=z; } Void h(){ int w; w=x; } Y no es accesible desde aqui

Cuerpo de una función int n1,n2; double pa, pg; void promedios(){ pa = (n1+n2)/2; pg = sqrt(n1*n2); } void main(){ n1=80; n2=30; promedios(); printf("promedios: %.0f - %.0f\n",pa,pg); } Permite que la función entregue más de un valor

Entrada de una función Las entradas de una función se definen en forma de parámetros. Los parametros se definen por un nombre y un tipo. Actuan como variables locales de la función. Definen la forma en que la función debe ser invocada.

Entrada de una función ( ); nombre, nombre, … … ( ); …

Entrada de una función int f(int a, double d, char c){ … } int main(){ f(1, 1.0, ’1’); f(0); f(12.5, 12.5, ’a’); f(‘a’, 12, 12.5); } Bien! Faltan parámetros Error de tipos (funciona) Parámetros en desorden

Entrada de una función #include void mostrarLinea(char c, int n){ int i; for(i=0;i<n;i++) printf("%c",c); printf("\n"); } void mostrarPorcentaje(double porc){ printf("%.2f%\n",100*porc); } void main(){ mostrarLinea('*',6); mostrarPorcentaje( ); mostrarLinea('*',6); }

Entrada de una función void mostrarPorcentajeYLineas( double porc, char c, int n) { mostrarLinea(c,n); mostrarPorcentaje(porc); mostrarLinea(c,n); } void main(){ mostrarPorcentajeYLineas( ,'*',6); }

Entrada de una función Al definir parámetros, definimos los valores que deben ser entregados al hacer la invocación. Los valores utilizados en la invocación se asignan a las variables que representan los parámetros. Este proceso se denomina “paso de parámetros” ¿Qué pasa si se modifican estas variables?

Paso de parámetros int validar(int n){ if(n>0 && n<10) return 1; else{ n=1; return 0; } void main(){ int i; printf("Ingrese numero: "); scanf("%d", &i); if(validar(i)) printf("%d esta ok\n",i); else printf("%d esta mal\n",i); }

Paso de parámetros En el caso anterior, al modificar el parámetro, no pasa nada con la variable original. Esto se llama “paso por valor” Es la forma por defecto La función no puede modificar las variables entregadas en la invocación. ¿Cómo funciona scanf entonces?

Paso de parámetros Existe una segunda manera de pasar parametros Se denomina “paso por referencia” Esto permite modificar las variables entregadas en la invocación.

Paso de parámetros int validar(int *n){ if((*n)>0 && (*n)<10) return 1; else{ (*n)=1; return 0; } void main(){ int i; printf("Ingrese numero: "); scanf("%d", &i); if(validar(&i)) printf("%d esta ok\n",i); else printf("Estaba mal, pero lo arregle a %d\n",i); }

Paso de parámetros El paso por referencia modifica –La definición de la función. –El cuerpo de la función. –La invocación de la función. Lo que sucede es que en vez de entregar el solo el valor de la variable de origen, se entrega la variable misma (una referencia a ella) A continuación veremos el significado de los operadores ‘*’ y ‘&’.

Paso de parámetros

Memoria A B C D Dirección de la variable Nombre de la variable Valor de la variable

Paso de parámetros A B C D A: la variable llamada A A tiene un tipo definido (int). Leer A entrega el valor almacenadoen la variable (51). Modificar A cambia el valor almacenado. &A: extrae la dirección de la variable A tiene un tipo definido (int). Leer &A entrega la dirección donde se almacena la variable (1). Modificar &A no es válido. *A: un puntero a alguna variable A tiene un tipo definido (direccion o puntero a int). Leer A entrega la dirección a la cual apunta A. Leer *A entrega el contenido de la variable a la cual apunta A Modificar *A modifica el contenido de la variable a la cual apunta A.

Paso de parámetros int validar(int *n){ if((*n)>0 && (*n)<10) return 1; else{ (*n)=1; return 0; } void main(){ int i; printf("Ingrese numero: "); scanf("%d", &i); if(validar(&i)) printf("%d esta ok\n",i); else printf("Estaba mal, pero lo arregle a %d\n",i); } Entrega la direccion donde se almacena i Recibe un puntero a un variable int. Equivale a decir int* n Consulta y modifica el contenido de la variable entrega por referencia (i)

Ejemplo 1 void intercambiar(int *a, int *b){ int temp; temp=*a; *a = *b; *b=temp; } void main(){ int x,y; x=1; y=3; printf("Antes: %d - %d\n",x,y); intercambiar(&x,&y); printf("Despues: %d - %d\n",x,y); }

Ejemplo 2 void promedios(int n1, int n2, double* pa, double* pg){ *pa = (n1+n2)/2; *pg = sqrt(n1*n2); } void main(){ int c1,c2; double pg, pa; c1=80; c2=30; promedios(c1,c2,&pa,&pg); printf("promedios: %.0f - %.0f\n",pa,pg); }

Fin Tema 7c Entrada y salida de funciones