Академический Документы
Профессиональный Документы
Культура Документы
Estructura y Contenidos
5.1. SUBPROGRAMAS COMO ABSTRACCIN DE OPERACIONES.
5.2. LAS FUNCIONES EN C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. USO DE PARMETROS: DE ENTRADA, SALIDA Y ENTRADA / SALIDA.
5.4. PASO DE PARMETROS: POR VALOR Y POR REFERENCIA.
5.5. LOCALIDAD, ANIDAMIENTO, MBITO Y VISIBILIDAD.
5.6. FUNCIONES MATEMTICAS.
Fundamentos de Informtica
Tema 5: Subprogramas
OBJETIVOS
9 Establecer la necesidad de la subprogramacin
9 Implementar subprogramas en C / C++: las funciones
9 Diferenciar los conceptos de definicin, declaracin y llamada
de funciones
Tema 5: Subprogramas
Estructura y Contenidos
5.1. SUBPROGRAMAS COMO ABSTRACCIN DE OPERACIONES.
5.2. Las funciones en C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. Uso de parmetros: de entrada, salida y entrada / salida.
5.4. Paso de parmetros: por valor y por referencia.
5.5. Localidad, anidamiento, mbito y visibilidad.
5.6. Funciones matemticas.
Fundamentos de Informtica
Objetivos de la subprogramacin:
Fundamentos de Informtica
Divide y vencers!
Abstraccin
QU
escribir_cuadrado
CMO
Separacin
Implementacin
Fundamentos de Informtica
Definicin
nica
control
retorno
Expansin de Cdigo:
Reutilizable, pero poco
flexible: subtarea fija
Fundamentos de Informtica
...
escribir_cuadrado(4)
...
escribir_cuadrado(5)
...
escribir_cuadrado(8)
...
Subprograma:
Trozo de cdigo que
resuelve una subtarea de
forma parametrizada
Fundamentos de Informtica
Tema 5: Subprogramas
Estructura y Contenidos
5.1. Subprogramas como abstraccin de operaciones.
5.2. LAS FUNCIONES EN C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. Uso de parmetros: de entrada, salida y entrada / salida.
5.4. Paso de parmetros: por valor y por referencia.
5.5. Localidad, anidamiento, mbito y visibilidad.
5.6. Funciones matemticas.
Fundamentos de Informtica
Fundamentos de Informtica
Variable local
Cuerpo de la
funcin
Fundamentos de Informtica
Lista de Parmetros
Formales separados
por comas
Tipos compatibles
Valor devuelto
ETSI Industrial 10 Universidad de Mlaga
Fundamentos de Informtica
Llamada
La funcin A llama a la B
La instruccin de llamada provoca la ejecucin de la funcin B sobre
los valores (parmetros) que le indiquemos
Al acabar la funcin B, puede que nos devuelva unos resultados
Fundamentos de Informtica
El tipo del i-simo parmetro real debe ser compatible que el del isimo formal
Fundamentos de Informtica
Parmetros formales
Parmetros reales
Fundamentos de Informtica
int num=3;
/*correctas*/
escribir_tabla(5);
escribir_tabla(num);
escribir_tabla(num+4);
/*incorrectas*/
num=escribir_tabla(4);
escribir_tabla(2,3);
escribir_tabla(a);
int x=3, y=-2, z;
/*correctas*/
z = mayor(x+2,y);
x = mayor(-14,5-2);
z = mayor(y,-10);
cout << mayor(2,3);
y = y + mayor(y,10);
/*incorrectas*/
mayor(-13,10);
x = mayor(2,10,34);
Fundamentos de Informtica
EJEMPLOS
Desarrolla los siguientes programas como ejemplo:
a) Se piden dos nmeros naturales m y n. El programa mostrar todas las
parejas de nmeros amigos que hay en el intervalo [m,n]. Dos nmeros
son amigos si la suma de los divisores del primero (sin contarse el mismo)
coincide con el segundo y viceversa. Nota: usa una funcin que, dado un
nmero, devuelva la suma de sus divisores (sin contarse el mismo).
b) Se piden dos nmeros naturales N e i. El programa mostrar el dgito
de N que ocupa la -sima posicin empezando por el dgito menos
significativo. En caso de no poder obtenerlo (por que se salga del rango)
mostrar -1. Nota: usa dos funciones, una que determine el nmero de
dgitos de un nmero y otra que, dado un nmero y una posicin, devuelva
el dgito que ocupa esa posicin dentro del nmero.
c) Se pide un nmero natural n y se imprimen por pantalla los n primeros
nmeros primos. El programa pregunta si se quiere repetir de nuevo el
proceso. Nota: usa una funcin que, dado un nmero natural, devuelva 1
si es primo, 0 si no lo es.
Fundamentos de Informtica
Tema 5: Subprogramas
Estructura y Contenidos
5.1. Subprogramas como abstraccin de operaciones.
5.2. Las funciones en C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. USO DE PARMETROS: DE ENTRADA, SALIDA Y ENTRADA / SALIDA.
5.4. Paso de parmetros: por valor y por referencia.
5.5. Localidad, anidamiento, mbito y visibilidad.
5.6. Funciones matemticas.
Fundamentos de Informtica
Datos de salida
de la funcin
Fundamentos de Informtica
Parmetros de Entrada:
La funcin que llama pasa un valor que no puede ser modificado por la
funcin llamada, slo puede ser utilizado
Parmetros de Salida:
Fundamentos de Informtica
Parmetros de Entrada:
a
-
x1
x2
discr
Parmetros de Salida:
a
-
x1
x2
discr
temporal
/* intercambia valores */
temporal = a;
a = b;
b = temporal;
Intercambiar
Fundamentos de Informtica
Tema 5: Subprogramas
Estructura y Contenidos
5.1. Subprogramas como abstraccin de operaciones.
5.2. Las funciones en C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. Uso de parmetros: de Entrada, Salida y Entrada / Salida.
5.4. PASO DE PARMETROS: POR VALOR Y POR REFERENCIA.
5.5. Localidad, anidamiento, mbito y visibilidad.
5.6. Funciones matemticas.
Fundamentos de Informtica
Fundamentos de Informtica
Fundamentos de Informtica
Fundamentos de Informtica
Fundamentos de Informtica
int main()
{
float num1, num2, num3, temp;
cin >> num1 >> num2 >> num3;
if (num1 > num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
if (num1 > num3)
{
temp = num1;
num1 = num3;
num3 = temp;
}
if (num2 > num3)
{
temp = num2;
num2 = num3;
num3 = temp;
}
cout << num1 << num2 << num3;
return 0;
}
ETSI Industrial 29 Universidad de Mlaga
Asla
Evita efectos laterales
Permite constantes y
Desventajas
Utiliza ms memoria
expresiones como
parmetro real
Utiliza menos memoria
Por referencia
Fundamentos de Informtica
parmetro real
Puede producir efectos
laterales
Tema 5: Subprogramas
Estructura y Contenidos
5.1. Subprogramas como abstraccin de operaciones.
5.2. Las funciones en C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. Uso de parmetros: de Entrada, Salida y Entrada / Salida.
5.4. Paso de parmetros: por valor y por referencia.
5.5. LOCALIDAD, ANIDAMIENTO, MBITO Y VISIBILIDAD.
5.6. Funciones matemticas.
Fundamentos de Informtica
Fundamentos de Informtica
Fundamentos de Informtica
Fundamentos de Informtica
/* variable global */
Tema 5: Subprogramas
Estructura y Contenidos
5.1. Subprogramas como abstraccin de operaciones.
5.2. Las funciones en C / C++.
5.2.1. Definicin de funciones. Parmetros formales y valor de retorno
5.2.2. Llamadas a funciones. Parmetros reales o actuales.
5.2.3. Declaracin o prototipos de funciones.
5.3. Uso de parmetros: de Entrada, Salida y Entrada / Salida.
5.4. Paso de parmetros: por valor y por referencia.
5.5. Localidad, anidamiento, mbito y visibilidad.
5.6. FUNCIONES MATEMTICAS.
Fundamentos de Informtica
FUNCIONES MATEMTICAS
int abs(int)
valor absoluto
double exp(double)
exponencial
double log(double)
logaritmo neperiano
double log10(double)
logaritmo decimal
double pow(double,double)
Potencia
double sqrt(double)
raz cuadrada
double sin(double)
seno
double cos(double)
coseno
double tan(double)
tangente
double asin(double)
arco seno
double acos(double)
arco coseno
double atan(double)
arco tangente
Tema 5:
Subprogramas
Fundamentos de Informtica