domingo, 16 de junio de 2013

Python ... ejemplos prácticos no. 8

1. Obtener un carácter especifico.

2. Uso de replace
3. Uso de "reverse"
4. Obtener la longitud de una cadena y/o lista

5. Ejecutar un comando del sistema (en este caso Windows)

6.Conocer plataforma y sistema operativo

domingo, 9 de junio de 2013

Programando en Java ... no. 1

1. Recorrer un directorio, si existe recorre y cuenta el número de archivos y directorios.
import java.io.File;
import java.io.IOException;
import static java.lang.System.out;

public class Ejemplos{
    public static final String DIRECTORIO="/home/usuario/ejemplos";
 
    public static void main(String[] args)throws IOException {
        File directorio=new File(DIRECTORIO);
        int cont=0;
        if(directorio.exists()){
            out.println("existe directorio");
            if(directorio.isDirectory()){
                out.println("estamos en: "+directorio.getAbsolutePath());
                File subDir=new File(directorio.getAbsolutePath());
                File[] archivos=subDir.listFiles();
                out.println("\tArchivos:");
                for(int i=0;i<archivos.length;i++){
                    out.println(archivos[i].getName());
                    cont++;
                }//fin for
            }//fin if
        }//fin if
        out.println("no. total: "+cont);
    }

}

2. Unir dos vectores (Ay B) en una lista
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;

public class Ejemplos{
    public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
    int tam=0;
    int[] vectorA=null;
    int[] vectorB=null;
    List<Integer> listaC=new ArrayList<Integer>();
    System.out.println("tamanyo del vector: ");
    tam=in.nextInt();
    vectorA=new int[tam];
    vectorB=new int[tam];
    int valorA=0,valorB=0;

System.out.println("llenamos vector A");
    for(int i=0;i<vectorA.length;i++){
      System.out.println("valor no. "+(i+1)+" :");
      valorA=in.nextInt();
      vectorA[i]=valorA;
    }
    Arrays.sort(vectorA);
System.out.println("llenamos vector B");
    for(int j=0;j<vectorB.length;j++){
      System.out.println("valor no. "+(j+1)+" :");
      valorB=in.nextInt();
      vectorB[j]=valorB;
    }
    Arrays.sort(vectorB);
System.out.println("llenamos lista C");
    for(int a:vectorA){
        listaC.add(a);
    }
    for(int b:vectorB){
        listaC.add(b);
    }
       Collections.sort(listaC);
       System.out.println(listaC);    
    }
}

3. Uso de enumeraciones
import java.util.List;
import java.util.ArrayList;
import static java.lang.System.out;

public class Ejemplos{
    public static void main(String[] args) {
     Soldado steve=new Soldado();
     Soldado john=new Soldado();

     RangoSoldado rango1, rango2;

     steve.setNombre("Steve Rogers");
     steve.setEdad(28);
     steve.setRango(RangoSoldado.CAPITAN);

     john.setNombre("John Walker");
     john.setEdad(30);
     john.setRango(RangoSoldado.TENIENTE);

     rango1=steve.getRango();
     rango2=john.getRango();

     out.println("Steve: "+rango1.getTitulo());
     out.println("John: "+rango2.getTitulo());

     List<Soldado> listaS=new ArrayList<Soldado>();
     listaS.add(steve);listaS.add(john);

     for(Soldado soldado: listaS){
        out.println("nombre: "+soldado.getNombre()+"  ,edad: "+soldado.getEdad()+"  ,rango: "+soldado.getRango());
     }




    }
}

class Soldado{
    public Soldado(){}

    public Soldado(String _nombre,int _edad, RangoSoldado _rango){
        nombre=_nombre;
        edad=_edad;
        rango=_rango;
    }

    private String nombre;
    private int edad;
    private RangoSoldado rango;


    public void setNombre(String _nombre){
        nombre=_nombre;
    }

    public void setEdad(int _edad){
        edad=_edad;
    }

