06 Funciones
06 Funciones
06 Funciones
Agenda
3 Problemas
Agenda
3 Problemas
Cuadrado de un número I
Ejemplo
Se definirá una función que eleve un número al cuadrado. Para expresar
una función que calcule esta operación, en primera instancia se construye
la expresión f : R → R que define la función que tiene como entrada
(dominio) un número real y como salida (rango) un número real. La
declaración de la función junto con su cuerpo quedará de la siguiente forma
f :R→R
(x) 7→ x 2
f = (x, x 2 ) : (x ∈ R) .
Cuadrado de un número II
Ejemplo (continuación)
Dicha función se traduce en lenguaje Python paso a paso de la siguiente
manera:
Primero se escribe la palabra reservada def.
def
Posteriormente se escribe el nombre de la función f.
def f
Entre paréntesis se coloca el nombre de la variable del dominio
(parámetro). En este caso solamente se tiene la variable x quedando
el texto (x) y se coloca a continuación el sı́mbolo de dos puntos :.
def f(x):
def f(x):
return x * x
†
A esto se le conoce como la indentación o sangrado del código.
‡
El cuerpo de la función es el ámbito o scope en el cual las variables
de la función pueden ser usadas, es decir, es el entorno en el cual estas
existen, pues ellas están definidas localmente.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Funciones de un parámetro de entrada Funciones –7–
Cuadrado de un número IV
Ejemplo (continuación)
Para invocar una función, simplemente se escribe el nombre de la
función y a continuación dentro de un paréntesis el argumento en el
cual se desea evaluar la función, como se muestra a continuación
cuando el argumento es el valor 2
f(2)
Para el caso en el que se quiera observar el resultado de evaluar la
función, se puede invocar la función print sin tabulación y se evalúa
con el valor obtenido al aplicar la función f(2), como se observa a
continuación
print(f(2))
Cuadrado de un número V
Ejemplo (continuación)
Para el caso del cuadrado, este se puede calcular directamente, pues la
potencia es una operación matemática básica en Python; por lo que se
puede escribir el cuadrado como el resultado de realizar la operación
x ** 2, como se muestra a continuación
def f(x):
return x ** 2
print(f(2))
Cuadrado de un número VI
Ejemplo (continuación)
Otra posible escritura de esta función podrı́a obtenerse almacenando el
valor del cálculo x ** 2 en una variable auxiliar a la que se le aplique una
y exactamente una tabulación con respecto a la lı́nea superior, y en la
siguiente lı́nea se retorne la variable, manteniendo la alineación actual,
como se muestra a continuación
def f(x):
y = x ** 2
return y
f (x) = y
Agenda
3 Problemas
Área de un cı́rculo I
Ejemplo
Para el desarrollo de esta función lo primero es determinar el nombre. La
función se llamará area circulo cuyo dominio es el conjunto de los números
reales (para el radio) y cuyo rango pertenece al conjunto de los números
reales (el valor de retorno que corresponde al área del cı́rculo).
Área de un cı́rculo II
Ejemplo (continuación)
entonces, el planteamiento matemático de la función solicitada será el
siguiente
area circulo : R → R
(r ) 7→ πr 2
Para el caso del cuadrado del radio, este se puede calcular como un
producto o como una potencia, por lo que se puede escribir como r * r o
r ** 2.
Ejemplo (continuación)
Esta función se traduce al lenguaje Python paso a paso de la siguiente
forma:
Primero se escribe la palabra reservada def.
def
Posteriormente se escribe el nombre de la función area_circulo.
def area_circulo
obsérvese que tanto las palabras area como circulo en el nombre de
la función se escribieron sin tilde, se recomienda escribir los nombres
de las funciones únicamente con caracteres del alfabeto inglés, esto
para evitar problemas de incompatibilidad entre plataformas.
Área de un cı́rculo IV
Ejemplo (continuación)
Entre paréntesis se coloca el nombre de la variable del dominio
(parámetro). En este caso solamente se tiene la variable r quedando
el texto (r) y se coloca a continuación el sı́mbolo de dos puntos :.
def area_circulo(r):
En las siguientes lı́neas se escribe el cálculo del área del cı́rculo y se
retorna el valor calculado.
def area_circulo(r):
return 3.14159265 * r ** 2
aquı́ la potencia (**) tiene mayor prioridad que la multiplicación (*).
Área de un cı́rculo V
Ejemplo (continuación)
Para invocar una función, simplemente se escribe el nombre de la
función y a continuación dentro de un paréntesis el argumento en el
cual se desea evaluar la función, como se muestra a continuación
cuando el argumento es el valor 3
area_circulo(3)
Para el caso en el que se quiera observar el resultado de evaluar la
función, se puede invocar la función print sin tabulación y se evalúa
con el valor obtenido al aplicar la función area_circulo(3), como
se observa a continuación
print(area_circulo(3))
Área de un cı́rculo VI
Ejemplo (continuación)
Otra posible escritura de esta función podrı́a obtenerse almacenando el
valor del área del cı́rculo en una variable auxiliar a la que se le aplique una
y exactamente una tabulación con respecto a la lı́nea superior, y en la
siguiente lı́nea se retorne la variable, manteniendo la alineación actual,
como se muestra a continuación
def area_circulo(r):
area = 3.14159265 * r ** 2
return area
Ejemplo (continuación)
Otra posible escritura de esta función en donde se utilice la aproximación a
la constante π suministrada por Python, es la siguiente
import math
def area_circulo(r):
area = math.pi * r ** 2
return area
Ejemplo (continuación)
Otra posible escritura de esta función en donde se importe únicamente la
aproximación a la constante π suministrada por Python, es la siguiente
def area_circulo(r):
area = pi * r ** 2
return area
Agenda
3 Problemas
De entero a real I
De entero a real II
Ejemplo
Para las asignaciones
n = 1
x = float(n)
y = float(0)
z = float(-2)
n 1
x 1.0
y 0.0
z −2.0
Ejemplo
Las siguientes operaciones son equivalentes
-2 + 1.0 ⇔ -2.0 + 1.0
0.0 * 5 ⇔ 0.0 * 5.0
(5 // 2) * 2.0 ⇔ 2 * 2.0 ⇔ 2.0 * 2.0
(5.0 / 2) * 2 ⇔ (5.0 / 2.0) * 2 ⇔ 2.5 * 2 ⇔
2.5 * 2.0
De real a entero I
De real a entero II
Ejemplo
Para las siguientes asignaciones en Python
x = 1.0
y = -2.5
n = int(x)
m = int(y)
p = int(3.14159265)
x 1.0
y −2.5
n 1
m −2
p 3
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Funciones de un parámetro de entrada Funciones – 25 –
Ejemplo
Las siguientes operaciones son equivalentes
2 * int(2.5) ⇔ 2 * 2
int(-3.14) * int(5.5) ⇔ -3 * 5
2 / (2.5 - int(2.5)) ⇔ 2 / (2.5 - 2) ⇔ 2 / (0.5)
⇔ 2 / 0.5 ⇔ 2.0 / 0.5
De real a entero IV
Ejemplo
Las siguientes sentencias son equivalentes
x = 0.4
y = 2.5
n = int(x) * int(y)
⇔
x = 0.4
y = 2.5
n = 0 * 2
Agenda
3 Problemas
Agenda
3 Problemas
Área de un rectángulo I
Ejemplo
La función que calcula el área de un rectángulo es una función que tiene
como parámetros de entrada el ancho y el largo del rectángulo que son
valores de tipo real y retorna como salida el área del rectángulo. Lo que
puede escribirse como
area rectangulo : R × R → R.
Área de un rectángulo II
Ejemplo (continuación)
Para el cálculo del área de un rectángulo es necesario conocer el largo y el
ancho del rectángulo, a partir de los cuales el área del rectángulo está
dada por la expresión Ar = l ∗ a, donde las variables están definidas ası́:
area rectangulo : R × R → R
(l, a) 7→ l ∗ a
Ejemplo (continuación)
Para traducir a lenguaje Python esta función, se utilizan reglas similares de
traducción:
Primero se escribe la palabra reservada def.
def
Posteriormente se escribe el nombre de la función area_rectangulo.
def area_rectangulo
Área de un rectángulo IV
Ejemplo (continuación)
Entre paréntesis se colocan los nombres ordenados de las variables del
dominio (parámetros) separados por comas. En este caso se tienen las
variables l y a correspondientes al largo y al ancho del rectángulo
respectivamente y se coloca a continuación el sı́mbolo de dos
puntos :.
Área de un rectángulo V
Ejemplo (continuación)
Otra posible escritura de la función puede ser
Área de un rectángulo VI
Ejemplo (continuación)
Para invocar una función de más de un parámetro, simplemente se
escribe el nombre de la función y a continuación dentro de un
paréntesis los argumentos en los cuales se desea evaluar la función, en
el mismo orden que se escribieron en la definición de la función, como
se muestra a continuación cuando los argumentos son los valores
l = 3 y a = 4.
area_rectangulo(3, 4)
Para el caso en el que se quiera observar el resultado de evaluar la
función, se puede invocar la función print sin tabulación y se evalúa
con el valor obtenido al aplicar la función area_rectangulo(3, 4),
como se observa a continuación
print(area_rectangulo(3, 4))
Ejemplo (continuación)
Para el llamado de la función utilizando la lectura de los argumentos por
consola, se podrı́a utilizar el siguiente código
Agenda
3 Problemas
Ley de Coulomb I
Ejemplo
El módulo de la fuerza con que se atraen o se repelen dos cargas Q1 y Q2
(en culombios) que se encuentran separadas una distancia r (en metros),
se puede calcular utilizando la ley de Coulomb que está dada por la
expresión
Q1 Q2
F =κ 2
r
donde κ se denomina constante eléctrica del medio y está dada por la
Constante de Coulomb que en el vacı́o es igual a
Nm2
κ = 9 × 109 .
C2
modele matemáticamente, y luego escriba una función en Python que
permita calcular el módulo de la fuerza con que se atraen o se repelen dos
cargas Q1 y Q2 y que se encuentran separadas una distancia r .
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Funciones con más de un parámetro de entrada Funciones – 38 –
Ley de Coulomb II
Ejemplo (continuación)
Para el cálculo de la ley de Coulomb se puede utilizar la siguiente
especificación:
ley coulomb : R × R × R → R
Q1 Q2
(Q1 , Q2 , r ) 7→ κ 2
r
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Funciones con más de un parámetro de entrada Funciones – 39 –
Ejemplo (continuación)
Para el llamado de la función utilizando la lectura de los argumentos por
consola, se podrı́a utilizar el siguiente código
Ley de Coulomb IV
Ejemplo (continuación)
En este caso la Constante de Coulomb KAPPA se definió real y global para
poderse utilizar en cualquier parte del programa.
Para las cargas Q1 = 1.6µC y Q2 = 0.4µC , que se encuentran a una
distancia r de 30 cm, un llamado correcto de la función ley_coulomb
puede ser
Agenda
3 Problemas
Volumen de un sólido I
Problema
Para el sólido que se presenta a continuación,
r1 h
r2
Volumen de un sólido II
Problema (continuación)
1 Establezca el modelo matemático (función matemática) que permita
calcular el volumen del sólido anteriormente mostrado.
2 Escriba una función en Python que implemente la función
anteriormente modelada, en la cual se invoque la constante
matemática π del módulo math.
3 Para los valores r1 = 3, h = 9/2 y r2 = 4, calcule (a mano o con
calculadora) el volumen del sólido y compárelo con el resultado
obtenido a partir de la evaluación de la función anteriormente
implementada. ¿Qué pasa si se invoca la función con los mismos
valores, pero h se calcula como la expresión h = 9//2?.
Problema
Para el vagón que se presenta a continuación,
r r
Problema (continuación)
1 Establezca el modelo matemático (función matemática) que permita
calcular el área lateral del vagón.
2 Escriba una función en Python que implemente la función
anteriormente modelada, en la cual se invoque la constante
matemática π del módulo math.
Problema
Para el carro que se presenta a continuación,
b2
a2
b1
a1
r2
r1
Problema (continuación)
1 Establezca el modelo matemático (función matemática) que permita
calcular el área lateral del carro.
2 Escriba una función en Python que implemente la función matemática
previamente modelada, en la cual se utilice la composición de las
funciones de suma de números reales, area circulo y area rectangulo
codificadas previamente.
Problemas varios
Problemas
1 Diseñe una función que calcule la cantidad de carne de aves en kilos