0% encontró este documento útil (0 votos)
74 vistas25 páginas

Funciones

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas25 páginas

Funciones

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Ejercicio 70: Secuencia de Fibonacci

► Teoría:

La serie de Fibonacci es una serie muy famosa en matemáticas. Cada número de la


secuencia es la suma de los dos números anteriores. Entonces, la secuencia es 0, 1,
1, 2, 3, 5, 8, 13, 21, 34, etc.

Los números Fibonacci son una secuencia de números definidos recursivamente


por la fórmula:

F n = F n – 2 + F n – 1 donde n ≥ 2.

Cada término de la secuencia después de los dos primeros, es la suma de los dos
términos previos.

F0 = 1

F1 = 1

F2 = 0 + 1 = 1

F3 = 1 + 1 = 2
F4 = 1 + 2 = 3

F5 = 2 + 3 = 5

F6 = 3 + 5 = 8

F7 = 5 + 8 = 13

F8 = 8 + 13 = 21 y así sucesivamente.

___

► Enunciado:

Desarrollar un programa que genere la secuencia de Fibonacci. Se debe crear y


llamar recursivamente a la función. Se debe calcular la suma recursiva de los dos
números anteriores (número-2) y (número-1). Mostrar el resultado de cada iteración
en pantalla.

___

► Variables:

● termino: Término de Fibonacci.


● numero: Número de Fibonacci.
___

► Salida:

---------------------------------------------
SUCESION DE FIBONACCI
---------------------------------------------
>>> Introduce el valor deL termino 'n': 10
---------------------------------------------
>>> F(00) = 00
>>> F(01) = 01
>>> F(02) = 01
>>> F(03) = 02
>>> F(04) = 03
>>> F(05) = 05
>>> F(06) = 08
>>> F(07) = 13
>>> F(08) = 21
>>> F(09) = 34
>>> F(10) = 55
---------------------------------------------

Solución 70: Secuencia de Fibonacci


# Valores para Dibujar la Tabla
ANCHO = 45
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "SUCESION DE FIBONACCI"

# Mensajes de Solicitud de Datos


SOLICITUD_TERMINO = ">>> Introduce el valor deL termino 'n':
"

############################################################
##########

# Declaracion de variables
termino = 0

# Formato de Salida Final en Pantalla


Formato_Respuesta = ">>> F(%02d) = %02d"

############################################################
##########

# Encabezado del Programa


# Parte superior de la Tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))
# Mensaje Centrado
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))
# Separador de la tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))

############################################################
##########
# Declaracion de funciones:
def fibonacci(numero):
if(numero == 0):
return 0
elif(numero == 1):
return 1
else:
# Retorna la suma de los dos terminos anteriores
return (fibonacci(numero - 2) + fibonacci(numero -
1))

############################################################
##########

# Inicio del Programa:


# Solicitud de Datos en PYTHON 2.7
# termino_n = int(raw_input(SOLICITUD_TERMINO))

# Solicitud de Datos en PYTHON 3


termino = int(input(SOLICITUD_TERMINO))

# Separador de la tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))

for termino in range(0, termino + 1):


# Se muestra el mensaje en Pantalla
print(Formato_Respuesta %(termino,fibonacci(termino)))

############################################################
##########

print(CADENA_VACIA.center(ANCHO,RELLENO1))
Ejercicio 71: Factorial de un Número
► Teoria:

El factorial de n o n factorial (n!) se define en principio como el producto de todos los


números enteros positivos desde 1 (es decir, los números naturales) hasta n.

Podemos definir el factorial de un número entero positivo n, expresado n!, como el producto
de todos los números enteros positivos menores o iguales que n.

n! = (1) (2) (3) (4) . . . (n -1) n

El Factorial del número 5 será:

0! = 1 = 1

1! = 1 = 1

2! = (1) (2) = 2

3! = (1) (2) (3) = 6

4! = (1) (2) (3) (4) = 24

5! = (1) (2) (3) (4) (5) = 120


___

► Enunciado:

Desarrollar un programa que genere el factorial de un número. Implementar y llamar a la