    public void setRango(RangoSoldado _rango){
        rango=_rango;
    }

    public String getNombre(){
        return nombre;
    }

    public int getEdad(){
        return edad;
    }

    public RangoSoldado getRango(){
        return rango;
    }
}

enum RangoSoldado{
    RASO("raso"),CABO("cabo"),TENIENTE("teniente"),CAPITAN("capitan");

  
    public  String titulo;

    RangoSoldado(String _titulo){
        titulo=_titulo;
    }

    RangoSoldado(){
    }

    public String getTitulo(){
        return titulo;
    }
}

4. Recorrer directorio
import java.io.IOException;
import java.io.File;
import java.util.Date;

public class Ejemplos{

    public static final String DIRECTORIO="C:\\Programas\\Ejemplos";
    
public static void main(String[] args)throws IOException {
        File directorio=new File(DIRECTORIO);
        if(directorio.exists()){
            System.out.println("existe el directorio: "+directorio.getAbsolutePath());
            File subDir=new File(directorio.getAbsolutePath());
            File[] archivos=subDir.listFiles();
            for(int i=0;i<archivos.length;i++){
                if(archivos[i].canRead() || archivos[i].canWrite() || archivos[i].canExecute()){
                    System.out.println("se tienen todos los permisos: "+archivos[i].getName());
                    if(new File(archivos[i].getName()).isFile()){
                        System.out.println("es archivo: "+archivos[i].getName()+"  ultima modificacion: "+new Date(archivos[i].lastModified()));
                    }
                    if(new File(archivos[i].getName()).isDirectory()){
                        System.out.println("es directorio: "+archivos[i].getName()+" ultima modificacion: "+new Date(archivos[i].lastModified()));
                    }

                    //ver solo archivos txt
                    if(archivos[i].getName().endsWith("txt")){
                        System.out.println("es archivo txt: "+archivos[i].getName()+" ultima modificacion: "+new Date(archivos[i].lastModified()));;
                    }

                }else{
                    System.out.println("no se tienen los  permisos necesarios: "+archivos[i].getName());
                }

            }//fin for
        }//fin if
    }//fin main

}


domingo, 2 de junio de 2013

Programando en Perl no. 4

Continuamos con esta serie de ejercicios de programación en Perl.

En esta ocasión veremos:

  1. Determinar el elemento menor de un arreglo o vector. 
  2. Determinar el elemento mayor y menor de un arreglo o vector y su suma. 
  3. Cómo recorrer un hash.   
  4. Una entrevista con Larry Wall, creador de Perl.
1. Llenar un vector, y determinar el elemento menor
$argumentos = $#ARGV;
$cont= 0;
my @vector;
for($i=0;$i<=$argumentos;$i++){
 print $ARGV[$i],"\n";
 $vector[$i]=$ARGV[$i];
 $cont++;
}
print "\nno. de parametros: ",$cont;
my $menor=$vector[0];
my $mayor=$vector[0];
my $suma=0;
foreach $v (@vector) {
   if($v<$menor){
    $menor=$v;
   }
   if($v>$mayor){
    $mayor=$v;
   }
   $suma=$suma+$v;
}

print "\nmenor: ",$menor;
print "\nmayor: ",$mayor;
print "\nsumatoria: ",$suma;

2. Llenar un vector, determinal el elemento mayor y menor, y la suma de todos los elementos (usando una función):
$argumentos = $#ARGV;
$cont= 0;
my @vector;
for($i=0;$i<=$argumentos;$i++){
 print $ARGV[$i],"\n";
 $vector[$i]=$ARGV[$i];
 $cont++;
}
print "no. de parametros: ",$cont,"\n";
print metodo(@vector);

sub metodo{
  my @vector=@_;
  my $resultado="";
  my $menor=$vector[0];
  my $mayor=$vector[0];
  my $suma=0;
  foreach $v (@vector) {
    if($v<$menor){
      $menor=$v;
    }
    if($v>$mayor){
      $mayor=$v;
    }
    $suma=$suma+$v;
  }

  $resultado="el menor es: $menor ,el mayor es: $mayor ,la suma es $suma\n";
  return $resultado;
}
3. Recorrer un hash
my %mapa=('Pedro',32,'Maria',31,'Horacio',65);
print "Recorrer con while\n";
while (($key, $value) = each(%mapa)){
     print $key.", ".$value."\n";
}

print "Recorrer con foreach\n";
foreach $key (%mapa)
{
 print $key.",".$mapa."\n";
}


¿Por qué Perl es como un lenguaje humano?
Aquí una entrevista(en inglés) al creador de Perl,  Larry Wall.


Links
http://bigthink.com/videos/hobbits-would-make-great-programmers
https://github.com/book/perlsecret

sábado, 25 de mayo de 2013

La leyes (no escritas) de la programación no. 2


  • NADIE VA AYUDARTE, repitelo varias veces hasta que lo entiendas. 
  • No importa que tan bueno seas no siempre van a salir las cosas tal y como las planeaste.
  • El café no es lo único que te mantendrá despierto para seguir escribiendo código es necesario realizar otras actividades.
Cuando tenemos un problema muy serio no siempre tendremos ayuda alguna. Es mejor pensar así, nadie va a venir a solucionarnos el problema. Pedir ayuda es válido, pero no esperemos que mágicamente aparezca alguien a salvarnos.

También cometemos el error de NO PEDIR AYUDA cuando realmente la necesitamos, creemos que podemos darle solución sin "molestar a los demás".

Superar la frustración
Es muy difícil hacerlo, esperamos que las cosas siempre salgan como pensamos. Escribir unas cuantas líneas de código y esperar a que mágicamente funcionen. 

Horas y horas de no dormir a la basura.  Eso va llevarnos un buen tiempo lograrlo.

Relajarnos
¿Por qué no?, ir de vez en cuando con los amigos a jugar futbol, ir  al cine, o a tomar una "bebida refrescante" (jeje).


lunes, 13 de mayo de 2013

Programando en Ceylon no.1

1. ¿Cómo compilar?
ceylon compile source\programa.ceylon

2. ¿Cómo ejecutar?
ceylon run default



3. ¿Cómo introducir datos?
doc "Introducir datos"
by "autor"
void run(){
  print("Introduce tu nombre");
  String nombre=process.readLine();
   print("Hola ``nombre``");
}

3. Si se quiere convertir de Integer? y Float? a Integer y Float se puede hacer los siguiente:
void run(){
print("Edad:");
String edadStr=process.readLine();
print("Peso:");
String pesoStr=process.readLine();

Integer? _edad=parseInteger(edadStr);
Float? _peso=parseFloat(pesoStr);

if(exists _edad){
  Integer edad=_edad;
  if(existe _peso){
   Float peso=_peso;
   print("edad:  ``edad``  peso: ``peso``");
  }
}

}
4. ¿Cómo recorrer un vector?
void run(){
String[] nombres=["Juan","Miguel","Antonio","Maria"];

for(n in nombres){
  print("Hola ``n``");
}


for(v in 0..12){
  print("hola no. ``v``");
  }


}

5. Obtener IMC

void run(){
  Persona persona=Persona("Mario",35,66.0,1.75);
  persona.ver();
}

