miércoles, 10 de noviembre de 2010

Segunda Ley de Newton en Perl

Materia: Laboratorio de Lenguajes de Programación.  Semana # 15
Tarea semanal.

Hola. En esta entrada haré un programa en Perl que trata sobre la Segunda Ley de Newton. El usuario va a elegir entre un menú, ¿qué elemento de la fórmula: F=ma le falta? y ahí le pedirá los datos restantes para poder obtener lo que el usuario quiere.

Paso 1: Abrimos el terminal, escribimos which perl para saber la localización de Perl y escribirla al inicio de nuestra codificación.




Paso 2: Escribimos emacs formula1.pl "emacs" es el editor de texto que usaremos para escribir nuestro código, "formula1" es el nombre que le pondré al archivo que voy a crear, y ".pl" es la extensión que le pertenece a los archivos de Perl.





Paso 3: Ahora comenzaremos a escribir nuestro código en emacs. Iniciamos por escribir la ubicación que obtuvimos al principio: #!/usr/bin/perl agregando #! al comienzo.




Paso 4: En el siguiente renglón escribimos: use Switch; esto nos permite utilizar la función switch para nuestro programa.

*Nota: Todas las líneas de código deben terminar con ;




Paso 5: Ahora declaramos las variables, se escribe: my seguido de un espacio y el símbolo  $ y el nombre de la variable sin pasar un espacio. "menu" es la variable que introduce el usuario al elegir qué parte del menú quiere, "f" es fuerza, "m" es masa, y "a" es aceleración.

my $menu;
my $f;
my $m;
my $a;





Paso 6: Esta parte tendrá un encabezado y desplegará el menú de opciones que tiene. El \t significa pasar una tabulación, \n significa un salto de línea. El chomp($menu=); nos permite asignar el valor que se introduzca a la variable "menu"

print "\tSegunda Ley de Newton\nElige una de estas opciones de acuerdo al elelemento faltante:\n1- Fuerza\n2- Aceleracion\n3- Masa\n:";
chomp($menu=);





Paso 7: Aquí empezaremos nuestro switch: Asignamos la variable "menu" al switch (por eso lo ponemos entre paréntesis y al lado de switch) Se abre una llaver que englobará todo el switch con todos los case dentro. Vemos que nos pide los datos restantes de la fórmula y los multiplica: F=ma. Al final cerramos la llave que le pertenece al case 1.


switch($menu){
    case 1 {
    print "\nElemento faltante: Fuerza\nIntruduzca la masa: ";
    $m=;
    print "\nIntroduzca la aceleración: ";
    $a=;
    $f=($m*$a);
    print "\nLa fuerza es: ", $f;
    }





Paso 8: Lo siguiente es elaborar el case 2 que corresponde al dato faltante "Aceleracion" Como el elemento que nos falta es la aceleración, el programa ya tiene despejada la fórmula: a=F/m En este case, nos puden los datos como Fuerza y masa para obtener la aceleración.

case 2 {
    print "\nEl elemento faltante: Aceleracion\nIntroduzca la fuerza: ";
    $f=;
    print "\nIntroduzca la masa: ";
    $m=;
    $a=($f)/($m);
    print "\nLa aceleracion es: ", $a;
}


*Nota: En este lenguaje de programación no se necesita especificar si el dato que se introduce es flotante, entero, etc. 




Paso 9: Seguimos con el último case. Vemos que como el dato faltante es la masa, nos piden la fuerza y la aceleración para poder obtenerla: m=F/a


case 3 {
    print "\nEl elemento faltante: Masa\nIntroduzca la fuerza: ";
    $f=;
    print "\nIntroduzca la aceleracion: ";
    $a=;
    $m=($f)/($a);
    print "\nLa masa es: ", $m;
    }





Paso 10: Por último, escribimos la opción que, si el usuario escribe un número distinto a 1, 2 y 3, se despliegue que no exista dicha opción en el menú. Se escribe entre llaves, y la última llave cierra todo el switch.


    else {
    print "\nNo existe la opcion\n";
    }
}





Paso 11: Nos regresamos al Terminal y escribimos: chmod u+x formula1.pl que nos sirve para dar autorización de ejecución, y después escribimos: ./formula1.pl para que se ejecute en la Terminal.




Paso 12: Oprimimos Enter y se ejecutará automáticamente, probaré las tres opciones del menú con los mismo datos para comprobar que funcione bien. Fuerza= 70 N, masa= 1.4 kg y aceleración= 50 m/s



Esto es todo por esta entrada, espero que les haya servido de algo, y si tienen algo que decir, no duden en comentar.

Hasta luego.

*Nota: En la última imagen no se alcanza a apreciar el resultado de la masa, pero es 1.4.

Fuentes: http://perlenespanol.com/tutoriales/

5 comentarios:

  1. Hola daniela, te dejo el link que utilizo para que se vea los numeros y la sintaxis

    http://alexgorbatchev.com/SyntaxHighlighter/

    ResponderEliminar
  2. Que tal Daniela:

    Yo opino que, ya que manejas datos de física, como siempre nos recomienda Ana Maria, imprimas más decimales en tus resultados, de modo que tengamos un resultados más exacto. Digamos unos 5 decimales; si manejas 3 es porque lo hacemos a mano, pero en programa podemos utilizar mas de 3.

    Si hablamos de sacar fuerza con aceleración gravitatoria, usa 9.81

    Para imprimir más decimales un ejemplo sería:

    printf("%.2f", 3.66666); # imprime '3.66'

    NOTA. El printf también se considera función de PERL, pero para imprimir con formato (como en C)

    ResponderEliminar
  3. Hola, compañeros.

    Roberto: Muchas gracias por poner el enlace aquí en los comentarios para que todos los que estemos interesados en él, lo podamos utilizar. Lo checaré detenidamente para implementarlo en el blog, qué amable eres.

    Crispín: Orale, no sabía que se podía especificar la cantidad de decimales también en Perl, o al menos no sabía cómo hacerlo jeje. Te agradezco mucho el dato que nos compartes. Muchas gracias, lo tomaré en cuenta :)

    Hasta luego, compañeros.

    ResponderEliminar
  4. Seis puntos para Daniela, uno de participación para Roberto.

    ResponderEliminar
  5. Alguien que me ayude pero hacerlo en Java?

    ResponderEliminar