miércoles, 1 de mayo de 2024

Calcular el valor de la hipotenusa teniendo un punto x,y en el plano cartesiano en Python

 

  • Este código asume que el usuario ingresa valores numéricos válidos para las longitudes de los catetos.
  • Se puede modificar el código para manejar errores de entrada, como cuando el usuario ingresa un valor no numérico.
  • También se puede agregar código para validar que las longitudes de los catetos sean positivas.
  •  

    import math
    
    def calcular_hipotenusa(x, y):
      """
      Calcula la longitud de la hipotenusa de un triángulo rectángulo utilizando el teorema de Pitágoras.
    
      Parámetros:
        x: La longitud del cateto x.
        y: La longitud del cateto y.
    
      Retorno:
        La longitud de la hipotenusa.
      """
      hipotenusa = math.sqrt(x**2 + y**2)
      return hipotenusa
    
    # Ejemplo de uso
    x = float(input("Ingrese la longitud del cateto x: "))
    y = float(input("Ingrese la longitud del cateto y: "))
    
    hipotenusa = calcular_hipotenusa(x, y)
    
    print("La longitud de la hipotenusa es:", hipotenusa)
    
    

    Explicación:

    1. Importamos la biblioteca math: Esta biblioteca contiene funciones matemáticas, incluyendo la función sqrt() para calcular la raíz cuadrada.
    2. Definimos la función calcular_hipotenusa:
      • Esta función toma dos parámetros: x y y, que representan las longitudes de los catetos del triángulo rectángulo.
      • La función calcula la longitud de la hipotenusa utilizando la fórmula del teorema de Pitágoras: hipotenusa = sqrt(x^2 + y^2).
      • La función retorna el valor de la hipotenusa.
    3. Ejemplo de uso:
      • Solicitamos al usuario que ingrese las longitudes de los catetos x e y.
      • Convertimos las entradas del usuario a números flotantes utilizando la función float().
      • Llamamos a la función calcular_hipotenusa para obtener la longitud de la hipotenusa.
      • Imprimimos el resultado utilizando la instrucción print().

    lunes, 29 de abril de 2024

    Calcular Angulo de referencia y el valor (+/-) de Seno, Coseno y Tangente en Python

     Esta función primero define una función llamada calcular_angulo_referencia que toma un ángulo como parámetro. La función primero convierte el ángulo a radianes si es necesario. Luego, calcula el ángulo de referencia tomando el módulo absoluto del ángulo y dividiéndolo por 2π.

    import math
    
    def calcular_angulo_referencia(angulo, tipo_dato):
      """
      Esta función calcula el ángulo de referencia, el cuadrante y las positividades de seno, coseno y tangente para un ángulo dado en radianes o grados.
    
      Parámetros:
        angulo: El ángulo en radianes o grados.
        tipo_dato: Un string que indica si el ángulo es en "radianes" o "grados".
    
      Retorno:
        Una tupla que contiene el ángulo de referencia en grados, el cuadrante y las positividades de seno, coseno y tangente.
      """
    
      # Convertir el ángulo a radianes si es necesario
      if tipo_dato.lower() == "grados":
        angulo = math.radians(angulo)
    
      # Calcular el ángulo de referencia
      angulo_ref = abs(angulo) % (2 * math.pi)
    
      # Determinar el cuadrante
      if angulo_ref <= math.pi / 2:
        cuadrante = 1
      elif angulo_ref <= math.pi:
        cuadrante = 2
      elif angulo_ref <= 3 * math.pi / 2:
        cuadrante = 3
      else:
        cuadrante = 4
    
    
      # Calcular las positividades de las funciones trigonométricas
      seno_positivo = True if cuadrante in [1, 2] else False
      coseno_positivo = True if cuadrante in [1, 4] else False
      tangente_positivo = True if cuadrante in [1, 3] else False
    
      # Convertir el ángulo de referencia a grados si es necesario
      angulo_ref_grados = math.degrees(angulo_ref)
    
      if (float(angulo_ref_grados) > 180.0):
        angulo_ref_grados = (360 - angulo_ref_grados) * -1
    
      return angulo_ref_grados, cuadrante, seno_positivo, coseno_positivo, tangente_positivo
    
    # Ejemplo de uso
    angulo = float(input("Ingrese el ángulo: "))
    tipo_dato = input("Ingrese el tipo de dato (radianes o grados): ").lower()
    
    resultado = calcular_angulo_referencia(angulo, tipo_dato)
    
    print(f"Ángulo de referencia: {resultado[0]:.2f}°")
    print(f"Cuadrante: {resultado[1]}")
    print(f"Seno positivo: {resultado[2]}")
    print(f"Coseno positivo: {resultado[3]}")
    print(f"Tangente positiva: {resultado[4]}")
    

    A continuación, la función determina el cuadrante en el que se encuentra el ángulo de referencia dividiendo el rango de 0 a 2π en cuatro cuadrantes iguales, y también el tipo de dato (radianes o grados). Finalmente, la función calcula las positividades de las funciones trigonométricas seno, coseno y tangente para el ángulo de referencia en el cuadrante determinado.

    La función devuelve una tupla que contiene el ángulo de referencia en grados, el cuadrante, y las positividades de seno, coseno y tangente.

    La parte final del código proporciona un ejemplo de cómo usar la función calcular_angulo_referencia. Solicita al usuario que ingrese un ángulo en radianes o grados, y luego imprime los resultados devueltos por la función.

    Calculadora científica para calcular el seno, coseno, tangente, exponencial y logaritmo neperiano

    La siguiente es una unción que simula una calculadora científica que permita calcular el seno, coseno, tangente, exponencial y logaritmo neperiano. La función preguntará al usuario el valor y la función a aplicar, y mostrará por pantalla una tabla con los enteros de 1 al valor introducido y el resultado de aplicar la función a esos enteros.

    import math
    
    def calculadora_cientifica():
      """
      Función que simula una calculadora científica básica.
    
      Permite calcular el seno, coseno, tangente, exponencial y logaritmo neperiano de un rango de valores enteros.
      """
    
      # Solicitar valor y función al usuario
      valor = int(input("Ingrese el valor máximo (entero): "))
      funcion = input("Ingrese la función a calcular (seno, coseno, tangente, exponencial, logaritmo): ").lower()
    
      # Validar la función ingresada
      if funcion not in ("seno", "coseno", "tangente", "exponencial", "logaritmo"):
        print("Función no válida. Intente de nuevo.")
        return
    
      # Crear tabla de resultados
      print("\n| Valor | Resultado |\n|---|---|")
    
      # Calcular y mostrar resultados
      for i in range(1, valor + 1):
        if funcion == "seno":
          resultado = math.sin(i)
        elif funcion == "coseno":
          resultado = math.cos(i)
        elif funcion == "tangente":
          resultado = math.tan(i)
        elif funcion == "exponencial":
          resultado = math.exp(i)
        elif funcion == "logaritmo":
          resultado = math.log(i)
    
        print(f"| {i} | {resultado:.4f} |")
    
    if __name__ == "__main__":
      calculadora_cientifica()
    
    

    Explicación del código:

    1. Importación de la biblioteca math: Se importa la biblioteca math para acceder a funciones matemáticas como sin, cos, tan, exp y log.
    2. Función calculadora_cientifica:
      • Solicitar valor y función al usuario: Se utilizan las funciones input para obtener el valor máximo (entero) y la función a calcular del usuario.
      • Validar la función ingresada: Se verifica si la función ingresada es válida ("seno", "coseno", "tangente", "exponencial", "logaritmo"). Si no es válida, se muestra un mensaje de error y se termina la función.
      • Crear tabla de resultados: Se imprime un encabezado de tabla con las columnas "Valor" y "Resultado".
      • Calcular y mostrar resultados: Se utiliza un bucle for para iterar desde 1 hasta el valor máximo ingresado. Dentro del bucle, se calcula el resultado de la función correspondiente al valor actual (i) utilizando las funciones matemáticas de la biblioteca math. El resultado se formatea con 4 decimales y se imprime en la tabla junto con el valor actual.
    3. Bloque if __name__ == "__main__"::
      • Este bloque garantiza que el código dentro de la función calculadora_cientifica solo se ejecute cuando se ejecute el script como programa principal, y no cuando se importe como módulo.

    Ejecución del código:

    1. Guarde el código como un archivo Python (por ejemplo, calculadora_cientifica.py).
    2. Abra una terminal o ventana de comandos y navegue hasta la ubicación donde guardó el archivo.
    3. Ejecute el código usando el siguiente comando:
    python calculadora_cientifica.py
    
    1. Se le pedirá que ingrese el valor máximo y la función a calcular. El código calculará y mostrará una tabla con los resultados para los valores enteros desde 1 hasta el valor máximo especificado.

    martes, 26 de enero de 2021

    5 Errores comunes programando en PHP y cómo prevenirlos

     Ahora que los desarrolladores pueden rastrear los problemas exactos que causan cuellos de botella en el rendimiento en aplicaciones PHP, veamos cinco errores comunes que cometen los desarrolladores al crear aplicaciones PHP y cómo pueden resolverlos.

    Error 1: Hacer demasiadas consultas a la base de datos

    PHP se encuentra con el mismo tipo de restricciones que los desarrolladores tendrían con otros lenguajes, como demasiadas consultas de bases de datos. Los desarrolladores no son expertos en bases de datos. La mayoría no conocen todos los matices de la base de datos que utilizan. A menudo, no están usando su capa de acceso a la base de datos de manera óptima, por lo que terminan haciendo demasiadas consultas a la base de datos o generando consultas a la base de datos que no usan índices.

    Las bases de datos también funcionan de manera diferente bajo diferentes tipos de carga. Una base de datos que se ejecuta en una computadora portátil con decenas de megabytes de memoria se comporta de manera diferente a una base de datos de producción con un gigabyte, ya que se utilizan diferentes estrategias para seleccionar qué datos mirar. Las consultas que funcionaron en la máquina local de un desarrollador o en el entorno de ensayo pueden funcionar de manera diferente en producción.

    Las mitigaciones para un rendimiento deficiente de las consultas de la base de datos son agregar consultas en caché y ajustar. El almacenamiento en caché ayuda a reducir la cantidad de consultas enviadas a la base de datos cuando el resultado ya se conoce o se accede con frecuencia. Por ejemplo, el artículo "más reciente" de un sitio de noticias cambia con menos frecuencia de la que se lee. Al almacenar en caché los resultados, los desarrolladores pueden mejorar el rendimiento leyendo los resultados del caché en lugar de la base de datos. Ajustar las consultas de la base de datos generalmente implica agregar índices adicionales en los datos que se usan con frecuencia en condiciones o combinaciones. También puede implicar el almacenamiento de datos de formas que requieran menos combinaciones para acceder.

    Error 2: Cargar demasiados archivos


    Con otros lenguajes de programación, las aplicaciones se inician y luego mantienen el código y los datos asociados en la memoria. Con PHP, sin embargo, no existe un estado de aplicación persistente: los archivos se recargan con cada solicitud. Cuando los desarrolladores no tienen en cuenta esto, pueden encontrarse con el problema de cargar demasiados archivos, lo que consume los recursos del sistema y ralentiza el rendimiento.

    Los desarrolladores pueden resolver este problema activando el almacenamiento en caché del código de operación (código de operación). Como muchos lenguajes, PHP procesa el código fuente en códigos de operación, que luego se ejecutan en el tiempo de ejecución de PHP. La conversión de código PHP a códigos de operación ocurre en cada solicitud, ya que PHP no tiene un estado compartido. Si bien analizar el código fuente y generar códigos de operación es relativamente barato, los costos se acumulan a medida que una aplicación maneja más tráfico. Al habilitar el almacenamiento en caché del código de operación, el paso de análisis del código fuente se puede omitir, lo que produce ganancias de rendimiento medibles.

    Error 3: Configuración incorrecta del servidor web

    A diferencia de otros lenguajes de programación en los que el servidor web es parte del lenguaje, PHP se ejecuta dentro de un servidor web. Apache HTTP Server y Nginx son los dos más utilizados. El servidor web es otra capa que los desarrolladores de PHP deben supervisar. Desde elegir un modelo de proceso en Apache hasta ajustar PHP-FPM (Fast Process Manager) cuando se usa Nginx, existen algunas opciones de ajuste para usar.

    Por ejemplo, los desarrolladores deberán configurar la cantidad de procesos de trabajo que se crearán y la frecuencia con la que se reciclarán. Si no tienen suficientes trabajadores (procesos en ejecución) disponibles, sus usuarios tendrán que hacer cola y esperar a que un trabajador esté libre. Si tienen demasiados trabajadores, podrían quedarse sin memoria durante un momento de mucha actividad. Los desarrolladores pueden utilizar la cantidad de memoria que normalmente utiliza una aplicación y los recursos disponibles en sus servidores como guía para elegir la cantidad de trabajadores.

    Error 4: Malas prácticas de seguridad

    PHP permite a los desarrolladores combinar una variedad de paradigmas de programación y cambiar entre código HTML y PHP con fluidez. Sin rigor, esto puede resultar rápidamente en un código desordenado que es difícil de mantener. Esta flexibilidad es una de las razones por las que PHP es un lenguaje excelente para principiantes, pero puede convertirse fácilmente en una debilidad que puede exponer las aplicaciones a problemas de seguridad como cross-site scripting (XSS) e inyección SQL (SQLi).

    Los desarrolladores pueden mitigar estos riesgos mediante el uso de bibliotecas, herramientas y frameworks maduros. El uso de una biblioteca de plantillas como Twig ayuda a evitar el scripting entre sitios al codificar automáticamente en HTML todas las variables que se muestran en las plantillas. El uso de un mapeador relacional de objetos (ORM) o una biblioteca de abstracción de bases de datos puede evitar la inyección de SQL mediante el uso de declaraciones preparadas.

    Error 5: No usar tipos estrictos y sugerencias de tipo

    PHP tiene un sistema de tipos indulgente. Históricamente, PHP ha favorecido los tipos de coerción sobre la creación de errores. Esto puede llevar a trampas como dividir números por palabras y obtener resultados "útiles", pero también crear errores en tiempo de ejecución. Para ayudar a prevenir este tipo de errores, los desarrolladores deben habilitar "strict_types" y usar herramientas como Psalm y PHPStan como parte de su proceso de desarrollo. Estas herramientas analizan el código de forma estática y, al observar qué tipos de datos se utilizan en su aplicación, pueden señalar problemas potenciales antes de que se conviertan en problemas reales que afecten a los usuarios.

    domingo, 27 de diciembre de 2020

    for loop PHP continue to next item

     

    <?php
    $stack = array('first', 'second', 'third', 'fourth', 'fifth');
    
    foreach($stack as $v){
        if($v == 'second') {
          continue;
        }
        echo $v.'<br>';
    }
    /*
    first
    third
    fourth
    fifth
     */
    ?> 

    sábado, 26 de diciembre de 2020

    Send json post ajax Javascript (and JQuery)

     

    $.ajax({
        url: 'users.php',
        dataType: 'json',
        type: 'post',
        contentType: 'application/json',
        data: JSON.stringify( { "first-name": $('#first-name').val(), "last-name": $('#last-name').val() } ),
        processData: false,
        success: function( data, textStatus, jQxhr ){
            $('#response pre').html( JSON.stringify( data ) );
        },
        error: function( jqXhr, textStatus, errorThrown ){
            console.log( errorThrown );
        }
    });

    Javascript regex only letters and spaces (with JQuery)

     

    <script>
    //regex expression:
    var reg_name_lastname = /^[a-zA-Z\s]*$/;
    
    //Validation to the user_name input field
    if(!reg_name_lastname.test($('#user_name').val())){ //
        alert("Correct your First Name: only letters and spaces.");
        valid = false;
    }
    </script> 

    7 razones para no usar Laravel en tu proyecto de PHP

    En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...