Skip to content

Latest commit

 

History

History
326 lines (191 loc) · 10.3 KB

Quiz1.rst

File metadata and controls

326 lines (191 loc) · 10.3 KB

Quiz - 1

.. tabbed:: quiz1

    .. tab:: Ejercicio 1

        .. activecode:: q1_1
            :nocodelens:

            Haga un programa que dado dos números enteros, devuelva la suma de esos dos números. |br|
            * Reemplazar los `...` por la fórmula correspondiente.
            * Los números son dados en las variables n y m (parámetros)

            ~~~~
            def suma(n, m):
                resultado = ...
                return resultado

            # Ejemplo para comprobación:
            print("El resultado es:", suma(2, 3))

            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(suma(24, 42), 66, "Esperado: 66")
                    self.assertEqual(suma(17, 13), 30, "Esperado: 30")
                    self.assertEqual(suma(-11, 6), -5, "Esperado: -5")
                    self.assertEqual(suma(0, 9), 9, "Esperado: 9")


            myTests().main()


    .. tab:: Ejercicio 2

        .. activecode:: q1_2
            :nocodelens:

            Escriba un programa que lea un valor en metros y lo muestre convertido a milimetros. |br|

            ~~~~
            def metros_a_milimetros(n):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(metros_a_milimetros(1), 1000,"Esperado: 1000")
                    self.assertEqual(metros_a_milimetros(0.2), 200,"Esperado: 200")
                    self.assertEqual(metros_a_milimetros(30), 30000,"Esperado: 30000")


            myTests().main()


    .. tab:: Ejercicio 3

        .. activecode:: q1_3
            :nocodelens:

            Escriba un programa que lea el número de días, horas, minutos y segundos del
            usuario. Calcular el total en segundos. |br|

            ~~~~
            def tiempo_en_segundos(dias, horas, minutos, segundos):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(tiempo_en_segundos(2, 5, 2, 5), 190925, "Esperado: 190925")
                    self.assertEqual(tiempo_en_segundos(10, 89, 5, 0), 1184700, "Esperado: 1184700")
                    self.assertEqual(tiempo_en_segundos(8, 0, 2, 0), 691320, "Esperado: 691320")
                    self.assertEqual(tiempo_en_segundos(0, 5, 55, 6), 21306, "Esperado: 21306")


            myTests().main()


    .. tab:: Ejercicio 4

        .. activecode:: q1_4
            :nocodelens:

            Haz un programa que calcule un aumento de salario. Debe solicitar el
            monto del salario y el porcentaje del aumento. Muestra el monto del
            aumento y el nuevo salario. |br|

            ~~~~
            def aumento(salario, porcentaje):
                    #devolver los valores en una tupla como: return (aumento, nuevo_salario)


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(aumento(30500, 10), (3050, 33550), "Esperado: 3050 y 33550")
                    self.assertEqual(aumento(10400, 25), (2600, 13000), "Esperado: 2600 y 13000")
                    self.assertEqual(aumento(50100, 8), (4008, 54108), "Esperado: 4008 y 54108")
                    self.assertEqual(aumento(25000, 3), (750, 25750), "Esperado: 750 y 25750")


            myTests().main()


    .. tab:: Ejercicio 5

        .. activecode:: q1_5
            :nocodelens:

            Solicite el precio de un comerciante y el porcentaje de descuento.
            Muestre el monto del descuento y el precio a pagar. |br|

            ~~~~
            def precio_con_descuento(precio, porcentaje):
                    #devolver los valores en una tupla como: return (descuento, precio_final)


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(precio_con_descuento(100100, 10), (10010, 90090), "Esperado: (10010,90090)")
                    self.assertEqual(precio_con_descuento(20523, 4), (820.92, 19702.08), "Esperado: (820.92,19702.08)")
                    self.assertEqual(precio_con_descuento(55566, 50), (27783, 27783), "Esperado: (27783,27783)")
                    self.assertEqual(precio_con_descuento(75660, 24), (18158.4, 57501.6), "Esperado: (18158.4,57501.6)")


            myTests().main()


    .. tab:: Ejercicio 6

        .. activecode:: q1_6
            :nocodelens:

            Calcule el tiempo de un viaje en auto. Pregunte por la distancia a recorrer
            y la velocidad media esperada para el viaje. |br|

            ~~~~
            def tiempo(distancia, velocidad):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(tiempo(5, 5), 1, "Esperado: 1")
                    self.assertEqual(round(tiempo(100, 3), 2), 33.33, "Esperado: 33.33")
                    self.assertEqual(tiempo(10500, 30), 350, "Esperado: 350")
                    self.assertEqual(tiempo(8600, 50), 172, "Esperado: 172")
                    self.assertEqual(tiempo(130, 200), 0.65, "Esperado: 0.65")


            myTests().main()


    .. tab:: Ejercicio 7

        .. activecode:: q1_7
            :nocodelens:

            Convierta una temperatura escrita en Celsius a Fahrenheit. F = (9 * C) / 5 + 32 |br|

            ~~~~
            def celsius_a_fahrenheit(c):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(celsius_a_fahrenheit(20), ((9 * 20) / 5) + 32, "Esperado: 68")
                    self.assertEqual(celsius_a_fahrenheit(68), ((9 * 68) / 5) + 32, "Esperado: 154.4")
                    self.assertEqual(celsius_a_fahrenheit(0), ((9 * 0) / 5) + 32, "Esperado: 32")
                    self.assertEqual(celsius_a_fahrenheit(-10), ((9 * -10) / 5) + 32, "Esperado: 14")
                    self.assertEqual(celsius_a_fahrenheit(-24), ((9 * -24) / 5) + 32, "Esperado: -11.2")


            myTests().main()


    .. tab:: Ejercicio 8

        .. activecode:: q1_8
            :nocodelens:

            Ahora haga lo contrario, de Fahrenheit a Celsius. |br|

            ~~~~
            def fahrenheit_a_celsius(f):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(round(fahrenheit_a_celsius(21), 2), round(((21 - 32) * 5) / 9, 2), "Esperado: %.2f" % (((21 - 32) * 5) / 9))
                    self.assertEqual(round(fahrenheit_a_celsius(108), 2), round(((108 - 32) * 5) / 9, 2), "Esperado: %.2f" % (((108 - 32) * 5) / 9))
                    self.assertEqual(round(fahrenheit_a_celsius(0), 2), round(((0 - 32) * 5) / 9, 2), "Esperado: %.2f" % (((0 - 32) * 5) / 9))
                    self.assertEqual(round(fahrenheit_a_celsius(-10), 2), round(((-10 - 32) * 5) / 9, 2), "Esperado: %.2f" % (((-10 - 32) * 5) / 9))
                    self.assertEqual(round(fahrenheit_a_celsius(14), 2), round(((14 - 32) * 5) / 9, 2), "Esperado: %.2f" % (((14 - 32) * 5) / 9))


            myTests().main()


    .. tab:: Ejercicio 9

        .. activecode:: q1_9
            :nocodelens:

            Escriba un programa que pregunte por la cantidad de kilómetros recorridos
            por un automóvil alquilado, así como el número de días que ha estado alquilado
            el coche. Calcule el precio a pagar, sabiendo que el coche cuesta R $ 60,00
            por día y $ 0,15 por km recorrido. |br|

            ~~~~
            def precio(km, dias):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(precio(123, 3), (0.15 * 123) + (60 * 3), "Esperado: " + str((0.15 * 123) + (60 * 3)))
                    self.assertEqual(precio(800, 4), (0.15 * 800) + (60 * 4), "Esperado: " + str((0.15 * 800) + (60 * 4)))
                    self.assertEqual(precio(60, 1), (0.15 * 60) + (60 * 1), "Esperado: " + str((0.15 * 60) + (60 * 1)))
                    self.assertEqual(precio(90, 2), (0.15 * 90) + (60 * 2), "Esperado: " + str((0.15 * 90) + (60 * 2)))
                    self.assertEqual(precio(1016, 7), (0.15 * 1016) + (60 * 7), "Esperado: " + str((0.15 * 1016) + (60 * 7)))


            myTests().main()


    .. tab:: Ejercicio 10

        .. activecode:: q1_10
            :nocodelens:

            Escribe un programa para calcular la reducción en la vida útil de un fumador.
            Preguntar cantidad de cigarrillos fumados por día y cuántos años ha fumado.
            Considere que un fumador pierde 10 minutos de vida por cada cigarrillo, calcula
            cuántos días de vida perderá un fumador. Mostrar los días totales. |br|

            ~~~~
            def fumador(cigarrillos, anios):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    for c, a, e in ((10, 1, 25.35), (3, 5, 38.02), (1, 8, 20.28), (2, 3, 15.21)):
                        self.assertEqual(
                            round(fumador(c, a), 2), e, "Esperado: %.2f para %d cig. en %d años" % (e, c, a)
                        )


            myTests().main()


    .. tab:: Ejercicio 11

        .. activecode:: q1_11
            :nocodelens:

            Sabiendo que  ``str()`` convierte valores numéricos en cadenas,
            calcule cuántos dígitos hay en 2 elevado a la potencia de mil. |br|

            ~~~~
            def digitos():


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(digitos(), 302, "Esperado: 302 digitos")


            myTests().main()