funcion de forma recursiva. Mostrar el resultado de cada iteración en pantalla.

___

►- Variables:

· numero: Número para calcular el factorial.

___

► Salida:

----------------------------------------
NUMERO FACTORIAL
----------------------------------------
>>> Introduce el numero a calcular: 10
----------------------------------------
>>> 0! = 1
>>> 1! = 1
>>> 2! = 2
>>> 3! = 6
>>> 4! = 24
>>> 5! = 120
>>> 6! = 720
>>> 7! = 5040
>>> 8! = 40320
>>> 9! = 362880
>>> 10! = 3628800
----------------------------------------

Solución 71: Factorial de un Número


# Valores para Dibujar la Tabla
ANCHO = 40
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "NUMERO FACTORIAL"

# Mensajes de Solicitud de Datos


SOLICITUD_TERMINO = ">>> Introduce el numero a calcular: "

############################################################
##########

# Declaracion de variables
numero = 0

# Formato de Salida Final en Pantalla


Formato_Respuesta = ">>> %d! = %d"

############################################################
##########

# Encabezado del Programa


# Parte superior de la Tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))
# Mensaje Centrado
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))
# Separador de la tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))

############################################################
##########

# Declaracion de funciones
def factorial(n):
if n<=1:
return 1
return n*factorial(n-1)

############################################################
##########

# Inicio del Programa:


numero = int(input(SOLICITUD_TERMINO))

# Separador de la tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))

for numero in range(0, numero+ 1):


print(Formato_Respuesta %(numero, factorial(numero)))

############################################################
##########

print(CADENA_VACIA.center(ANCHO,RELLENO1))

Ejercicio 72: Cadena Invertida

► Enunciado:

Haga que la función FirstReverse(string) tome el parámetro string y


devuelva la cadena introducida en orden inverso.

► Ayuda:

Para resolver este ejercicio será necesario usar dos funciones integradas en Python
que son: list() y reversed()
La función list() es un constructor del tipo lista, se usa para crear una lista
usando como argumento un objeto iterable. Por ejemplo, una lista podría crearse
partiendo de una cadena o un rango de números:

# Para una cadena


lista = list("Hello World")
print(lista)

# Para un rango
rango = list(range(10))
print(rango)

La función reversed() se usa para obtener un iterador inverso. Ejemplo:

# Para una cadena


cadena = 'Ejemplo'
print(list(reversed(cadena)))

# Para una tupla


tupla = ('P', 'y', 't', 'h', 'o', 'n')
print(list(reversed(tupla)))

# Para un rango
rango = range(0, 10)
print(list(reversed(rango)))

# Para una lista


seqList = [1, 2, 4, 3, 5, 6]
print(list(reversed(lista)))
Solución 72: Cadena Invertida
def FirstReverse(string):

cadena_invertida = ""
lista_invertida = list(reversed(string))

for letra in lista_invertida:


cadena_invertida = cadena_invertida + letra
return cadena_invertida

print(FirstReverse('helloworld'))

Ejercicio 73: Suma de dos números


► Enunciado:

Cree una función llamada adittion(num_a, num_b) que tome dos números
como argumentos num_a y num_b

► Entrada:

addition(3, 2)
addition(-3,6)
addition(7, 3)
___

► Salida:

5
3
10

Solución 73: Suma de dos números


def addition(num_a, num_b):
return num_a + num_b

print(addition(3, 2))
print(addition(-3,6))
print(addition(7, 3))

Ejercicio 74: Función de Cadena numérica a Entero

► Enunciado:

Cree una función llamada int_string(txt) que tome una cadena numérica
(txt) y la devuelva como un número entero. Imprima el resultado en pantalla.

► Entrada:

int_string("6")
int_string("1000")
int_string"12")
___

► Salida:

6
1000
12
Solución 74: Función de Cadena numérica a Entero
def int_string(txt):
return int(txt)

print(nt_string("6"))
print(nt_string("1000"))
print(nt_string("12"))

Ejercicio 75: Función de Booleano a Cadena

► Enunciado:

Cree una función llamada bool_to_string(flag) que tome un dato booleano


y lo devuelva como una cadena.

► Entrada:

bool_to_string(True)
bool_to_string(False)
___

► Salida:

"True"
"False"
Solución 75: Función de Booleano a Cadena
def bool_to_string(flag):
return str(flag)

print(bool_to_string(True))
print(bool_to_string(False))
Ejercicio 76: Primera y última letra de una lista

► Enunciado:

Se da la siguiente lista:

caracteres = ['k', 'b', 'c', 'j', 'z', 'w']

Usando las funciones integradas min() y max(), devuelva la primera y la última


letra en orden alfabético de esta lista e imprima el resultado en pantalla, como se
muestra a continuación:

>>> Primera Letra: b


>>> Ultima Letra : z
Solución 76: Primera y última letra de una lista
characters = ['k', 'b', 'c', 'j', 'z', 'w']

print(f'>>> Primera Letra: {min(characters)}')


print(f'>>> Ultima Letra : {max(characters)}')

Ejercicio 77: Radar de Velocidad


► Enunciado:

Un radar común de detección de velocidad de la policía de caminos emite un rayo de


microondas a una frecuencia f0. El rayo es reflejado por un automóvil que se
aproxima y el rayo reflejado es captado y analizado por la unidad de radar. La
frecuencia del rayo reflejado es cambiada ligeramente de f0 a f1 debido al
movimiento del automóvil.

La relación entre la velocidad del automóvil, v, en millas por hora, y las dos
frecuencias de microondas es:

Donde las ondas emitidas tienen una frecuencia de:

f0 = 2 x10^10 sec ^–1

Usando la fórmula dada, escriba un programa para calcular y desplegar la velocidad


correspondiente a una frecuencia recibida de 2.0000004 x 10^10 sec–1.

Ahora aplicamos el procedimiento de desarrollo de software a este problema.

___
► Variables:

· Velocidad : Velocidad del Vehículo.

· Frecuencia0: Frecuencia inicial.

· Frecuencia1: Frecuencia Final.

___

►Salida:

----------------------------------------
RADAR DE VELOCIDAD
----------------------------------------
>>> La Velocidad es: 66.85 millas/hora.
-------------------------------------
Solución 77: Radar de Velocidad
# Valores para Dibujar la Tabla
ANCHO = 40
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "RADAR DE VELOCIDAD"

############################################################
##########

# Declaracion de variables
Velocidad = 0.0
Frecuencia0 = 2e-10
Frecuencia1 = 2.0000004e-10

# Formato de Salida Final en Pantalla


Formato_Respuesta = ">>> La Velocidad es: %0.2f
millas/hora."

############################################################
##########
# Encabezado del Programa
# LINEA 1: Parte superior de la Tabla
print(CADENA_VACIA.center(ANCHO,RELLENO1))
# Mensaje Centrado
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))

############################################################
##########

# Inicio del Programa:


# Calculo de la VELOCIDAD del radar
# velocidad = 6.685x10^8 x (f1 - f0) / (f1 + f0)
Velocidad=6.685e8*(Frecuencia1-Frecuencia0)/
(Frecuencia1+Frecuencia0)

# LINEA 2: Separador de la tabla


print(CADENA_VACIA.center(ANCHO,RELLENO1))

# Se muestra el mensaje en Pantalla


print(Formato_Respuesta.center(ANCHO,RELLENO2) %(Velocidad))

############################################################
##########

# LINEA 3: Parte Inferior de la Tabla


print(CADENA_VACIA.center(ANCHO,RELLENO1))
Ejercicio 78: Distancia recorrida por un Móvil
► Enunciado:

Se desea calcular la distancia recorrida (m) por un móvil que tiene velocidad constante
(m/s) durante un tiempo t (s), considerar que es un MRU (Movimiento Rectilíneo Uniforme).

Se sabe que el cálculo de la velocidad en MRU es por fórmula:

► Velocidad = Distancia / Tiempo

Despejando la distancia se tiene:

► Distancia = Velocidad x Tiempo

___

► Variables:

· Velocidad : Velocidad del móvil.

· Distancia : Distancia recorrida por el móvil.

· Tiempo : Tiempo de recorrido del móvil.

___
► Salida:

----------------------------------------
DISTANCIA DE UN MOVIL
----------------------------------------
>>> Ingrese la Velocidad : 10
>>> Ingrese el Tiempo : 60
----------------------------------------
DISTANCIA: 600.0 Metros
----------------------------------------

Solución 78: Distancia recorrida por un Móvil


# Valores para Dibujar la Tabla
ANCHO = 40
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "DISTANCIA DE UN MOVIL"

# Mensajes de solicitud de Datos


SOLICITAR_VELOCIDAD = ">>> Ingrese la Velocidad : "
SOLICITAR_TIEMPO = ">>> Ingrese el Tiempo : "

# Mensajes de Error
ERROR_FORMATO = "SOLO SE PERMITEN NUMEROS"

############################################################
##########

# Declaracion de variables
f_velocidad, f_distancia = 0.0, 0.0
i_tiempo = 0

# Formato de Salida Final en Pantalla


s_formato_respuesta = "DISTANCIA: %0.1f Metros"

############################################################
##########

# Encabezado del Programa


print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))
print(CADENA_VACIA.center(ANCHO,RELLENO1))

############################################################
##########

# Inicio del Programa:


try:
# SOLICITUD de Datos
f_velocidad = float(input(SOLICITAR_VELOCIDAD))
i_tiempo = int(input(SOLICITAR_TIEMPO))

print(CADENA_VACIA.center(ANCHO,RELLENO1))

# Formula para calcular Distancia


# Distancia = Velocidad x Tiempo

f_distancia = f_velocidad * i_tiempo

# Se muestra el mensaje en Pantalla


print(s_formato_respuesta.center(ANCHO,RELLENO2) %
(f_distancia))

except ValueError:
print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(ERROR_FORMATO.center(ANCHO,RELLENO2))

############################################################
##########

print(CADENA_VACIA.center(ANCHO,RELLENO1))

Ejercicio 79: Velocidad de un Móvil


► Enunciado:

Dado el tiempo en segundos y la distancia en metros de un móvil, ingresados por


teclado, calcule la velocidad correspondiente.

Se sabe que el cálculo de la velocidad en MRU es por fórmula:

Velocidad = Distancia / Tiempo

___

► Variables:

· Velocidad : Velocidad del móvil.

· Distancia : Distancia recorrida por el móvil.

· Tiempo : Tiempo de recorrido del móvil.

___

► Salida:
----------------------------------------
VELOCIDAD DE UN MOVIL
----------------------------------------
>>> Ingrese la Distancia : 1000
>>> Ingrese el Tiempo : 30
----------------------------------------
VELOCIDAD: 33.3 (m/s)
----------------------------------------
Solución 79: Velocidad de un Móvil
# Valores para Dibujar la Tabla
ANCHO = 40
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "VELOCIDAD DE UN MOVIL"

# Mensajes de Solicitud de Datos


SOLICITAR_DISTANCIA = ">>> Ingrese la Distancia : "
SOLICITAR_TIEMPO = ">>> Ingrese el Tiempo : "

# Mensajes de error
ERROR_FORMATO = "SOLO SE PERMITEN NUMEROS"
ERROR_ZERO_DIVISION = "NO SE PERMITE LA DIVISION ENTRE 0."

############################################################
##########

# Declaración de variables
f_velocidad = 0.0
f_distancia = 0.0
i_tiempo = 1

# Formato de Salida Final en Pantalla


s_formato_respuesta = "VELOCIDAD: %0.1f (m/s)"

############################################################
##########

# Encabezado del Programa


print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))
print(CADENA_VACIA.center(ANCHO,RELLENO1))

############################################################
##########

# Inicio del Programa:


try:
# SOLICITUD de Datos
f_distancia= float(input(SOLICITAR_DISTANCIA))
i_tiempo = int(input(SOLICITAR_TIEMPO))

print(CADENA_VACIA.center(ANCHO,RELLENO1))

# Formula para calcular Distancia


# Distancia = Velocidad x Tiempo

f_velocidad = f_distancia / i_tiempo

# Se muestra el mensaje en Pantalla


print(s_formato_respuesta.center(ANCHO,RELLENO2) %
(f_velocidad))

except ZeroDivisionError:
print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(ERROR_ZERO_DIVISION)

except ValueError:
print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(ERROR_FORMATO)

############################################################
##########

print(CADENA_VACIA.center(ANCHO,RELLENO1))

Ejercicio 80: Tiempo de Encuentro entre 2 Vehículos


► Enunciado:

Desarrolla un Algoritmo, que calcule el tiempo de encuentro de 2 vehículos que van en


sentido opuesto, teniendo como datos la distancia inicial que los separa y la velocidad de
cada uno.

Si las velocidades de ambos vehículos son iguales a 0, se debe mostrar un mensaje de


error ya que si ninguno de los vehículos se está desplazando el tiempo de encuentro es
infinito.

La fórmula para calcular el tiempo de encuentro entre 2 vehículos es:

Tiempo = Distancia / ( Velocidad1 + Velocidad2)

___

► Variables:

· Tiempo : Tiempo de encuentro de los dos vehículos.

· Distancia : Distancia que separa a los dos vehículos.


· Velocidad1: Velocidad del vehículo 1.

· Velocidad2: Velocidad del vehículo 2.

___

► Salida:

----------------------------------------
TIEMPO DE ENCUENTRO DE 2 VEHICULOS
----------------------------------------
>>> Distancia de Separacion : 1000
----------------------------------------
>>> Velocidad del Vehiculo 1 : 20
>>> Velocidad del Vehiculo 2 : 15
----------------------------------------
TIEMPO: 28.57 segundos
----------------------------------------

Solución 80: Tiempo de Encuentro entre 2 Vehículos


# Valores para Dibujar la Tabla
ANCHO = 40
RELLENO1 = "-"
RELLENO2 = " "
CADENA_VACIA = ""

############################################################
##########

# Mensajes a Mostrar
MENSAJE_INICIAL = "TIEMPO DE ENCUENTRO DE 2 VEHICULOS"

# Mensajes de Solicitud de Datos


SOLICITAR_DISTANCIA = ">>> Distancia de Separacion : "
SOLICITAR_VELOCIDAD1 = ">>> Velocidad del Vehiculo 1 : "
SOLICITAR_VELOCIDAD2 = ">>> Velocidad del Vehiculo 2 : "

# Mensajes de Error
ERROR_VELOCIDADES = "ERROR: Tiempo de encuentro INFINITO"

############################################################
##########

# Declaracion de variables
tiempo = 1
distancia = 0.0
velocidad1, velocidad2 = 0.0, 0.0

# Formato de Salida Final en Pantalla


formato_respuesta = "TIEMPO: %4.2f segundos"

############################################################
##########

# Encabezado del Programa


print(CADENA_VACIA.center(ANCHO,RELLENO1))
print(MENSAJE_INICIAL.center(ANCHO,RELLENO2))
print(CADENA_VACIA.center(ANCHO,RELLENO1))

############################################################
##########

# Inicio del Programa:


distancia = float( input(SOLICITAR_DISTANCIA))

print(CADENA_VACIA.center(ANCHO,RELLENO1))

velocidad1 = float( input(SOLICITAR_VELOCIDAD1))


velocidad2 = float( input(SOLICITAR_VELOCIDAD2))

print(CADENA_VACIA.center(ANCHO,RELLENO1))

if velocidad1 > 0 and velocidad2 > 0 :


# Formula para calcular el Tiempo
# Tiempo = Distancia / ( Velocidad1 + Velocidad2)
tiempo = distancia/(velocidad1 + velocidad2)

# Se muestra el mensaje en Pantalla


print(formato_respuesta.center(ANCHO,RELLENO2) %(tiempo))
else:
print(ERROR_VELOCIDADES)

############################################################
##########

print(CADENA_VACIA.center(ANCHO,RELLENO1))

También podría gustarte