shared class Persona(String nombre,Integer edad,Float peso,Float talla){
   shared Float imc(){
     return peso/(talla*talla);
  }

   shared void ver(){
    print("Hola ``nombre`` tienes ``edad`` , pesas ``peso`` y mides ``talla``");
    print("Tu IMC es de: ``imc()`` tu clasificacion: ``clasificacion()``");
  }

  shared String clasificacion(){
  variable String cad="";
  if(imc()<16.00){
  cad="Infrapeso: Delgadez Severa";
  }else if(imc()<=16.00 || imc()<=16.99){
  cad="Infrapeso: Delgadez moderada";
  }else if(imc()<=17.00 ||imc()<=18.49){
     cad="Infrapeso: Delgadez aceptable";
  }else if(imc()<=18.50 || imc()<=24.99){
    cad="Peso Normal";
  }else if(imc()<=25.00 || imc()<=29.99){
    cad="Sobrepeso";
  }else if(imc()<=30.00 || imc()<=34.99){
    cad="Obeso: Tipo I";
  }else if(imc()<=35.00 || imc()<=40.00){
    cad="Obeso: Tipo II";
  }else if(imc()>=40.00){
    cad="Obeso: Tipo III";
  }else{
      cad="no existe clasificacion";
  }
   return cad;
}
}

"Imposible,significa que no has hallado la solución"
Henry Ford

viernes, 10 de mayo de 2013

Un vistazo a ... Ruby

Update:

Ruby es: Un lenguaje de programación dinámico y de código abierto centrado en la simplicidad y la productividad. Tiene una sintaxis elegante que es natural de leer y fácil de escribir.

Instalamos:

sudo apt-get install ruby-full

Una vez instalado abrimos una terminal y tecleamos:

ruby -v 
¿Cómo guardo un programa en Ruby?
nombrePrograma.rb

¿Cómo ejecuto un programa (desde terminal)?
ruby nombrePrograma.rb

Si usas Windows puedes descargar e instalar http://rubyinstaller.org/


1. Introducir datos desde teclado

introduceDatos.rb
puts "Teclea un nombre: "
STDOUT.flush
nombre=gets.chomp
puts "Hola #{nombre}"

2. Tabla de multiplicar del 1 al 10

tabla.rb
for n in 1..9
   puts "tabla de multiplicar del no. #{n}\n"
   for n2 in 1..10
        puts "#{n} x #{n2} = #{n*n2}\n"
   end
end

3.  Crear una clase
Persona.rb

class Persona
  
  def initialize(nombre,edad)
    @nombre=nombre
    @edad=edad
  end

  def verDatos()
    puts "Hola #{@nombre} tienes #{@edad} años"
  end

end

persona=Persona.new("Horacio",35)
persona.verDatos()


4. Ejecutar un bat o un sh
ejecuta.rb
=begin
comentariops 
multilínea en 
Ruby
=end
#si es Linux
system("sh archivo.sh")
#si es Windows
system("archivo.bat")


comprehensiones.rb
arreglo=[1,4,5,3,2,9,54,33,90,210,0,21]
puts arreglo.map {|x| x!= 0 ? x * 3 : nil}.compact



REPL Ruby
 http://tryruby.org/levels/3/challenges/2 este sitio  es para probar e iniciar en Ruby.



sábado, 4 de mayo de 2013

Estados de un programador Java


 
Inicias un nuevo proyecto. Todo parece perfecto, nada puede ocurrir mal.
Comienza la revisión de requerimientos. Descubres cosas que no habías pensado. Creo debiste preguntar más. Cero documentación, cero ayuda.
Las cosas no van según lo planeado. Todavía no empiezas a codificar y ya surgieron nuevos problemas. 
Lograste terminar casi justo a tiempo. Los problemas se resolvieron, tal vez no de la mejor manera, pero al menos ya no te preocupa tanto. Ir con los amigos a relajarte y tomar una "bebida refrescante".
Periodo de mucha felicidad, las cosas pueden mejorar. Tanta preocupación para nada.
Comienzan los problemas. 

Tu código requiere revisión, tantas horas de angustia y preocupación a la basura. Debes de comenzar de nuevo, quieres matar al usuario.

Vibe Coding y el Prompt engineering

Según san Google, la Ingeniería de prompts (prompt engineering) es: el arte y la ciencia de estructurar, diseñar y optimizar las entrada...

Etiquetas

Archivo del blog