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.

Slides:



Advertisements
Presentaciones similares
Métodos y parámetros.
Advertisements

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
Procedimientos y Funciones
Programación I Teoría III
Funciones. Programación, Algoritmos y Estructuras de Datos.
Punteros Universidad Nacional Mayor de San Marcos
FUNCIONES EN C.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
SOBRECARGA DE FUNCIONES
Unidad 3 Punteros.
Acciones y funciones Concepto
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
Funciones Computación.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

Estructuras de repetición
Paso de Vectores como Parámetros
Semana 5 Subprogramas..
Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.
PROCEDIMIENTOS FUNCIONES
Programación III Clase 06 Funciones.
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.

Capítulo 1 “Elementos de Programación”
Descomposición Modular. Funciones
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Punteros.
Estructuras de Decisión Simples y Dobles
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Elementos básicos del lenguaje
Funciones Curso Propedéutico Maestría en Ingeniería Electrónica.
Funciones Definidas por el Programador
Estructuras de Repetición (Hacer-Mientras)
Expresiones Lógicas Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Matrices Prof. Flor Narciso Departamento de Computación
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables
INTRODUCCIÓN AL LENGUAJE C++
Estructuras de Repetición (Hacer-Mientras)
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Modularización (Funciones) Prof. Miguel Vélez Rubio.
Fundamentos de Programación
INTRODUCCION A LA PROGRAMACION
Arreglos: Vectores Departamento de Computación
Tipos Básicos de Datos en C++
LENGUAJE “C” Programación.
Expresiones Aritméticas
Algoritmo.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Corporación Universitaria del Caribe CECAR Fundamentos de programación II.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
 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.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
PARCIAL 2. LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE LAS CUALES SE COMUNICAN.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
LÓGICA DE PROGRAMACIÓN UNIDAD III. INTRODUCCIÓN AL LENGUAJE C.
1 Procedimientos y Funciones Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
Computación I :: Prof. Yeniffer Peña Introducción al C Presentación Computación I.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Transcripción de la presentación:

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 Los Andes

Recuerde !!!!! Los PARAMETROS son VARIABLES LOCALES. La única diferencia es el lugar donde son declarados (lista_parámetros_formales). Cuando se pasa un valor desde una función “llamadora o invocadora” a una función “llamada o invocada”, se crea una variable temporal dentro de la función invocada. Una vez que termina la ejecución de la función invocada y se retorna a la función invocadora, esta variable deja de existir.

Paso de Parámetros Paso de parámetros: –Por valor –Por referencia Por valor : Los parámetros formales correspondientes reciben una copia de los valores (constante, variable, resultado de la evaluación de una expresión) de los parámetros actuales; por tanto, los cambios que se produzcan en ellos por efecto de la ejecución de la función no podrán afectar el valor de los parámetros actuales.En C/C++ todas las llamadas, por defecto, son por valor.

Paso de Parámetros por Valor: Ejemplo 1 void DibujarPuntos( int numPuntos ) { int i; for ( i = 1; i <= numPuntos; i++ ) cout << "."; } void main( ) { DibujarPuntos( 30 ); } 30

Paso de Parámetros por Valor: Ejemplo 2 void DibujarPuntos( int numPuntos ) { int i; for ( i = 1; i <= numPuntos; i++ ) cout << "."; } void main( ) { int i; for ( i = 1; i <= 10; i++ ) { DibujarPuntos( i ); cout << endl; } Valor de i

Paso de Parámetros por Valor: Ejemplo 2

Salida del programa anterior... … …. ….. …… ……. …….. ……… ……….

Paso de Parámetros por Valor: Ejemplo 3 #include void modificar(int); void main() { int a = 2; cout << “antes de la llamada” << a << endl; modificar(a); cout << “despues de la llamada” << a << endl; } void modificar (int a) { a *= 3; cout << “desde la funcion” << a << endl; return; }

Paso de Parámetros por Referencia Paso de parámetros: –Por valor –Por referencia Por referencia :Lo que se pasa a la función es la dirección de memoria del parámetro actual. De esta forma, una variable pasada como parámetro actual es compartida; es decir, se puede modificar directamente durante la ejecución de la función.

Paso de Parámetros por Referencia Apuntador: Variable especial cuyo contenido es la dirección de memoria de otra variable. Permiten devolver varios valores desde una función a través de los parámetros. Ap1 es una variable de tipo apuntador y A una variable de tipo entero

Parámetros por Valor vs. Parámetros por Referencia Si se pasa el valor de una variable (parámetro actual) a una función, ésta puede usar el valor de la variable pero no lo puede cambiar. Si se pasa la dirección de una variable (parámetro actual) a una función, ésta puede cambiar el valor de la variable.

Paso de Parámetros por referencia  Definición de la función en C++ tipo_dato nombre_función (tipo_dato &parámetro_formal,...) { // Cuerpo de la función }  Invocación de la función nombre_función(parámetro_actual,...)

Paso de Parámetros por Referencia: Ejemplo 1 #include void Cuadrado( int num, int &AptCuadrado ) { AptCuadrado = num * num; } void main( ) { int c; Cuadrado( 5, c); cout << ”El cuadrado de 5 es" << c << endl ; } Por valor Por referencia

Paso de Parámetros por Referencia: Ejemplo 2 #include // Prototipo de la funcion f1 void f1(int, int); // Prototipo de la funcion f2 void f2 (int &, int &); void main( ) { int u = 1, v = 3; cout << “u =“ << u << “v = “ << v << “antes de la llamada a f1” << endl; f1(u, v); cout << “u =“ << u << “v = “ << v << “despues de la llamada a f1” << endl; f2(u, v); cout << “u =“ << u << “v = “ << v << “despues de la llamada a f2” << endl; } void f1 (int a, int b) { a = 0; b = 0; cout << “a =“ << a << “b = “ << b << “dentro de f1” << endl; return; } void f2 (int &a, int &b) { a = 0; b = 0; cout << “a =“ << a << “b = “ << b << “dentro de f2” << endl; return; }

Paso de Parámetros por Referencia: Ejemplo 2 Corrida en frío u = 1 v = 3 antes de la llamada a f1 a = 0 b = 0 dentro de f1 u = 1 v = 3 despues de la llamada a f1 a = 0 b = 0 dentro de f2 u = 0 v = 0 despues de la llamada a f2

Paso de Parámetros por Referencia: Ejemplo 3 #include int cuadradoPorValor (int); void cuadradoPorReferencia (int); void main () { int x = 2, z = 4; cout << “x=“ << x << “antes de la llamada a cuadradoPorValor” << endl; cout << “valor devuelto por cuadradoPorValor: “ << cuadradoPorValor(x); cout << “x=“ << x << “despues de la llamada a cuadradoPorValor” << endl; cout << “z=“ << z << “antes de la llamada a cuadradoPorReferencia” << endl; cout << cuadradoPorReferencia(z) << endl; cout << “z = “ << z << “despues de la llamada a cuadradoPorReferencia” << endl; } int cuadradoPorValor (int a) { return a *= a; } void cuadradoPorReferencia (int &cRef) { cRef *= cRef; }

Paso de Parámetros: Ejemplo 1 Escribir una función que reciba los valores enteros de x y n > 0 como parámetros de entrada y devuelva el valor de x n como salida. entero función Potencia (entero x, entero n) 0. Inicio 1. pot = 1 2. Repita para (I = 1; I < n; I = I + 1) pot = pot * x fin_RP 3. devolver pot 4. fin_función CODIFICAR!!!!!!

Paso de Parámetros: Ejemplo 2 Escribir un programa que tome un conjunto de pares de números enteros a y b, y calcule la potencia a b de cada par. El fin de entrada de datos viene dado por a = -1 y b = Inicio 1. Q = cierto 2. Repita mientras (Q = cierto) Escribir (“Introduzca los valores de a y b”) Leer (a, b) Si (a = -1 y b = -1) entonces Q = falso sino Si (b > 0) entonces resultado = Potencia (a, b) Escribir (“Resultado = “, resultado) sino Escribir(“Error: b debe ser > 0”) fin_si fin_RM 3. FinCODIFICAR!!!!!!

Paso de Parámetros: Ejemplo 3 Realizar una función en C++ que permita sumar el número de elementos negativos de una lista de n números reales. void funcion Suma (real &resultado) 0. Inicio 1. Escribir (“Introduzca el valor de n”) 2. Leer (n) 3. resultado = 0 4. Repita para (j = 1; j < n; j = j + 1) Escribir (“Introduzca un número real”) Leer (numero) Si (numero < 0.0) entonces resultado = resultado + numero fin_si fin_RP 5. fin_funcion

Paso de Parámetros: Ejemplo 3 Realizar una función en C++ que permita sumar el número de elementos negativos de una lista de n números reales. void Suma (float &resultado) { int n, j; float numero, resultado = 0.0; cout << “Introduzca el valor de n” << endl; cin >> n; for (j = 1; j <= n; j++) { cout << “Introduzca un número real” << endl; cin >> numero; if (numero < 0.0) resultado = resultado + numero; }

Ejercicios Escribir las funciones necesarias para leer cuatro números reales, calcular y escribir su producto, suma y su media aritmética. Escribir una función que compruebe si un número dado es correcto, en cuyo caso la función deberá devolver el valor q. En caso negativo, la función devolverá el valor -1. Considere los siguientes casos para decidir si un número es o no correcto.

Ejercicios –El número es correcto si se encuentra en el rango definido por dos valores constantes MINIMO y MAXIMO. –El número es correcto si es uno de tres valores constantes VALOR1, VALOR2 o VALOR3. –El número es correcto si se encuentra en el rango definido por dos valores constantes MINIMO y MAXIMO, o bien es igual al valor constante VALOR1. –El número es correcto si se encuentra en el rango definido por dos valores constantes MINIMO1 y MAXIMO1, o bien en el definido por los valores constantes MINIMO2 y MAXIMO2.

Ejercicios Escribir una función que tome un carácter como parámetro de entrada y devuelva su tipo que podrá ser uno de los siguientes: (1) letra mayúscula de la ‘A’ a la ‘Z’, (2) letra minúscula de la ‘a’ a la ‘z’, (3) dígito del ‘0’ al ‘9’. Escribir una función que tome como parámetros de entrada dos instantes de tiempo expresados en horas, minutos y segundos e indique si el primero es anterior al segundo.