Mostrando entradas con la etiqueta códigos. Mostrar todas las entradas
Mostrando entradas con la etiqueta códigos. Mostrar todas las entradas

martes, 30 de julio de 2019

100 días de código en Javascript... 6ta parte


Continuando con esta serie de post sobre Javascript.

39. Mandar o no mandar parámetros.

function suma(x, y=1){
  return x+y;
}

document.write(suma(4));//5
document.write(suma(4,3));//7
document.write(suma(2));//3

La función suma recibe dos parámetros (x,y), por default y tendrá el valor de 1, así que
si omitimos un valor la función funcionará sin problema alguno.

Otro ejemplo. Cambiamos el color de un div mandando uno o dos parámetros.

function cambiaColor(elemento, color='red'){
  var contenedor = document.getElementById(elemento);
contenedor.style.backgroundColor = color;
}

cambiaColor('panel');
cambiaColor('panel','blue');

<div id="panel">
  <p>Hola, mundo.</p>
</div>

40.  let y const

var variableGlobal = 232;

const ConstantePI =3.141519;

function nada(){
   let variableLocal = variableGlobal;
   let variableLocalPI = ConstantePI;
}

Con el nuevo estandar de Javascript es importante entender que la palabra let nos permite definir una variable 'local', una que este definida en un bloque en particular. El ámbito es lo que lo caracteriza:
function decidir(dato){
  if( dato == 'si'){
    let numero = 33;
  }

  console.log(numero);//Esto dará un error

}

Y const para variables cuyo valor es inmutable (que no puede cambiar).
const boton = document.querySelector('.miBoton');

const label = document.getElementById('etiqueta');

/*Esto ya no es permitido: ya los hemos definido como una constante*/

label = "Hola";
boton = new Date();

Crear funciones con let es muy sencillo:

/*Variables*/
const contenido1 = document.getElementById('contenido1');
const btn1 = document.getElementById('btn1');


/*Funciones*/
let inicio = ()=> console.log('%c Hola, amigos','background-color:black;color:orange;');

let saludar = (nombre)=> window.alert(`Hola ${nombre} eres bienvenido`);

let miNombre = () => prompt('Tu nombre:');



/*Listeners*/
btn1.addEventListener('click',()=>{
 saludar(miNombre())
});


window.addEventListener('load',inicio());

41.Keypress y KeyUp. Escribir un texto y que se muestre en mayúsculas.

<input type="text" id="txt1" value="" placeholder="Coloca tu nombre" />

Los eventos 'keypress' y 'keyup' nos ayudan a captar las teclas presionadas.

const texto = document.querySelector('#txt1');


txt1.addEventListener('keypress',()=>{
txt1.value = txt1.value.toString().toUpperCase();
});

txt1.addEventListener('keyup',()=>{
txt1.value = txt1.value.toString().toUpperCase();
});

Más contenido en el próximo post.

sábado, 27 de abril de 2019

100 días de código en Javascript... 4ta parte

31. Si quieres saber qué día es hoy podemos usar Date.  En este caso extendemos la clase Date y creamos un método getDia() para mostrarlo.

class Fecha extends Date{
  getDia(){
    var dia =this.getDay();
    var result = "";
    switch(dia){
      case 7: result = "Domingo";break;
      case 6: result = "Sabado";break;
      case 5: result = "Viernes";break;
      case 4: result = "Jueves";break;
      case 3: result = "Miercoles";break;
      case 2: result = "Martes";break;
      case 1: result = "Lunes";break;
      default: result = "NO ESPECIFICADO";break;
    }
    return result;
  }

}

let fecha = new Fecha();
console.log("Hoy es ",fecha.getDia());

32. Crear objetos. En el ejemplo vemos que podemos ir agregando nuevos atributos (mes).
var objFecha = {
  "dia":"Viernes",
  "año":"1950",
  "hora":"09:00PM"
}

objFecha.mes ="Enero";
console.log(objFecha);

33. Más ejemplos de herencia en JS:

/*Clase base de todo animal*/
class Animal{}

//Clase base de animales acuáticos
class AnimalAcuatico extends Animal{}

//Clase base de animales terrestres
class AnimalTerrestre extends Animal{}


//Sublcase de clase AnimalAcuatico
class Delfin extends AnimalAcuatico{}


//Subclase de clase AnimalTerrestre
class Rinoceronte extends AnimalTerrestre{}

34.Extender atributos de una clase definida:

/*Cre la clase Computadora con tres atributos iniciales*/

var Computadora = function(sistema_operativo, modelo, marca){
     this.sistema_operativo=sistema_operativo;
     this.modelo=modelo;
     this.marca=marca;
};


//Agregando/extendiendo atributos

Computadora.prototype.dns='';

Computadora.prototype.ip='';

Computadora.prototype.red='';

//Agregando/extendiendo métodos

Computadora.prototype.verComputadora=function(computadora){

var objetoC= 'Computadora 
Modelo: '+computadora.modelo
+"
Marca: "+computadora.marca+"
Sistema operativo: "+computadora.sistema_operativo
+"
IP:" +computadora.ip+"
DNS: "+computadora.dns
+"
RED: "+computadora.red;

document.getElementById('comp').innerHTML= objetoC;

}

¿Cómo creo una instancia?

function crearComputadora(){
//Creo una instancia
var computadora = new Computadora('Linux','HP vPro','HP');

computadora.ip='148.216.33.21';

computadora.dns='148.216.60.1';

computadora.red='Infinitum';

return computadora;

}

Obtengo el objeto:
var obtenerComputadora = function(){
   var comp= crearComputadora();
   comp.verComputadora(comp);
};

Un evento:
/*<button id='btn'>Obtener</button>*/

document.getElementById('btn').addEventListener('click', obtenerComputadora);

Más en el próximo post.

Links:
http://codemonkeyjunior.blogspot.com/2019/04/100-dias-de-codigo-en-javascript-3ra.html


sábado, 10 de noviembre de 2018

Programando en Ruby ... no. 6

En esta serie de programación en Ruby hemos visto muchos ejemplos, desde simples códigos para imprimir un valor y programación orientada a objetos.

En este post escribiremos un archivo llamado models.rb dentro de un directorio denominado clases.
models.rb

#clase padre
class Animal 
  attr_accessor :no_patas
   def initialize(no_patas)
       @no_patas=no_patas
        puts "objeto Animal creado"
  end
end

#clase hija
class Aracnido  < Animal
  attr_accessor :especie
   def initialize(no_patas, especie)
       super(no_patas)
       @especie=especie
        puts "objeto Aracnido creado"
  end
end

#clase hija
class Ave   <  Animal
  attr_accessor :color
   def initialize(no_patas, color)
        super(no_patas)
       @color=color
        puts "objeto Ave creado"
  end
end 
 
Este archivo nos servirá para escribir nuestras clases (Animal, Aracnido y Ave). Donde Animal es la clase padre y las demás son las clases hijo.

Ahora debemos crear un archivo llamado main.rb donde importaremos este archivo.


require_relative 'clases/models'

def main
 begin
  animal = Animal.new(4)
  ave = Ave.new(2,'Verde')
  aracnido = Aracnido.new(8,'Delatore Riebelle')
 rescue Exception => e
  puts "Ha ocurrido una excepcion: #{e}"
 end
end

#main
main

Usamos require_relative para indicar la ruta donde se encuentran las clases con las que queremos trabajar.

Para correr el archivo abrimos una terminal y escribimos:
ruby main.rb


sábado, 18 de julio de 2015

Una pregunta ... ¿Por qué quieres ser programador?

"Algunos comienzan una cosa sin tener la más remota idea de como comenzar y lo peor aún ... como terminar"
 :: El Libro de los naufragios::

Hace algunos años les preguntaron a James Gosling y Linus Torvalds (por mencionar algunos) donde habían aprendido a programar y si realmente la educación universitaria fue la diferencia que marco el destino de sus carreras. Sus respuestas fueron: "No aprendí a programar en la escuela, sino por mi cuenta leyendo libros y practicando" y "al principio aprendí por mi cuenta. Conseguí mi primer trabajo como programador antes de ir a la universidad". Otros más dijeron que: "Las universidades me enseñaron muchas cosas útiles, incluso la mayoría de las bases que sería mi trabajo futuro".  Para estas "celebridades" de la informática el gusto y una buena educación académica fue esencial para ser programador. Pero ¿qué es un programador?  y más aun ¿existe la carrera de programador o desarrollador?.


  El programador (de una manera burda) es  quien, sin importar si tiene o no una carrera universitaria( la que sea) o hasta estudios básicos, escribe, documenta (en algunos casos) y depura los programas que la computadora ejecutará y obtendrá información útil para ser usada para cualquier propósito. Ahora bien esta cabe señalar que "esta carrera" no existe como tal. Un programador puede ser cualquier persona: un contador, un abogado, un médico, y ¡hasta un niño!. No, no se trata de una broma. Es la realidad.  Esta claro que por lo general los programadores vienen de carreras como Sistemas computacionales, Informática administrativa, Ingeniería en computación, etc. , pero ya no es raro encontrar gente que trabaja "haciendo programas" y no ha estudiado ninguna de esas carreras.  ¿La calidad de su trabajo tiene que ver con lo estudiado en la universidad?, ¿será que se equivocaron al elegir una profesión? ... algunas preguntas incomodas.

   Y si de preguntas incomodas hablamos ... se les podría hacer la siguiente: ¿por qué quieres ser programador?. Habría respuestas como:
  • Me gusta la computación y la tecnología
  • Se gana muy bien como programador
  • No lo sé, creo me gustan los retos
  • etc.
Yo creo que tiene que ver más por el gusto aunque la necesidad también puede ser.

Links
https://blog.udemy.com/es/cinco-preguntas-de-perl-para-una-entrevista-que-cada-programador-debria-saber/


sábado, 31 de enero de 2015

Groovy en ejemplos ... no. 6

Seguimos con la serie de ejemplos de código en Groovy. Una de las características de este lenguaje es que podemos añadir "extensiones" a una clase previamente definida.  Esto es definir nuevas funcionalidades por llamarlo de una manera.

Tenemos la siguiente clase:

class Ventana{
  int alto
}

Posee tan solo un atributo de tipo int (alto), pero si queremos agregarle un método/atributo (por ej. ancho) podemos hacerlo mediante  ExpandoMetaClass.

class Ventana{
  int alto
}

//main del programa
Ventana.metaClass.getAncho << {-> 200}
def ventana=new Ventana()

ventana.with{ alto=150 }
println "Alto: $ventana.alto"
println "Ancho:$ventana.ancho"


Con esto obtenemos métodos y atributos de manera dinámica.

En este ejemplo hacemos uso de las "bondades" de ExpandoMetaclass, agregamos nuevos métodos y propiedades a las clases previamente definidas

abstract class SuperHeroe{
abstract void volar()
}

abstract class Vigilante{
boolean tieneArmadura=false

boolean tieneAyudante=false
}

class Superman extends SuperHeroe{
int edad
void volar(){
println "Superman puede volar"
}
}

class Batman extends Vigilante{
String nombre
}

static main(args) {
Batman.metaClass.getEdad << {-> 39 }
Batman.metaClass.getAyudante << {-> "Robin"}

Superman.metaClass.getNombre << {-> "Clark Kent"}


def batman=new Batman(nombre:"Bruce Wayne")
def superman=new Superman(edad:38)

batman.with{
tieneArmadura=true

tieneAyudante=true
}

Batman.metaClass.verDatos << { println "nombre real: $nombre, edad: $edad, ayudante: $ayudante"}
Superman.metaClass.verDatos << {println "nombre real: $nombre, edad: $edad"}
superman.verDatos()
superman.volar()

if(batman.tieneAyudante && batman.tieneArmadura){
   batman.verDatos()

}

}



Esta funcionalidad nos permite agregar constructores, métodos o sobre escribirlos, etc.

domingo, 13 de noviembre de 2011

¿Cómo aprender a programar?

  • Conoce gente que sepa de programación 
  • Busca información, libros, apuntes, blogs, sitios especializados,etc.
  • Comparte tus conocimientos (aunque sean limitados) siempre alguien te podrá corregir si te equivocas
  • Siempre es bueno tener tu propio "banco de datos" donde almacenar tus apuntes, tus notas, etc.
  • Leer ayuda de mucho, también la lógica y las matemáticas
  • Haz notas de lo que no entiendas, busca términos que te confundan o que no entiendas claramente
  • Preguntar es bueno, aunque no siempre esperes que te contesten y resuelvan tus problemas
  • El Face y Twitter no son solo para ver mensajes sin contenido ni sustancia, también pueden servir para encontrar buena información y conocer gente
  • Si encuentras código no es bueno tan solo copiar y pegar,estudialo no todo el código que encuentras en  internet sirve
  • Y lo más importante, el programador se hace con la práctica no en las aulas

Un ejemplo muy sencillo. Sumar todos los valores de un arreglo
//defino un arreglo con números
int[] numeros={3,4,5,6,7,8,9};
int i,suma=0;
//bucle que va sumando todos los valores del arreglo
for(i=0;i<numeros.length;i++){
   suma+=numeros[i];
}
//muestro la suma de todos los valores
System.out.println("Suma de todos los números: "+suma);

    sábado, 24 de septiembre de 2011

    Bienvenidos al blog

    ¿Por qué hacer este blog?
    Este blog surgio a partir de que existen personas que quieren aprender a programar, pero que no tienen ninguna ayuda. En Internet hay mucha información, sin embargo no siempre es de gran utilidad o no es de libre acceso ($). Siempre he creido que la única manera de aprender algo es mediante ejemplos prácticos. Espero hacer material de buena calidad y les sirva de algo.  

    Editado:


    Puedes copiar todo el código, pero te recomendaria revisarlo (y estudiarlo) primero.
    ¿Por qué del nombre?
    Code monkey se refiere a una canción de Jonathan Coulton, en la que describe la frustración que tienen algunos programadores en su vida profesional. Fuente: http://en.wikipedia.org/wiki/Code_monkey

    Video anime basado en la canción 
    Versión original de la canción




       Espero sus sugerencias. Primer tema: Python, ejemplos prácticos


    Entendiendo el flujo MuleSoft

    En la anterior entrega dijimos que MuleSoft es una plataforma de integración que te permite conectar aplicaciones, datos y APIs de mane...

    Etiquetas

    Archivo del blog