Calculadora de Ohm en Javascript

La ley de Ohm fue postulada por el físico y matemático Georg Simon Ohm, es una ley básica de los circuitos eléctricos. Nos dice que la diferencia de potencial V que aplicamos entre los extremos de un conductor es proporcional a la intensidad de la corriente I que circula por él. Introduce la noción de resistencia eléctrica R: el factor de proporcionalidad que aparece en la relación entre diferencia potencial e intensidad.

En este ejemplo vamos a hacer una función de Javascript que puede recibir tres parámetros y, según el que reciba vacío, devolverá un resultado u otro valiéndose de la fórmula general de la ley de Ohm, que resumimos en la fórmula V=R*I.

function calculadoraOhm(V,R,I){
  //si la diferencia potencial va vacía
  //en ese caso calculamos el voltaje.
  if(V==""){
    return parseFloat(R)*parseFloat(I);
  }
  //si la resistencia va vacía
  //en ese caso calculamos el voltaje.
  if(R==""){
    return parseFloat(V)/parseFloat(I);
  }
  //si la intensidad va vacía
  //es la que calculamos.
  if(I==""){
    return parseFloat(V)/parseFloat(R);
  }
  //si no va nada vacío devuelve una cadena vacía.
  return "";
}
Anuncios

Cómo hacer un Hello World! en distintos lenguajes de programación.

El Hello World es un ejercicio básico de programación. Casi en cualquier lenguaje de programación que estudies empezarás en la primera lección programando uno. Aquí te dejo diversos ejemplos en distintos lenguajes
, lo que además te permitirá ver algunas de las pequeñas diferencias que hay entre ellos.

ASP:

Response.Write "Hello World!" 

Script de Bash:

#!/bin/bash
echo "Hello, World!" 

C:

#include 
main(){
  printf ("Hello World!\n");
}

C++:

#include 
using namespace std;
void main(){
  cout << "Hello World!" << endl;
}

C#:

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");            
        }
    }
}

Java:

class hellWorldJava{
  public static void main(String args[]){
    System.out.println("Hello World!");
  }
}

Javascript:

window.alert( 'Hello, world!' );

Objective C:

#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

Perl:

#!/usr/bin/perl
print “Hello World.\n”;

PHP:

echo "Hello World!";

Script de Powershell:

$strString = "Hello World"
write-host $strString

Python:

print "Hello, World!"

R:

print("Hello World!", quote = FALSE)

Ruby:

puts 'Hello world'

Expresiones regulares en Javascript para validar fecha u hora.

Vamos con una entrada rápida en Javascript. Ya hace años que revisamos el tema de las expresiones regulares, pero hoy vamos a ver un ejemplo concreto ¿Cómo hago una expresión regular que me valide un formato de fecha dd/mm/aaaa?

Pues sería esta:
/^\d{1,2}\/\d{1,2}\/\d{2,4}$/

Ok ¿Y como valido un formato de hora tipo hh:mm:ss? Pues con esta:
/^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/

Comandos de red obsoletos en Linux y sus reemplazos

Aunque todavía son muy usados y muchas versiones de Linux, la mayoría, todavía les dan soporte, la realidad es que los comandos ifconfig, netstat, arp, iwconfig, iptunnel, nameif, y route están ya considerados obsoletos. El paquete net-tools, que contenía la mayoría de ellos, lleva tiempo sin mantenimiento y ha sido reemplazado por iproute2.

Veamos una lista con estos reemplazos:

  • arp: ha sido reemplazado por ip n
  • ifconfig: hoy por hoy puede ser sustituído por ip a , por ip link o por ip -s
  • iptunnel: ha sido reemplazado por ip tunnel
  • iwconfig: ha sido reemplazado por iw
  • nameif: hoy por hoy puede ser sustituído por ip link o por ifrename
  • netstat: hoy por hoy puede ser sustituído por ss, y dependiendo de qué datos quisiéramos filtrar también por ip route,ip -s link o ip maddr
  • route: ha sido reemplazado por ip r

Ordenación de burbuja en Javascript

El método del intercambio directo, también llamado ordenación de burbuja (bubble sort en inglés), es un algoritmo de ordenamiento extremadamente sencillo que suele ser un ejercicio clásico en los cursos de programación para entender el uso de los bucles anidados en otros bucles. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Esto hace necesario revisar varias veces toda la lista, hasta que no se necesiten más intercambios. Por ello se trata de un algoritmo lento y poco eficiente.

La implementación de dicho algoritmo en una función de Javascript que recibe un array desordenado sería la siguiente:

//la función recibe un array desordenado
function burbuja(arr) {
 //Primer bucle, recore todo el array
 for (var i = 0; i < arr.length; i++) {
   //segundo bucle, va ordenando los elementos.
   for(var j=0; j  arr[j + 1]) {
      var el1 = arr[j];      
      arr[j] = arr[j + 1];
      arr[j + 1] = el1;
     }
   }
  }
  //al acabar la ordenación devulve el array, 
  //ahora ordenado
  return arr;
}

Javascript: convertir una cadena CSV en un array.

Vamos con un tip rápido de Javascript ¿cómo convertimos en un array una cadena de valores separados por comas? (en una entrada antigua hicimos el proceso contrario) Es bastante sencillo lograrlo:

var sabbath = 'ozzy,iommi,bill,geezer';
var sabbath_array = sabbath.split(",")

Basta con usar la función split() pasándole la coma como parámetro para que cree un array con tantas posiciones como valores separados por coma haya en la cadena.

¿Cómo listar todos los puertos a la escucha en Linux?

Vamos con un tip linuxero rápido ¿cómo puedo listar todos los puertos a la escucha en un sistema Linux?:

Basta con el siguiente comando:

$ ss -lntu

Las variables con las que lo invocamos son las siguientes:

  • l – le decimos que solo nos muestre los puertos a la escucha.
  • n – pedimos que se nos muestre el puerto.
  • t – activa el listado de puertos TCP.
  • u – activa el listado de puertos UDP.