Mostrando entradas con la etiqueta comparativa. Mostrar todas las entradas
Mostrando entradas con la etiqueta comparativa. Mostrar todas las entradas

domingo, 2 de febrero de 2014

Groovy: comparativa con otros lenguajes ... no.2

En este post vamos a realizar un ejercicio muy sencillo de programación básica.

Un convertidor de dólares a pesos.

Iniciamos con Groovy:

static main(args){

//definimos la constante "CAMBIO"
def CAMBIO=13.3481
def dolar=System.console().readLine 'Introduce dolar:'
println "valor (usd): $dolar"
dolar=Double.parseDouble(dolar)
println "cambio (mxn): ${dolar*CAMBIO}"
}

En Python:
global CAMBIO
CAMBIO=13.3481
dolar=0.0
dolar=float(raw_input('Introduce dolares: '))
print "valor (usd): $",dolar
print "cambio (mxn): %f"%(dolar*CAMBIO)

En Ruby:
CAMBIO=13.3481
dolar=0.00
puts "Introduce dolares: "
STDOUT.flush
dolar=gets.chomp
dolar=dolar.to_f
puts "valor introducido (usd):$ #{dolar}"
puts "cambio (mxn): $ #{dolar*CAMBIO}"

En Perl:
use strict;
use warnings;
use constant CAMBIO => 13.3481;

my($dolar,$resultado);

print "Introduce dolares: \n";
$dolar=<STDIN>;
chomp($dolar);
print "valor (usd): $dolar\n";
$resultado=$dolar*CAMBIO;
print "cambio (mxn): $resultado\n";

En Scala:
object Scalar extends App{
val CAMBIO=13.3481
Console.println("Introduce dolares:")
var dolar:Double=readDouble
Console.println("valor (usd): "+dolar)

def resultado={
dolar*CAMBIO
}
Console.println("cambio (mxn):"+resultado)

}
En Bash:
clear
CAMBIO=13.3481
echo "Introduce dolares: "
read DOLAR
echo "valor (usd): $DOLAR"
RESULTADO=`echo "$DOLAR * $CAMBIO" | bc -l`
echo "cambio (mxn): $RESULTADO"


domingo, 21 de julio de 2013

Perl: Comparativa con Powershell

Powershell es la respuesta (bastante tardada) de Microsoft al shell de Unix/Linux debido a las limitantes del batch MS-DOS.

Tanto Perl como Powershell permiten automatizar tareas, por ejemplo, mediante un script podemos ejecutar un proceso del sistema operativo, buscar un archivo en directorios, encender/apagar el sistema, entre otras cosas más.

Para hacer uso de Powershell debemos tener instalado el .Net framework http://www.microsoft.com/es-mx/download/details.aspx?id=17851 

Abrir la terminal de comandos y teclear: powershell  o bien abrirlo directamente--> Ejecutar: powershell
En Powershell los archivos tienen la extensión *.ps1, en Perl *.pl
1. Hola mundo
hola.ps1
# esto es un comentario
"Hola, mundo desde powershell !!"
#también se puede hacer esto
Write-Host  "Hola, mundo desde powershell !!"

hola.pl
#esto es un comentario
print "Hola, mundo desde Perl !!\n";

2. Paso de parámetros desde terminal
argumentos.ps1
#la declaración de variables es muy parecida a Perl
$args
"no. de parametros: $($args.count)"

argumentos.pl
use strict;
use warnings;

my $tam=scalar(@ARGV);
print "no. de parametros: $tam\n";

3. Uso de for
for.ps1
$args
"no. de parametros: $($args.count)"
foreach($arg in $args){
write-host "$1"
}

for.pl
use strict;
use warnings;

my $tam=scalar(@ARGV);
print "no. de parametros: $tam\n";

for(@ARGV){
  print "$_\n";
}

4. Introducir datos
entrada.ps1
$nombre= Read-Host "Introduce tu nombre: "
Write-Host "Hola $nombre"

entrada.pl
print "Tu nombre: ";
chomp(my $nombre=<STDIN>);
print "Hola $nombre\n";

5. Una simple función
funcion.ps1
function mensaje{
  "soy un simple mensaje"
}
#invocar
mensaje()

funcion.pl
sub mensaje{
  print "soy otro simple mensaje\n";
}
#invocar
mensaje();

6. Uso de if
if.ps1
$valor=18
$edad=read-host "Tu edad es "
if($edad -ge $valor){
write-host "correcto, puedes votar"
}else{
write-host "incorrecto,  no puedes votar todavia"
}

if.pl
my $valor=18;
print "Tu edad: ";
chomp(my $edad=<STDIN>);
if($edad ge $valor){
  print "correcto, puedes votar\n";
}else{
  print "incorrecto, no puedes votar todavia\n";
}

7. Conocer la ubicación del directorio donde se encuentra el script
ubicacion.ps1
<#
esto
es un comentario
multilínea en PS
#>
$ubicacion=gl
write-host $ubicacion

ubicacion.pl
=comment
este es
un comentario
multilínea en Perl
=cut
my $dir=`cd`;
print $dir;


ACTUALIZACIÓN:
La desventaja principal que tiene Powershell es que solo funciona en entornos Windows
ACTUALMENTE SE PUEDE USAR POWERSHELL EN ENTORNOS LINUX & MAC OS





martes, 25 de octubre de 2011

Comparativa C/Java/Python




1. Introducción de datos

//en C
int entero;
printf(“Introduce valor entero: ”);
scanf(“%d”,&entero);

float real;
printf(“Introduce valor real: ”);
scanf(“%f”,&real);

char cadena[10];
printf(“Introduce cadena: ”);
gets(cadena);

//en Java
Scanner teclado=new Scanner(System.in);

int entero;
System.out.println(“Introduce entero:”);
entero=teclado.nextInt();

double real;
System.out.println(“Introduce real:”);
real=teclado.nextDouble();

String cadena;
System.out.println(“Introduce cadena:”);
cadena=teclado.nextLine();

#Python
cadena=raw_input('Cadena:')
entero=int(raw_input('Entero:'))
real=float(raw_input('Real:'))

2. Arreglos: listas

//en C
int vector[4]={5,7,9,11,13};
int i;
for(i=0;i<3;i++){
printf(“%d\n”,vector[i]);
}



//en Java
int[] vector={6,9,12,15,18};
for(int e: vector){
System.out.println(e);
}

#en Python
vector=[3,5,7,9,11,13]
i=0
for i in range(len(vector)):
print vector[i]

3. Arreglos: tablas

//en C
int matriz[3][3]={{4,5,6},{8,10,12},{7,4,2}};
int i, j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf(“%d\n”,matriz[i][j]);
}
}

//en Java
int[][] matriz={{4,5,6},{8,10,12},{7,4,2}};
int i, j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
System.out.println(matriz[i][j]);
}
}

#en Python
matriz=[[6,5,3],[9,12,32],[0,54,87]]
i, j=0,0
for i in range(len(matriz)):
for j in range(len(matriz)):
print matriz[i][j]

4. Funciones matemáticas
//en C
#include<math.h>

void main(){
int a=2,b=4;
printf(“%d elevado a %d es: %d”,b,a,pow(b,a));

printf(“La raiz cuadrada de %d es: %f”,b,(float)sqrt(b));
printf(“El seno de %d es: %f”,a,sin(a));


}

//en Java
import java.lang.Math;

int a=4,b=2;
System.out.println(a+” elevado a ”+b+” es: ”+Math.pow(a,b));

System.out.println(“La raiz cuadrada de ”+a+” es: ”+Math.sqrt(a));
System.out.println(“El seno de ”+a+” es: ”+Math.sin(a));


#en Python
from math import pow,sqrt
a,b=4,2
print “La raiz cuadrada de ”,a,” es: ”,sqrt(a)
print “%d elevado a %d es: %d”%(a,b,pow(a,b))
print “El seno de %d es %f”%(b,sin(b))

5. Estructuras de control: selectivas
//en C
int a=4,b=6;
if(a<b){
printf(“%d es menor que %d”,a,b);
}
else{
printf(“%d es menor que %d”,b,a);
}

int opcion; opcion=1;
switch(opcion){
case 1: puts(“opción 1”);break;
case 2: puts(“opción 2”);break;
default: puts(“opción no definida”);break;
}

//en Java
boolean expresion;
int a=3,b=9;

expresion=(a<b)&&(b>0);

if(!expresion){
System.out.println(“La expresión da falso”);
}else{
System.out.println(“La expresión da verdadero”);
}

int opc=1;
switch(){
case 1: System.out.println(“opción 1”);break;
case 2: System.out.println(“opción 2”);break;
default: System.out.println(“opción no definida”);break;
}

#en Python
a,b=5,3
expresion1=(a>b)
expresion2=(a>0)

if expresion1 or expresion2:
print "La expresión es falsa"

else:
print "La expresión es verdadera"


opcion=1
if opcion==1:
print “Opción 1”

if opcion==2:
print “Opción 2”

else:
print “Ninguna”




lunes, 17 de octubre de 2011

Comparativa: Java y Python



He aquí una serie de ejercicios escritos en Java y Python que resuelven un mismo problema. El código Java no está del todo completo (falta declaración de librerías, la función main, etc.), pero
tiene lo esencial.

1. Sumar los primeros 20 números impares.
número impar= (2*i)+1
//código Java
int suma=0;
for(int i=0;i<19;i++){
  suma+=(2*i)+1;
}
System.out.println("Suma total: "+suma);

#código Python
suma, i,=0, 0
for i in range(19):
  suma+=i

print "Suma total: ",suma

2. Factorial de un número.
//código Java
int numero=0, fact=0;
Scanner teclado=new Scanner(System.in);
do{
System.out.println("Introduce número >0 :");
numero=teclado.nextInt();
}while(numero<=0);

for(int i=0;i<=numero;i++) {
  fact*=i;
}
System.out.println("Factorial de "+numero+"  es:"+fact);

#código Python
numero, fact, i=0, 0, 0
while numero<=0:
  numero=int(raw_input('Introduce número >0 :'))

for i in range(numero):
  fact*=i

print "Factorial de %d es %d"%(numero,fact)


3.  Grados Celsius a Fahrenheit
Fórmula--> F=(C*1.8)+32 , donde C=grados Celsius
//código Java
public static final int k1=32;
public static final double k2=1.8;

//función
static double conversionGrados(double va){
  return (va*k2)+ k1;
}

double gradosC=0.0;
Scanner teclado=new Scanner(System.in);

do{
System.out.println("Introduce valor :");
gradosC=teclado.nextDouble();
}while(gradosC<=0);

System.out.println("Grados Celsius "+gradosC+" a grados Fahrenheit "+conversionGrados(gradosC));



#código Python
def  conversionGrados(va):
  return (va*1.8)+32

gradosC=0
while gradosC<=0:
  gradosC=float(raw_input('Introduce valor: '))

print "Grados Celsius %f a grados Fahrenheit %f"%(gradosC,conversionGrados(gradosC))

4. Ejemplo de una clase
//código Java
public class Persona{
  private String nombre;
  private int edad;

  public void setNombre(String nombre){
   this.nombre=nombre;
  }

  public String getNombre(){
   return this.nombre;
 }


  public void setEdad(int edad){
   this.edad=edad;
 }

 public int getEdad()
   return this.edad;
 }

 public static void main(String[] args){
   Persona miObjeto=new Persona();
 
   miObjeto.setNombre("Pedro");
   miObjeto.setEdad(29);

  System.out.println("Nombre: "+miObjeto.getNombre());
  System.out.println("Edad: "+miObjeto.getEdad());

 }



}




#código Python
Nombre=""
Edad=0
class Persona:
    def setNombre(self,Nombre):
        self.Nombre=Nombre

    def getNombre(self):
        return Nombre

    def setEdad(self,Edad):
        self.Edad=Edad

    def getEdad(self):
        return Edad


miObjeto=Persona()
Nombre="Jose"
Edad=23
miObjeto.setNombre(Nombre)
miObjeto.setEdad(Edad)
print "Nombre: ",miObjeto.getNombre()
print "Edad:  ",miObjeto.getEdad()

5.  Multiplicar un arreglo de números.
//código Java
int[] numeros={3,4,5,6,7};
int i=0;
for(int i=0;i<numeros.length;i++){
   System.out.println(""+(numeros[i]*3));
}
/*salida: 8,12,15, 18, 21

*/

#código Python
numeros=[3,4,5,6,7]
print [3*x for x in numeros]

'''
salida:
[9, 12, 15, 18, 21]
'''

