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


Colección Problemas Informática, Ejercicios de Informática

Colección de problemas de informática, primer curso, cuadrimestre 1

Tipo: Ejercicios

2019/2020

Subido el 16/04/2020

alba11111111
alba11111111 🇪🇸

4.1

(7)

3 documentos

1 / 50

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Colección de problemas
Ferran Juan, Xavier Farreres
EEBE Ciència de Computadors
14 de diciembre de 2016
Índice
1. Conceptos básicos 5
2. Composiciones secuencial, alternativa e iterativa 7
2.1. Secuencial....................................... 7
2.2. Alternativa (if - elif - else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Iterativa........................................ 16
2.3.1. Ejerciciosconfor ............................... 16
2.3.2. Ejercicios con While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Tratamiento y gestión de strings 25
4. Tratamiento de listas 32
4.1. ListasconFor..................................... 32
4.2. Ejercicosconreales.................................. 40
4.3. Listas multidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4. Ejercicios de listas con while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5. Diccionarios 47
Índice de ejercicios
Ejercicio 1.1
Expresiones reales
............................. 5
Ejercicio 1.2
Expresiones numéricas
........................... 5
Ejercicio 1.3
Expresiones gicas
............................. 5
Ejercicio 1.4
Expresiones gicas
............................. 5
Ejercicio 1.5
Comprobar Expresiones e interpretar errores
............... 5
Ejercicio 1.6
Expresiones gicas II
............................ 6
Ejercicio 1.7
Expresiones Lógicas III
........................... 6
Ejercicio 1.8
Expresiones con tipos
............................ 7
Ejercicio 2.1.1
Escribe datos
............................... 7
Ejercicio 2.1.2
Área de una circunferencia
........................ 7
Ejercicio 2.1.3
Área de un triángulo
........................... 8
Ejercicio 2.1.4
Pasar a Mayúsculas
........................... 8
Ejercicio 2.1.5
Coordenadas cartesianas
......................... 8
Ejercicio 2.1.6
El número es par?
............................ 9
Ejercicio 2.1.7
Bisiesto
.................................. 9
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32

Vista previa parcial del texto

¡Descarga Colección Problemas Informática y más Ejercicios en PDF de Informática solo en Docsity!

Colección de problemas

Ferran Juan, Xavier Farreres

 - 14 de diciembre de EEBE Ciència de Computadors 
    1. Conceptos básicos Índice
    1. Composiciones secuencial, alternativa e iterativa
    • 2.1. Secuencial
    • 2.2. Alternativa (if - elif - else)
    • 2.3. Iterativa
      • 2.3.1. Ejercicios con for
      • 2.3.2. Ejercicios con While
    1. Tratamiento y gestión de strings
    1. Tratamiento de listas
    • 4.1. Listas con For
    • 4.2. Ejercicos con reales
    • 4.3. Listas multidimensionales
    • 4.4. Ejercicios de listas con while
    1. Diccionarios
    • Ejercicio 1.1 Expresiones reales Índice de ejercicios
    • Ejercicio 1.2 Expresiones numéricas
    • Ejercicio 1.3 Expresiones lógicas
    • Ejercicio 1.4 Expresiones lógicas
    • Ejercicio 1.5 Comprobar Expresiones e interpretar errores
    • Ejercicio 1.6 Expresiones lógicas II
    • Ejercicio 1.7 Expresiones Lógicas III
    • Ejercicio 1.8 Expresiones con tipos
    • Ejercicio 2.1.1 Escribe datos
    • Ejercicio 2.1.2 Área de una circunferencia
    • Ejercicio 2.1.3 Área de un triángulo
    • Ejercicio 2.1.4 Pasar a Mayúsculas
    • Ejercicio 2.1.5 Coordenadas cartesianas
    • Ejercicio 2.1.6 El número es par?
    • Ejercicio 2.1.7 Bisiesto
  • Ejercicio 2.2.1 Mayor
  • Ejercicio 2.2.2 Ordenar dos números
  • Ejercicio 2.2.3 Cociente
  • Ejercicio 2.2.4 Signo
  • Ejercicio 2.2.5 Ecuación cuadrática
  • Ejercicio 2.2.6 Transformar segundos
  • Ejercicio 2.2.7 Cambio en monedas
  • Ejercicio 2.2.8 Nota
  • Ejercicio 2.2.9 Impuestos
  • Ejercicio 2.2.10 Estatura
  • Ejercicio 2.2.11 Día de la semana
  • Ejercicio 2.2.12 IMC
  • Ejercicio 2.2.13 Ordenar 3 por análisis de casos
  • Ejercicio 2.2.14 Ordenar 4 elementos ordenando de 2 en
  • Ejercicio 2.2.15 Paso de cronómetro
  • Ejercicio 2.2.16 Función intervalo
  • Ejercicio 2.2.17 Comisiones
  • Ejercicio 2.2.18 Consumos
  • Ejercicio 2.2.19 Cuadrantes
  • Ejercicio 2.2.20 Puntos Cardinales
  • Ejercicio 2.2.21 Fecha correcta
  • Ejercicio 2.2.22 Rosa de los vientos
  • Ejercicio 2.3.1.1 Divisores de un número
  • Ejercicio 2.3.1.2 Contar Divisores
  • Ejercicio 2.3.1.3 suma de divisores
  • Ejercicio 2.3.1.4 Cantidad de divisores
  • Ejercicio 2.3.1.5 Número Primo
  • Ejercicio 2.3.1.6 Suma incremental
  • Ejercicio 2.3.1.7 Producto aditivo
  • Ejercicio 2.3.1.8 Potencia con productos
  • Ejercicio 2.3.1.9 Factorial
  • Ejercicio 2.3.1.10 Contar primos
  • Ejercicio 2.3.1.11 La serie de Fibonacci
  • Ejercicio 2.3.1.12 Enésimo de Fibonacci
  • Ejercicio 2.3.1.13 Buscando parejas de números
  • Ejercicio 2.3.2.1 Validar dato
  • Ejercicio 2.3.2.2 Division con restas
  • Ejercicio 2.3.2.3 apilar latas
  • Ejercicio 2.3.2.4 Natural a binario
  • Ejercicio 2.3.2.5 Números perfectos
  • Ejercicio 2.3.2.6 Raíz digital y persistencia aditiva
  • Ejercicio 2.3.2.7 Raíz digital y persistencia multiplicativa
  • Ejercicio 2.3.2.8 Números triangulares I
  • Ejercicio 2.3.2.9 Números triangulares II
  • Ejercicio 2.3.2.10 Cálculo de una serie
  • Ejercicio 2.3.2.11 Raiz cuadrada en serie
  • Ejercicio 2.3.2.12 El número e
  • Ejercicio 2.3.2.13 Calculo del sin(x) por Taylor
  • Ejercicio 2.3.2.14 El Juego de la adivinanza I
  • Ejercicio 2.3.2.15 El juego de la adivinanza II
  • Ejercicio 3.1 Contar mayúsculas y minúsculas
  • Ejercicio 3.2 Contar vocales y consonantes
  • Ejercicio 3.3 Encontrar caracteres comunes
  • Ejercicio 3.4 Separar vocales y consonantes
  • Ejercicio 3.5 Intersección de strings
  • Ejercicio 3.6 Intercalar caracteres
  • Ejercicio 3.7 Fusión de strings
  • Ejercicio 3.8 Suma de cifras
  • Ejercicio 3.9 Orden Relativo
  • Ejercicio 3.10 Encontrar patrón
  • Ejercicio 3.11 ComparaADN
  • Ejercicio 3.12 Agrupar Letras
  • Ejercicio 3.13 Cuadrados I
  • Ejercicio 3.14 Cuadrados II
  • Ejercicio 3.15 Triángulos I
  • Ejercicio 3.16 Triángulos II
  • Ejercicio 3.17 Triángulos III
  • Ejercicio 3.18 Triángulos IV
  • Ejercicio 3.19 Rombos I
  • Ejercicio 3.20 Rombos II
  • Ejercicio 3.21 Pirámide de dígitos
  • Ejercicio 3.22 Pirámide de dígitos II
  • Ejercicio 3.23 Pila de latas
  • Ejercicio 3.24 El juego del ahorcado
  • Ejercicio 3.25 Mastermind
  • Ejercicio 4.1.1 Crear lista aleatoria
  • Ejercicio 4.1.2 Listas con Palabras I
  • Ejercicio 4.1.3 Listas con palabras II
  • Ejercicio 4.1.4 Extraer una fecha
  • Ejercicio 4.1.5 Modulo de lista
  • Ejercicio 4.1.6 Producto Escalar
  • Ejercicio 4.1.7 Listas Iguales
  • Ejercicio 4.1.8 Encontrar numero
  • Ejercicio 4.1.9 Lista de Primos
  • Ejercicio 4.1.10 Pares e impares
  • Ejercicio 4.1.11 Positivos y negativos
  • Ejercicio 4.1.12 Son todos positivos
  • Ejercicio 4.1.13 Mayor, Menor y Media
  • Ejercicio 4.1.14 Ordenar Lista
  • Ejercicio 4.1.15 Números amigos
  • Ejercicio 4.1.16 Positivos o negativos?
  • Ejercicio 4.1.17 Contar repeticiones
  • Ejercicio 4.1.18 Buscar enteros consecutivos
  • Ejercicio 4.1.19 El Menor Local
  • Ejercicio 4.1.20 Encontrar Repetidos
  • Ejercicio 4.1.21 Eliminar Repetidos
  • Ejercicio 4.1.22 Generar serie de valores
  • Ejercicio 4.1.23 Suma de Polinomios
  • Ejercicio 4.1.24 Producto de polinomios
  • Ejercicio 4.1.25 Buscar elemento en lista
  • Ejercicio 4.1.26 Mismo orden relativo
  • Ejercicio 4.1.27 Ordenar Burbuja
  • Ejercicio 4.1.28 Insertar ordenado
  • Ejercicio 4.1.29 Busqueda binaria
  • Ejercicio 4.1.30 Buscar y Reemplazar
  • Ejercicio 4.1.31 Buscar un patrón
  • Ejercicio 4.1.32 Buscar Palabras con patrones
  • Ejercicio 4.1.33 Histograma gráco
  • Ejercicio 4.1.34 Vocales fantasmas
  • Ejercicio 4.2.1 Reales en un intervalo
  • Ejercicio 4.2.2 Reales Absolutos
  • Ejercicio 4.2.3 Serie Creciente
  • Ejercicio 4.2.4 Subserie Creciente
  • Ejercicio 4.2.5 Media Geométrica
  • Ejercicio 4.2.6 Estadistica de notas
  • Ejercicio 4.3.1 determinante de una matriz 3 x
  • Ejercicio 4.3.2 Sumar Matrices
  • Ejercicio 4.3.3 Producto de matrices cuadradas
  • Ejercicio 4.3.4 Producto de matrices NxM
  • Ejercicio 4.3.5 El Triangulo de Pascal
  • Ejercicio 4.3.6 El Cuadrado Latino
  • Ejercicio 4.3.7 Matriz Quasi_nula
  • Ejercicio 4.3.8 Matriz simétrica
  • Ejercicio 4.4.1 Lista aleatoria con elementos no repetidos
  • Ejercicio 4.4.2 Dif de Dif
  • Ejercicio 4.4.3 Fusión ordenada y no repetida de listas
  • Ejercicio 4.4.4 El tablero n-Goro
  • Ejercicio 4.4.5 El Laberinto
  • Ejercicio 4.4.6 El juego de las cartas
  • Ejercicio 4.4.7 Quien Queda?
  • Ejercicio 5.0.1 Frecuencias de palabras
  • Ejercicio 5.0.2 Decodicador de fechas
  • Ejercicio 5.0.3 Frecuencias de caracteres
  • Ejercicio 5.0.4 Tiradas de dados
  • Ejercicio 5.0.5 Distancias entre palabras
  • Ejercicio 5.0.6 Distancias entre letras
  • Ejercicio 5.0.7 Lista de notas
  • Ejercicio 5.0.8 Frecuencia ordenada
  • Ejercicio 5.0.9 Cambia Base
  • Ejercicio 5.0.10 Encriptar palabras
  • Ejercicio 5.0.11 Desencriptar palabras
  • Ejercicio 5.0.12 Numeros a letras
  1. Conceptos básicos

Ejercicio 1.1 Expresiones reales

Ejecute la siguiente expresión y analice y justique el resultado obtenido:

(3, 0 ∗ (0, 1 / 3 ,0)) == ((3, 0 ∗ 0 ,1)/ 3 ,0)

Ejercicio 1.2 Expresiones numéricas

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

Ejercicio 1.3 Expresiones lógicas

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

Ejercicio 1.4 Expresiones lógicas

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

Ejercicio 1.5 Comprobar Expresiones e interpretar errores

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.

Ejercicio 1.8 Expresiones con tipos

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

  1. Composiciones secuencial, alternativa e iterativa

2.1. Secuencial

* Ejercicio 2.1.1 Escribe datos

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.

* Ejercicio 2.1.2 Área de una circunferencia

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)

* Ejercicio 2.1.3 Área de un triángulo

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)

* Ejercicio 2.1.4 Pasar a Mayúsculas

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'

* Ejercicio 2.1.5 Coordenadas cartesianas

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)

* 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)

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) 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)

** 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) 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'

** Ejercicio 2.2.9 Impuestos

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

** Ejercicio 2.2.13 Ordenar 3 por análisis de casos

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)

*** Ejercicio 2.2.14 Ordenar 4 elementos ordenando de 2 en 2

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)

** Ejercicio 2.2.15 Paso de cronómetro

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)

** Ejercicio 2.2.16 Función intervalo

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)

[20,20]

interval(10, 20, 30, 40) []

** Ejercicio 2.2.17 Comisiones

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)

** Ejercicio 2.2.18 Consumos

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)

** Ejercicio 2.2.19 Cuadrantes

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. Iterativa

2.3.1. Ejercicios con for

* Ejercicio 2.3.1.1 Divisores de un número

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

* Ejercicio 2.3.1.2 Contar Divisores

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

* Ejercicio 2.3.1.3 suma de divisores

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

** Ejercicio 2.3.1.4 Cantidad de divisores

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

* Ejercicio 2.3.1.5 Número Primo

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

* Ejercicio 2.3.1.6 Suma incremental

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:

** Ejercicio 2.3.1.10 Contar primos

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

** Ejercicio 2.3.1.11 La serie de Fibonacci

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

** Ejercicio 2.3.1.12 Enésimo de Fibonacci

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

*** Ejercicio 2.3.1.13 Buscando parejas de números

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

* Ejercicio 2.3.2.1 Validar dato

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

** Ejercicio 2.3.2.2 Division con restas

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: