Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


resolución de problemas de Funciones en Python, Ejercicios de Programación Funcional

enunciados matemáticos que se encuentran en una problemática que tienes que convertir en un problema matematico y luego ese problema pasarlo a ser un código

Tipo: Ejercicios

2022/2023

Subido el 29/06/2023

formularios-pptpdf-y-docs
formularios-pptpdf-y-docs 🇵🇪

2 documentos

1 / 16

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Intro. a Ciencia de la Computaci´on
FUNCIONES
Pregrado
2019-II
Ciencia de la Computaci´on
Laboratorio
Las siguientes preguntas se recogen de pr´acticas pasadas y est´an acompa˜nadas de un
indicador de dificultad que va desde el 1 al 5.
1. (Nivel 1) Deber´as crear una funci´on que se llame ”maravilla”. Esta funci´on recibir´a 3
par´ametros, y tendr´a las siguientes caracter´ısticas:
El primer par´ametro sera un car´acter, el cual puede ser alguno de estos s´ımbolos:
“+” (m´as)
“-” (menos)
“*” (por)
“/” (entre)
El segundo y el tecer par´ametros ser´an dos umeros enteros .
La funci´on devolver´a el resultado de la operaci´on enviada.
Si el primer par´ametro fuera “/” (“entre”) y el segundo umero un cero, deber´a
imprimir un mensaje de error y no devolver´a nada.
2. (Nivel 1) Implemente una funci´on que reciba un n´umero como par´ametro y haga las
sumatorias de la siguiente forma:
Si el umero es par la funci´on debe calcular y retornar la suma de todos los n´umeros
pares desde el 0 hasta el umero pasado como par´ametro.
Si el umero es impar entonces la funci´on debe calcular y retornar la suma de todos
los umeros impares desde el 0 hasta el n´umero pasado como par´ametro.
Si el umero es 0 o no se le pasa ningun arametro, debe retornar el valor de 0.
Luego implemente un programa que utilize la funci´on anterior, solicitando al usuario que
ingrese un umero e imprimiendo el resultado.
Algunos ejemplos de di´alogo de este programa ser´ıan:
I ng r es e un n ´u m er o : 5
R es ul t ad o : 9
I ng r es e un n ´u m er o : 6
R es ul t ad o : 1 2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga resolución de problemas de Funciones en Python y más Ejercicios en PDF de Programación Funcional solo en Docsity!

Intro. a Ciencia de la Computaci´on

FUNCIONES

Pregrado

2019-II

Ciencia de la Computaci´on

Laboratorio

Las siguientes preguntas se recogen de pr´acticas pasadas y est´an acompa˜nadas de un indicador de dificultad que va desde el 1 al 5.

  1. (Nivel 1) Deber´as crear una funci´on que se llame ”maravilla”. Esta funci´on recibir´a 3 par´ametros, y tendr´a las siguientes caracter´ısticas:

ˆ El primer par´ametro sera un car´acter, el cual puede ser alguno de estos s´ımbolos: “+” (m´as) “-” (menos) “*” (por) “/” (entre) ˆ El segundo y el tecer par´ametros ser´an dos n´umeros enteros. ˆ La funci´on devolver´a el resultado de la operaci´on enviada. ˆ Si el primer par´ametro fuera “/” (“entre”) y el segundo n´umero un cero, deber´a imprimir un mensaje de error y no devolver´a nada.

  1. (Nivel 1) Implemente una funci´on que reciba un n´umero como par´ametro y haga las sumatorias de la siguiente forma:

ˆ Si el n´umero es par la funci´on debe calcular y retornar la suma de todos los n´umeros pares desde el 0 hasta el n´umero pasado como par´ametro. ˆ Si el n´umero es impar entonces la funci´on debe calcular y retornar la suma de todos los n´umeros impares desde el 0 hasta el n´umero pasado como par´ametro. ˆ Si el n´umero es 0 o no se le pasa ningun p´arametro, debe retornar el valor de 0.

Luego implemente un programa que utilize la funci´on anterior, solicitando al usuario que ingrese un n´umero e imprimiendo el resultado. Algunos ejemplos de di´alogo de este programa ser´ıan: Ingrese un n´u mero : 5 Resultado : 9

Ingrese un n´u mero : 6 Resultado : 12

Ingrese un n´u mero : 9 Resultado : 25

  1. (Nivel 1) Dada una lista de n´umeros construya una funci´on que extraiga una secuencia de n´umeros dada dos posiciones. Presente el resultado como la suma de esos n´umeros extra´ıdos. Los n´umeros ingresados se incorporan como una lista en una sola l´ınea. Algunos ejemplos de di´alogo de este programa ser´ıan: Input : 3 4 5 6 7 9 1 2 3 4 pos1 : 3 pos2 : 5

Output : 18

Input : 3 4 1 2 7 9 1 2 3 4 pos1 : 5 pos2 : 8

Output : 19

  1. (Nivel 1) Implemente una funci´on que reciba un n´umero entero como par´ametro y retorne el factorial de dicho n´umero. En caso no se env´ıe ning´un valor al momento de invocarla, deber´a calcular el factorial de 10. Algunos ejemplos de di´alogo de este programa ser´ıan: Input : 3 Output : 6

Input : 5 Output : 120

Input : Output : 3628800

  1. (Nivel 1) Dada una matriz de valores:

( a b c d

Se define la determinante como D = ad − bc Construya una funci´on en Python para obtener la determinante:

ˆ Escriba la funci´on como parte de un archivo m´odulo aparte: ejemplo determi- nante.py.

True

False

  1. (Nivel 1) Desarrollar un programa en Python que permita ingresar N c´odigos. Debe validar que no se ingrese un c´odigo duplicado, para ello debe crear obligatoriamente una funci´on que valide la duplicidad. Ejemplo de di´alogo de este programa: Ingrese total de codigos : 4 Codigo 1: 125 Codigo 2: 100 Codigo 3: 125 ERROR , codigo duplicado Codigo 3: 63 Codigo 4: 100
  2. (Nivel 1) Implemente una funci´on que reciba una lista con n´umeros y devuelva el mayor. Tambi´en implemente una funci´on que reciba una lista con n´umeros y devuelva el menor. Luego implemente un programa que solicite 5 n´umeros, los ponga en una lista y llame a esas dos funciones. Finalmente imprime el promedio entre el mayor y el menor. Un ejemplo de este programa ser´ıa: Ingrese el nro 1: 5 Ingrese el nro 2: 7 Ingrese el nro 3: 10 Ingrese el nro 4: 2 Ingrese el nro 5: 100 51
  3. (Nivel 1) Usted es jurado calificador de un concurso de proyectos tecnol´ogicos. Para ello, debe evaluar el performance de los equipos participantes en funci´on a diversos criterios de calificaci´on y en funci´on de eso es que se definir´a el ganador del concurso. Como el proceso hasta ahora ha sido netamente manual, el equipo organizador del concurso ha convenido que debe ahora ser un proceso automatizado. Por ello, se le ha encargado dise˜nar e implementar un programa que:

ˆ Reciba un n´umero N de equipos para ser evaluados. ˆ Implementar una m´odulo que contenga una funci´on para calificar al equipo.

  • Esta funci´on debe devolver la calificaci´on en base a:
    • Existen cuatro criterios de calificaci´on. Cada criterio (a,b,c,d) puede ser calificado del 1 al 3.

ˆ En ese mismo m´odulo se debe implementar una funci´on que reciba la calificaci´on de cada equipo y devuelva la calificaci´on m´as alta. ˆ Deber´a imprimir la calificaci´on m´as alta correspondiente al equipo ganador.

Caso de prueba: Grupos : 4 Resultados Grupo 1 = [3 ,1 ,3 ,2] Resultados Grupo 2 = [3 ,2 ,3 ,2] Resultados Grupo 3 = [3 ,3 ,1 ,2] Resultados Grupo 4 = [3 ,3 ,3 ,3] Calificacion ganador = 12

  1. (Nivel 2) Implemente una funci´on que reciba un n´umero entero como par´ametro y retorne la sumatoria de dicho n´umero. En caso no se env´ıe ning´un valor al momento de invocarla, deber´a calcular la sumatoria de 10. Algunos ejemplos de di´alogo de este programa ser´ıan: Input : 5 Output : 15

Input : 10 Output : 55

  1. (Nivel 2) Implementar un algoritmo que recibe un n´umero entero menor a 9 en notaci´on decimal y lo convierte a binario.

ˆ Debe implementarse una funci´on. En caso el n´umero pasado como argumento no cumpla con el requisito imprime un mensaje “Por favor int´entelo nuevamente”. En caso no se ingrese un n´umero para la conversi´on, por defecto se calcula la conversi´on de 8. ˆ Cada d´ıgito de la conversi´on es almacenado en una lista. ˆ La conversi´on es impresa de forma inversa, esto facilita la soluci´on. Por ejemplo, 6 en binario es 110, pero se almacenar´ıa como [0, 1, 1]. ˆ TIP: usar la conversi´on por divisi´on y while.

Algunos ejemplos de di´alogo de este programa ser´ıan: Input : conversion () Output : [0 , 0 , 0 , 1]

Input : conversion (3) Output : [1 , 1]

Ingrese numero 1: Ingrese numero 2: Ingrese numero dentro del rango : [100 - 200] Ingrese numero 2: Ingrese numero 3: El promedio es : 163.

Ingrese cantidad de numeros validos esperados : 4 Ingrese rango de inicio : 60 Ingrese rango de fin : 80 Ingrese numero 1: Ingrese numero dentro del rango : [60 - 80] Ingrese numero 1: Ingrese numero 2: Ingrese numero 3: Ingrese numero 4: El promedio es : 70.

  1. (Nivel 2) Rosa es estudiante del colegio Nuestra Se˜nora de la Merced de San Juan de Lurigancho, y en su curso de aritm´etica hicieron el tema de divisibilidad. El profesor del curso mostr´o los criterios de divisibilidad del n´umero 11 que permiten averiguar si un n´umero es divisible por 11 de una forma sencilla, sin utilizar m´odulo. El criterio de divisibilidad es el siguiente:

ˆ Un n´umero es divisible entre 11 cuando la suma de los n´umeros que ocupan la posici´on par menos la suma de los n´umeros que ocupan la posici´on impar es igual a cero.

La aplicaci´on del criterio de divisibilidad para el n´umero 455433 , es:

ˆ Para saber si 455433 es divisible entre 11, identificamos cu´ales son las cifras que ocupan las posiciones pares y las que ocupan las posiciones impares. ˆ Posici´on par: 4, 5 y 3. Los sumamos: 4 + 5 + 3 = 12 ˆ Posici´on impar: 5, 4 y 3. Los sumamos: 5 + 4 + 3 = 12 ˆ Restando: 12 − 12 = 0, por lo tanto el n´umero 455433 SI es divisible entre 11.

Considere que todos los n´umeros que se ingresar´an tendr´an un tama˜no par. Escribe un programa que permita al usuario ingresar un n´umero decimal, y el programa debe averiguar si el n´umero es divisible por 11, y al final debe imprimir ”El n´umero SI es divisible por 11” cuando el n´umero sea divisible por 11 y ”El n´umero NO es divisible por 11” en caso contrario.

Para esto tu programa debe implementar y usar la siguiente funci´on:

ˆ isDivisible11 recibe como par´ametro un n´umero y retorna SI en el caso que sea divisible entre 11 y NO en caso contrario.

Algunos ejemplos de di´alogo de este programa ser´ıan: Ingrese un n´u mero : 14587629 El n ´u mero NO es divisible por 11

Ingrese un n´u mero : 783475 El n ´u mero SI es divisible por 11

  1. (Nivel 2) Dise˜ne e implemente una funci´on extrae intervalo que reciba tres par´ametros: una lista y dos enteros opcionales, el primero de ellos representa el l´ımite inferior y el segundo el superior. La funci´on debe retornar una lista que contenga aquellos elementos que se encuentran dentro del intervalo formado por el l´ımite inferior y superior (contando los l´ımites). En caso de que no se envien los l´ımites al momento de invocar la funci´on deber´a considerarse 0 como l´ımite inferior y 100 como l´ımite superior. lista = [1 , 80 , 15 , 30 , 25 , 90 , 110 , 105 , 180 , 200 , 10] print ( extrae_intervalo ( lista , 10 , 70) 15 30 25 10 print ( extrae_intervalo ( lista ) 1 80 15 30 25 10
  2. (Nivel 2) Dise˜ne e implemente una funci´on puntaje que reciba tres par´ametros: una lista que contiene unicamente tres valores: G (ganado), E (empatado) y P (perdido). Los dos par´ametros restantes ser´an dos enteros que representen el puntaje a asignar en caso de partido ganado y empatado (el partido perdido siempre valdr´a cero). En caso estos dos par´ametros no se env´ıen al momento de invocar a la funci´on se deber´a considerar tres puntos por partido ganado y un punto por partido empatado. Puede asumir que los ´unicos valores que vendr´an en la lista son “G”, “E” o “P”. lista = [" G " , " G " , " P " , " P " , " E " , " G "] print ( puntaje ( lista , 5 , 2) ) 17 print ( puntaje ( lista ) ) 10
  3. (Nivel 3) Implemente una funci´on que reciba un n´umero como par´ametro, y haga los c´alculos de la siguiente forma:

ˆ Si el n´umero es m´ultiplo de 3 entonces la funci´on debe calcular y retornar la suma de todos los n´umeros m´ultiplos de 3 desde el 0 hasta el n´umero pasado como par´ametro. ˆ Si el n´umero es m´ultiplo de 4 entonces la funci´on debe calcular y retornar la suma de todos los n´umeros m´ultiplos de 4 desde el 0 hasta el n´umero pasado como par´ametro.

  • Publicidad: $ 50 ˆ El programa debe llamar a una funci´on llamada costos variables que devuelva el costo variable total:
  • Hasta los 10 alumnos el profesor cobra: $ 10.00 por hora
  • Desde los 11 hasta los 15 alumnos el profesor cobra: $ 13.00 por hora
  • Desde los 16 a 20 el profesor cobra: $. 17.
  • A partir de 21 alumnos cobra: $ 20.
  • Todos los talleres duran 16 horas. ˆ El programa debe llamar a una funci´on llamada evaluo renta que:
  • Debe calcular los ingresos en funci´on al precio de venta ($ 80.00 por estudiante).
  • Restarle los costos totales (suma de los costos fijos y los costos variables)
  • Devolver ‘es rentable’ si el resultado es mayor a 0 y ‘no es rentable’ si el resul- tado es negativo. ˆ El programa debe usar un solo m´odulo donde est´en creadas las funciones solicitadas. ˆ El resultado de la funci´on evaluo renta debe ser impreso al final del programa.

Algunos casos de prueba: Ingrese cantidad de estudiantes : 20 Resultado : es rentable

Ingrese cantidad de estudiantes : 3 Resultado : no es rentable

  1. (Nivel 3) Dise˜nar y crear una funci´on que se llamar´a contar omitidos que tome una lista de cualquier tama˜no (de 2 a m´as valores) cuyo contenido sean letras ordenadas en forma creciente (de ’a’ hasta ’z’) continuas o separadas por 1 o m´as caracteres. La funci´on deber´a contar cuantas letras han sido omitidas para que la secuencia de letras sea continua. print ( contar_omitidos ([ ’a ’ , ’d ’ , ’e ’ , ’i ’]) ) ) 5

print ( contar_omitidos ([ ’a ’ , ’f ’ , ’p ’]) ) ) 13

print ( contar_omitidos ([ ’f ’ , ’p ’]) ) ) 9

print ( contar_omitidos ([ ’b ’ , ’c ’ , ’d ’ , ’e ’ , ’f ’ , ’g ’]) ) ) 0

  1. (Nivel 4) Dise˜ne e implemente una funci´on que se llame contar omitidos que reciba como par´ametro una lista de caracteres ordenados de forma creciente (de ’a’ hasta ’z’) continuas o separadas por 1 o m´as caracteres. La funci´on deber´a contar cuantas letras han sido omitidas para que la secuencia de letras sea continua. Algunos ejemplos de di´alogo de este programa ser´ıan: print ( contar_omitidos ([ ’a ’ , ’d ’ , ’e ’ , ’i ’ ]) ) omitidos : 5

print ( contar_omitidos ([ ’a ’ , ’f ’ , ’p ’ ]) ) omitidos : 13

print ( contar_omitidos ([ ’f ’ , ’p ’ ]) ) omitidos : 9

  1. (Nivel 4) Dada la siguiente funci´on matem´atica:

F =

(cos(t) + cos(2t) + cos(3t) + ... + cos(N t)) N

El valor de t puede estar solo entre -10 y 10. El valor entero recibido deber´a convertirse a radianes con la siguiente expresi´on t = math.radians(grado) Construya la funci´on en Python para obtener ese resultado:

ˆ Escriba la funci´on como parte de un archivo m´odulo aparte. ˆ Escriba un programa en donde se invoque a la funci´on indicada, lea N y el grado y devuelva el resultado. ˆ Utilice import math para acceder a la funci´on coseno.

Algunos ejemplos de ejecuci´on del programa: 20 1

False

  1. (Nivel 4) Realizar un programa que nos permita realizar todas las funciones de una cal- culadora b´asica utilizando funciones, es decir, en el programa principal debe indicarnos qu´e tipo de operaci´on deseamos realizar: suma, resta, multiplicaci´on, divisi´on y resul- tados anteriores. Si el usuario ingres´o una opci´on que no existe, entonces nuevamente debe volver a preguntarle que ingrese una opci´on correcta. El usuario debe ingresar la

Algunos ejemplos de di´alogo de este programa ser´ıan: Ingrese d ´ıa : 16 Ingrese mes : 5 Ingrese a ~no : 2019 Dias faltantes : 119

Ingrese d ´ıa : 20 Ingrese mes : 9 Ingrese a ~no : 2019 Dias faltantes : 246

  1. (Nivel 4) Para dar soluci´on a este problema se requiere lo siguiente:

ˆ Crea una funci´on que reciba una cadena de caracteres y te devuelva el car´acter que m´as se repite. ˆ Crea un programa que pida al usuario 3 frases. ˆ El programa mostrar´a en pantalla una cadena formada por lo caracteres m´as repeti- dos de cada una de las tres frases

Algunos ejemplos de di´alogo de este programa ser´ıan: Ingrese la frase 1: mi mama me mima Ingrese la frase 2: ojos que no ven , ciego es Ingrese la frase 3: alabama Resultado : moa

  1. (Nivel 4) Dada una tabla de contingencia en donde se ha registrado la ocurrencia de tres enfermedades para una muestra aleatoria de 1000 individuos por cada ciudad. Se le pide elaborar un programa que permita calcular la probabilidad marginal de cada enfermedad. Esta probabilidad se obtiene sumando las ocurrencias de dicha enfermedad en cada ciudad y el resultado es dividido por la suma total de la tabla, es decir: sea la matriz M [n][m], la probabilidad marginal de la columna c se obtiene:

P M (c) =

∑n− 1 ∑^ i=0^ M^ [i][c] n− 1 i=

∑m− 1 j=0 M^ [i][j]

Para el desarrollo considerar dos funciones: una para calcular la suma total de elementos de la tabla y la otra funci´on para calcular la suma de elementos de una columna. La matriz de datos y la lista de enfermedades debe ser definido dentro del c´odigo. Ejemplo: en mi c´odigo tengo la siguiente matriz de datos. Ingrese enfermedad : Gripe La probabilidad marginal es : 0.

Gripe Influenza C´olera Ciudad 1 200 460 340 Ciudad 2 620 180 200 Ciudad 3 530 250 220

  1. (Nivel 5) Escribir un programa que tenga como entrada dos n´umeros enteros positivos A y B donde (A <B) y que tenga como salida todos los n´umeros primos que existen entre A y B. Considerar los siguientes puntos:

ˆ Si el segundo n´umero ingresado es menor que el primer n´umero ingresado entonces el programa imprime el siguiente mensaje “El segundo n´umero ingresado tiene que ser mayor que el primer n´umero!” y se seguir´a pidiendo los n´umeros A y B hasta que se cumpla esta condici´on. ˆ Crear un m´odulo con nombre “funciones.py” e implementar la funci´on con nombre “es primo” para saber si un n´umero es primo o no. ˆ Crear un m´odulo “main.py” para importar el modulo funciones y proceder a im- plementar el algoritmo de encontrar los n´umeros primos entre A y B. ˆ El resultado debe mostrar a los n´umeros primos horizontalmente espaciados.

Ejemplo del programa: python main. py Ingrese el primer numero : 2 Ingrese el segundo numero : 1 El segundo numero ingresado tiene que ser mayor que el primer numero! Ingrese el primer numero : Ingrese el segundo numero : 10 El segundo numero ingresado tiene que ser mayor que el primer numero! Ingrese el primer numero : Ingrese el segundo numero : 100 Todos los numeros primos que existen entre 2 y 100 son :

  1. (Nivel 5) El sistema hexadecimal es el sistema de numeraci´on posicional que tiene como base el 16. Su uso actual est´a muy vinculado a la inform´atica y ciencias de la computaci´on donde las operaciones de la CPU suelen usar el byte u octeto como unidad b´asica de memoria. Dado que el sistema usual de numeraci´on es de base decimal y, por ello, s´olo se dispone de diez d´ıgitos, se adopt´o la convenci´on de usar las seis primeras letras del alfabeto

Adicionalmente, si no hay ning´un n´umero perfecto o primo en el rango de min y max, deber´a mostrar un mensaje apropiado. Algunos ejemplos de este programa ser´ıan:

Ingrese min : 1 Ingrese max : 7 2 3 5 6

Ingrese min : 8 Ingrese max : 10 No hay numeros perfectos ni primos