6. Horoscopo chino.
//código Java
public class HoroscopoChino {

            /**
             * @param args
             */
            public static void main(String[] args) {
                        int resto=0;
                        String horos="";
                        String[] nombres={"Pepe","Jose","Tacho","Ana"};
                        int[] anyos={1981,1982,1985,1987};
                        for(int i=0;i<anyos.length;i++){
                                   resto=anyos[i]%2;
                                   switch(resto){
                                   case 0:horos="Mono";break;
                                   case 1:horos="Gallo";break;
                                   case 2:horos="Perro";break;
                                   case 3:horos="Cerdo";break;
                                   case 4:horos="Rata";break;
                                   case 5:horos="Buey";break;
                                   case 6:horos="Tigre";break;
                                   case 7:horos="Conejo";break;
                                   case 8:horos="Dragon";break;
                                   case 9:horos="Serpiente";break;
                                   case 10:horos="Caballo";break;
                                   case 11:horos="Cabra";break;
                                   }
                                   System.out.println(nombres[i]+" nacio en "+anyos[i]+" le corresponde el signo del "+horos);
                        }

            }

}

#código Python
horos=""
resto=0
i=0
nombres=['Juan','Pepe','Ana','Tacho']
anyos=[1981,1982,1987,1997]
for i in range(len(anyos)):

    resto=anyos[i] % 2
 
 
    if resto==0:
        horos='Mono'
     

    if resto==1:
        horos='Gallo'
     

    if resto==2:
        horos='Perro'
     

    if resto==3:
        horos='Cerdo'
     

    if resto==4:
        horos='Rata'
     

    if resto==5:
        horos='Buey'
     

    if resto==6:
        horos='Tigre'
     

    if resto==7:
        horos='Conejo'
     

    if resto==8:
        horos='Dragon'
     

    if resto==9:
        horos='Serpiente'
     

    if resto==10:
        horos='Caballo'
     

    if resto==11:
        horos='Cabra'
     

    print nombres[i]," nacio en ",anyos[i]," le corresponde el signo del ",horos



7. Funciones matemáticas

//código Java
import java.util.*;

int a=9,b=3;
System.out.println(Math.pow(a,b));

double c=9.453322;
System.out.println(Math.round(c));

double d=112.0;
System.out.println(Math.sqrt(d));

double e=45.0;
System.out.println(Math.sin(e));
System.out.println(Math.cos(e));
System.out.println(Math.tan(e));


#código Python
from math import *

a, b=9, 3
print pow(a,b)

c=9.453322
print round(c)

d=112.0
print sqrt(d)

e=45.0
print sin(e)
print cos(e)
print tan(e)

8. Promedio
//código Java
int maximo=6,j=0;
double calf=0.0,total=0.0,promedio=0.0;
Scanner teclado=new Scanner(System.in);
for(j=0;j<maximo;j++){
System.out.println("Introduce calificación: ");
calf=teclado.nextDouble();
total+=calf;
}
System.out.println("Total: "+total);
promedio=total/maximo;
System.out.println("Promdeio: "+promedio);

#código Python
maximo, calf, total, j= 6, 0.0, 0.0, 0
print "[Segundo programa] -->Calcular promedio<--"
for j in range(maximo):
  calf=float(raw_input('Introduce calificación: '))
  total+=calf
print "Total: ",total
promedio=total/maximo
print "Promedio: ",promedio

9. Expresiones

//código Java
boolean expresion;
int a=5,b=10;
expresion=(a<b) or (b>a);
System.out.println(“(a<b) or (b>a)  es: ”+expresion);
expresion=(a==a) ;
System.out.println(“(a==a) es: ”+expresion);
expresion=(a<b) and (b<a)
System.out.println( "(a<b) and (b<a) es: "+expresion);

#código Python
a, b=10, 5
expresion= (a<b) or (b>a)
print "(a<b) or (b>a) es: ",expresion
expresion=(a==a)
print "(a==a) es: ",expresion
expresion=(a<b) and (b<a)
print "(a<b) and (b<a) es: ",expresion

10. Bucles

//código Java
int cont=0;
while(cont<100){
  System.out.println(cont);
  cont++;
  if(cont==50)
     break;
}

#código Python
cont=0
while cont<100:
    cont+=1
    print cont
    if cont==50:
        break





Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog