










































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Colección de problemas de informática, primer curso, cuadrimestre 1
Tipo: Ejercicios
1 / 50
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!











































- 14 de diciembre de EEBE Ciència de Computadors Ejecute la siguiente expresión y analice y justique el resultado obtenido:
(3, 0 ∗ (0, 1 / 3 ,0)) == ((3, 0 ∗ 0 ,1)/ 3 ,0)
Determinar el valor de las expresiones numéricas siguientes:
2 + 7 // 3 * 2 - 15 32 % 4 + 12 - 4 * 3 2 ** 5 + 32 9 - 86 / 4 * 3 + 4 42 // 8 - 3 * 14 + 6 24 / 5 ** 2 - 0. 3 * 5 % 4 + 11 // 4 * 3
Determinar el valor de les expresiones lógicas siguientes:
True and not False or False False or False or True not (False or False) and True not False and not False and True
Ejecute la siguiente expresión y analice y justique el resultado obtenido^1
(0 == False) and 1 0 and 0 and 1 0 and 34 or 12
Determinar si las expresiones siguientes son correctas: En caso de error : Indicar qué tipo de error^2 indica el terminal y cuál es el mensaje recibido. Justicar el error y proponer una respuesta. En cualquier otro caso, indicar el resultado
a) 3 + 1 > 2 > 1 - 3 b) 1 + 2 * 3 % 2 - 1 c) -1 + 3 % / 2 + 1 d) 1 >= 7 % 2 e) 1 % 2 > 0. f) True or not and (2 > 1) g) 3 % 5 + 2 = 5
(^1) Ver https://docs.python.org/3.5/library/stdtypes.html (^2) ver Llistat d`errors comuns a Python en http://gie.cs.upc.edu//errors.html
Alguno de los valores de a, b o c está en medio del intervalo formado por los otros do x, y i z pueden ser los lados de un triángulo.
Determinar a que tipo de variable corresponde el resultado de las expresiones siguientes:
f = a and (d > 2) or (e != '.') e = (a == b) and not (b % c == 1) f = d and not e d = a % b e = (c >= 'a') and (c <= 'z') or not f n = (c <= '9') and (c >= '0') or p m = a % b + a / b c = (a != 'a') and (a != b) or not e f = g // 3 * h / 3 c = (a != 'a') and (a != b) f = (g % 5 = 1) or not e d = a // h == b / 5 e = c or f and (g == 'a') a = b < c < d e = f // 4 / g h = (i == 'a') or j and b a = w < x e = (z == 'a') or k and (w > 2.33) s = y % u / 4 d = (e < c) and (c < 'z') f = (a % 2) + (a / 2) h = (False < g) or b d = g % 3 // 2 f = d / 2 + 5 % e
Desarrolle un programa que lea dos datos y posteriormente los escriba en pantalla. Transfórmelo en una función que reciba dos datos y los retorne.
Diseña una función Area(r) que reciba el radio r de una circunferencia y retorne su área aso- ciada. Entrada: La función recibe un radio r Salida: el área de la circunferencia Ejemplos:
area(8)
area(5.76)
area(120)
Diseña una función areatr(b,h) que recibe la base y la altura de un triángulo, y devuelve su área. Entrada: La función recibe dos valores b y h Salida: el área del triángulo Ejemplos:
areatr(8,8)
areatr(5,2)
areatr(6,9)
Desarrolle una función may(s)que reciba una letra minúscula y retorne la letra en mayúsculas mediante 'str'.upper(). Entrada: La función recibe una letra s Sortida: devuelve la letra s en mayúscula Ejemplos:
may('a') 'A' may('h') 'H' may('F') 'F'
Diseña una función coord(m,a) que reciba el valor del módulo y de su ángulo en grados sexage- simales y devuelva sus coordenadas cartesianas (x, y) ajustados a 4 decimales usando la función predeterminada round(value, digits) 3. Entrada: La función recibe un módulo y un argumento Salida: las ccordenadas cartesianas correspondientes Ejemplos:
coord (1,45) (0.7071, 0.7071) coord(5,60)
(2.5, 4.3301)
(^3) ver https://docs.python.org/3.5/library/functions.html#round
Entrada: Dos valores m, n. Salida: los dos valores m y n ordenados de menor a mayor. Ejemplos:
mayor(3, 5) (3, 5) mayor(5, 3) (3, 5)
Diseña una función división(m, n) que reciba dos números cualquiera y retorne el cociente. En caso de divisor cero, devolver cero. Entrada: Dos números m, n. Salida: El cociente resultante de dividir m entre n. Ejemplos:
división(4.0, 2.0)
división(4, 0) 0
Diseña una función signo(x) que reciba un número cualquiera y retorne su signo. Entrada: Un número x. Salida: El signo de x. Ejemplos:
signo(6) 1 signo(-6.0)
signo(0) 0
Diseña una función ecuacionq(a, b, c) que reciba un número cualquiera y retorne las raíces de la ecuación cuadrática tipo y = ax^2 + bx + c. En caso de no existir raices, devolver False Entrada: Los valores de a, b, c. Salida: Las raíces reales de la ecuación. Ejemplos:
ecuacionq(1,3,2) (-1, -2) ecuacionq(2,1,2) False
Desarrolle una función transforma_tiempo(seg)que reciba una cierta cantidad de segundos seg y retorne su equivalente en semanas, días, horas, minutos y segundos.
Entrada: La función recibe un valor seg que representa una cantidad de segundos Sortida: devuelve los valores de semanas, días, horas minutos y segundos Ejemplos:
transforma_tiempo(2178585) mayor(3, 5) (3, 5) >>> mayor(5, 3) (3, 5) ## * Ejercicio 2.2.3 Cociente Diseña una función división(m, n) que reciba dos números cualquiera y retorne el cociente. En caso de divisor cero, devolver cero. Entrada: Dos números m, n. Salida: El cociente resultante de dividir m entre n. Ejemplos: >>> división(4.0, 2.0) 2. >>> división(4, 0) 0 ## * Ejercicio 2.2.4 Signo Diseña una función signo(x) que reciba un número cualquiera y retorne su signo. Entrada: Un número x. Salida: El signo de x. Ejemplos: >>> signo(6) 1 >>> signo(-6.0) - >>> signo(0) 0 ## ** Ejercicio 2.2.5 Ecuación cuadrática Diseña una función ecuacionq(a, b, c) que reciba un número cualquiera y retorne las raíces de la ecuación cuadrática tipo y = ax^2 + bx + c. En caso de no existir raices, devolver False Entrada: Los valores de a, b, c. Salida: Las raíces reales de la ecuación. Ejemplos: >>> ecuacionq(1,3,2) (-1, -2) >>> ecuacionq(2,1,2) False ## ** Ejercicio 2.2.6 Transformar segundos Desarrolle una función transforma_tiempo(seg)que reciba una cierta cantidad de segundos seg y retorne su equivalente en semanas, días, horas, minutos y segundos. Entrada: La función recibe un valor seg que representa una cantidad de segundos Sortida: devuelve los valores de semanas, días, horas minutos y segundos Ejemplos: >>> transforma_tiempo(2178585) (3, 4, 5, 9, 45) transforma_tiempo(9127145)
(15, 0, 15, 19, 5)
Desarrolle una función cambio_monedas(cent) que reciba una cierta cantidad de céntimos cent y retorne su equivalente en el mínimo número de monedas de curso legal (2 euros, 1 euro, 50 céntimos, 20 céntimos, 10 céntimos, 5 céntimos, 2 céntimos y 1 céntimo). Entrada: La función recibe un valor seg que representa una cantidad de segundos Sortida: devuelve los valores de las monedas legales desde 2 euros hasta 1 céntimo Ejemplos:
cambio_monedas(587)
(2, 1, 1, 1, 1, 1, 1, 0)
Diseña una función nota(x) que reciba el valor numérico x de una nota y retorne su nota equivalente. Los valores hasta 5 son suspenso, hasta 7 son aprobado, hasta 9 son notable y hasta 10 excelente. Entrada: Un número 0 <= x <= 10. Salida: La nota equivalente a x. Ejemplos:
nota(6) ecuacionq(2,1,2) False ## ** Ejercicio 2.2.6 Transformar segundos Desarrolle una función transforma_tiempo(seg)que reciba una cierta cantidad de segundos seg y retorne su equivalente en semanas, días, horas, minutos y segundos. Entrada: La función recibe un valor seg que representa una cantidad de segundos Sortida: devuelve los valores de semanas, días, horas minutos y segundos Ejemplos: >>> transforma_tiempo(2178585) (3, 4, 5, 9, 45) >>> transforma_tiempo(9127145) (15, 0, 15, 19, 5) ## ** Ejercicio 2.2.7 Cambio en monedas Desarrolle una función cambio_monedas(cent) que reciba una cierta cantidad de céntimos cent y retorne su equivalente en el mínimo número de monedas de curso legal (2 euros, 1 euro, 50 céntimos, 20 céntimos, 10 céntimos, 5 céntimos, 2 céntimos y 1 céntimo). Entrada: La función recibe un valor seg que representa una cantidad de segundos Sortida: devuelve los valores de las monedas legales desde 2 euros hasta 1 céntimo Ejemplos: >>> cambio_monedas(587) (2, 1, 1, 1, 1, 1, 1, 0) ## ** Ejercicio 2.2.8 Nota Diseña una función nota(x) que reciba el valor numérico x de una nota y retorne su nota equivalente. Los valores hasta 5 son suspenso, hasta 7 son aprobado, hasta 9 son notable y hasta 10 excelente. Entrada: Un número 0 <= x <= 10. Salida: La nota equivalente a x. Ejemplos: >>> nota(6) 'Aprobado' nota(3) 'Suspenso'
Una compañíadesea calcular la estimación del importe de impuestos que los empleados deben pagar. Los ingresos inferiores a 8.000 euros no están sujetos a impuestos; los comprendidos entre 8.000 euros y 20.000 euros, lo están al 20 %; los comprendidos entre 20.000 euros y 35.000 euros, están sujetos al 29 % y los superiores a 35.000 euros, lo están al 40 % Diseña una función impuestos(x) que calcule los impuestos correspondientes a los ingresos x. Entrada: Un valor x de ingresos. Salida: Los impuestos correspondientes a x con 2 decimales. Ejemplos:
impuestos(25000) 7250
Codica una función ordena3(a, b, c) que reciba tres valores a, b, c cualquiera, y los retorne ordenados de menor a mayor haciendo un análisis de casos según los valores de a, b y c: Entrada: Tres valores a, b, c. Salida: Los valores en orden creciente. Ejemplos:
ordena3(3, 2, 5) (2, 3, 5)
Codica una función ordena4(a, b, c) que reciba tres valores a, b, c, d cualquiera, y los retorne ordenados de menor a mayor mediante operaciones de ordenar los números dos a dos. Utiliza para eso la función ordena2(m, n) del ejercicio 2.2.2: Entrada: Tres valores a, b, c, d. Salida: Los valores en orden creciente. Ejemplos:
ordena4(3, 2, 5, 1) (1, 2, 3, 5) ordena4(9, 5, 7, 3) (3, 5, 7, 9)
Codica una función paso_cronómetro(h, m, s) que reciba tres valores correctos para ho- ras:minutos:segundos, y retorne la hora que es un segundo después: Entrada: Tres valores 0 <= h < 24 , 0 <= m < 60 , 0 <= s < 60. Salida: Tres valores 0 <= h < 24 , 0 <= m < 60 , 0 <= s < 60. Ejemplos:
paso_cronómetro(1, 10, 30) (1, 10, 31) paso_cronómetro(1, 10, 59) (1, 11, 0) paso_cronómetro(1, 59, 59) (2, 0, 0)
Denir la función intervalo(a1,b1,a2,b2) que, dados deo intervalos, calcule el intervalo corres- pondiente a su intersección. Entrada: La función recibe cuatro enteros que a 1 , b 1 , a 2 , b 2 que representan los intervalos [a 1 , b1] i [a 2 , b2]. Asumir que a 1 <= b 1 i a 2 <= b 2. Salida: Escribir [] si los intervalos no tienen inctersección, o bien [x, y] si existe una intersección no vacía. Ejemplos:
interval(20, 30, 10, 40) [20,30] interval(20, 30, 10, 20)
interval(10, 20, 30, 40) []
El director de una ocina bancaria vende dos tipos diferentes de productos: Depósitos bancarios y acciones preferentes Por cada producto, si se venden 500.000,00 euros o más, cobra una comisión sobre el total vendido: el 3 % para las preferentes y el 0.05 % por los depósitos. Si vende menos de 500.000,00 euros no cobra ninguna comisión. Denir la función comisiones(vdipo, vpref ) que dados los valores de depositos y preferentes, devuelva el valor de la comisión que le corresponde. Entrada: La función recibe los valores de los depósitos vdipo y de las preferentes vpref Sortida: La comisión correspondiente (redondeado a 2 decimales (ver la función round()) o 0 , 0 si no hay comisión) Ejemplos:
comisiones(25000,15000)
comisiones(350000,250000)
comisiones(453876,52987)
Diseña la función consumo(kWh) que reciba un valor de kWh consumidos y calcule el importe total (consumo*precio) que ha de pagar un usuario sabiendo que el precio por kWh depende de la cantidad consumida según la siguiente tabla:
Menos de 1000 kWh: 0.17 euros/kWh
Igual o más de 1000 kWh y menos de 2000 kWh: 0.14 euros/kWh
Igual o más de 2000 kWh y menos de 5000 kWh: 0.13 euros/kWh
Igual o más de 5000 kWh: 0.11 euros/kWh
Entrada: La función recibe el valor del consumo en kW/h Sortida: El coste del consumo segun baremo redondeado a la centésima Ejemplos:
consumo(650)
consumo(1850)
consumo(6500)
Diseña una función cuadrante(x,y) que a partir de una coordenada (x, y) devuelva en qué cuadrante se encuentra (1 a 4). En caso de encontrarse en los ejes, devolverá 0 Entrada: La función recibe una coordenada (x, y) Salida: el cuadrante donde se encuentra. 0 si se encuentra sobre los ejes. Ejemplos:
Garbí SO de 202.5 a 247.5 grados Ponent O de 247.5 a 292.5 grados Mestral NO de 292.5 a 337.5 grados
Los ángulos marinos tienen como origen (0.0 grados) la posición del Norte y giran en el sentido de las agujas del reloj. Entrada: La función recibe un ángulo sexagesimal Sortida: la dirección y el nombre del viento. Ejemplos:
rosavents(0) ('E', 'Llevant') rosavents(78) ('N', 'Tramuntana') rosavents(257) ('S', 'Migjorn')
2.3.1. Ejercicios con for
Diseña una función divisores(n) que escriba los divisores del número n. Entrada: La función recibe un numero natural n Salida: escribe en pantalla los divisores de n Ejemplos:
divisores(256) 2 4 8 16 32 64 128
Diseña una función cuantos_divisores(n) que reciba un numero natural n y devuelva el número de divisores que tiene. Si no tiene divisores, devuelve 0 Entrada: La función recibe un número natural n Salida: el número de divisores que tiene, 0 si no tiene Ejemplos:
cuantos_divisores(256) 7
Diseña una función sumadivisores(n) que reciba un numero natural n y devuelva la suma de sus divisores excepto él mismo.
Entrada: La función recibe un número natural n Salida: La suma de sus divisores Ejemplos:
sumadivisores(12) 16 sumadivisores(10) 8 sumadivisores(256) 255
Diseña una función ndivisores(n,nd) reciba un natural n y retorne si tiene exactamente nd divisores.
Entrada: Dos naturales n, nd Salida: T rue cuando n tenga nd divisores, F alse en caso contrario. Ejemplos:
ndivisores(7, 2) True ndivisores(12, 6) True ndivisores(4, 1) False
Diseña una función es_primo(n) que reciba un natural n y devuelva T rue si el número es primo o F alse en caso contrario. Se asume que n > 1. Entrada: La función recibe un número natural n Salida: T rue si el número es primo, F alse si no lo es. Ejemplos:
es_primo(47) True es_primo(2365) False es_primo(76847) True
Tenemos una máquina primitiva que tienes las operaciones de comparación (<><= >= == !=) y que solamente es capaz de incrementar las variables en uno (+= 1). Diseña una función sumainc(a,b) que reciba dos números naturales valores a y b y retorne su suma usando única- mente comparaciones e incrementos de uno en uno.
Entrada: La función recibe dos valores enteros positivos a y b Salida: La suma entre a y b Ejemplos:
Diseña una función cuantos_primos(n) que devuelva el número de primos que existen en el intervalo ]1, n[. Para facilitar el trabajo, se recomienda usar la función es_primo(x) del ejercicio 2.3.1.5. Entrada: La función recibe un numero natural n Salida: Se escriben los numeros primos que hay en el intervalo ]1, n[ Ejemplos:
cuantos_primos(10) 4
Diseña una función bo(n) que reciba un número natural n y escriba los primeros n números de la serie de Fibonacci. Los dos primeros números de esta serie son el 1 (uno) y el 1 (uno), y a partir de éstos, cada número de la secuencia se calcula realizando la suma de los dos anteriores.
Entrada: La función recibe un natural n Salida: Se escriben los primeros n elementos de la serie de bonacci Ejemplos:
nfibo(3) 1 1 2 nfibo(9) 1 1 2 3 5 8
Diseña una función nbo(n) que reciba un número natural n y devuelva el n-ésimo número de la serie de Fibonacci. Los dos primeros números de esta serie son el 1 (uno) y el 1 (uno), y a partir de éstos, cada número de la secuencia se calcula realizando la suma de los dos anteriores.
Entrada: La función recibe un natural n Salida: El n-èsimo elemento de la serie de bonacci Ejemplos:
nfibo(3) 2 nfibo(9) 34
Diseña una función parejas(n) reciba un natural n e imprima todas las combinaciones de dos números 1 < a < n y 1 < b < n que su división entera coincida con su residuo y sea mayor que 1.
Entrada: Un número natural n Salida: Tosas las combinaciones de (a,b) que cumplen con la condición. Ejemplos:
parejas(10)
8 3
parejas(20) 8 3 10 4 12 5 14 6 15 4 16 7 18 5 18 8
2.3.2. Ejercicios con While
Diseña una función entra_valor(a,b) que reciba dos valores, a y b y retorne un número, que pedirá al usuario, que tiene que estar entre a y b. Entrada: La función recibe dos valores a y b. Se asume que a <= b Salida: La función muestra un mensaje 'Dame un valor:' , el usuario entra un valor y lo retorna si está dentro del intervalo [a, b]. En caso contrario, vuelve a pedir el valor. Ejemplos:
entra_valor(1,10) Dame un valor: Dame un valor: 10 entra_valor(1,10) Dame un valor: 6
Diseña una función divi(num,den) que reciba dos números naturales num y den naturales y retorne el cociente y resto de la división de ambos números utilizando solamente restas o sumas. El programa devolverá cociente cero y reso cero en caso de que el denominador sea cero
Entrada: La función recibe dos números naturales num, den Salida: el valor del cociente y del residuo. En caso de ser el denominador cero, se devuelve cero Ejemplos: