sábado, 25 de enero de 2014

Programando en C++ ... no. 3

Herencia

En este ejemplo se van a crear dos clases:

  • una clase base llamada Ingenieria
  • y una clase hija llamada Ingenieria_Computacion

La clase base (Ingenieria) heredará a la clase hija (Ingenieria_Computacion) sus atributos y métodos.


#include <iostream>
#include<string>

using namespace std;


class Ingenieria{
private:
int anyosEstudio;

public:
Ingenieria();
virtual ~Ingenieria();
void setAnyosEstudio(int anyosEstudio);
int getAnyosEstudio();

};

class Ingenieria_Computacion: public Ingenieria{
private:
string especialidad;

public:
Ingenieria_Computacion();
virtual ~Ingenieria_Computacion();
void setEspecialidad(string especialidad);
string getEspecialidad();

};

Ingenieria::Ingenieria(){
 cout<<"Objeto Ingenieria creado"<<endl;
}

Ingenieria::~Ingenieria(){
 cout<<"Objeto Ingenieria destruido"<<endl;
}

void Ingenieria::setAnyosEstudio(int anyosEstudio){this->anyosEstudio=anyosEstudio;}
int Ingenieria::getAnyosEstudio(){return this->anyosEstudio;}

Ingenieria_Computacion::Ingenieria_Computacion(){
  cout<<"Objeto Ingenieria_Computacion creado"<<endl;
}


Ingenieria_Computacion::~Ingenieria_Computacion(){
  cout<<"Objeto Ingenieria_Computacion destruido"<<endl;
}

void Ingenieria_Computacion::setEspecialidad(string especialidad){this->especialidad=especialidad;}
string Ingenieria_Computacion::getEspecialidad(){return this->especialidad;}

int main(){
   Ingenieria_Computacion ingeniero=Ingenieria_Computacion();
   ingeniero.setAnyosEstudio(5);
   ingeniero.setEspecialidad("redes de computadoras");
   cout<<"anyos de estudio: "<<ingeniero.getAnyosEstudio()<<endl;
   cout<<"especialidad: "<<ingeniero.getEspecialidad()<<endl;
  return 0;
}


Resultado:


lunes, 6 de enero de 2014

Programadores ...

  • Le gusta lo sencillo
  • No es muy "robusto" ni "pesado"

class Pythonista:
        def __init__(self, nombre): 
             self.nombre=nombre


 #main
 codeMonkey=Pythonista('Steve')
 print codeMonkey.nombre


  •  No muy confiable para algunos
  •  Puede sorprender 


 def lista=['libertad','groovy','amor y paz']

lista.each{it-> println "$it"}










  •  Demasiado "robusto" y "pesado" para algunos
  •  Le gusta la dificultad
 /**
*@author yo merito
*@date hoy
*/
public class Javesco{
/**
*@param args
*/
public static void main(String ... args){
  
      System.out.println("Un espacio demasiado pequeño");
 }

}



  • No le parece "adecuado"  todo lo que tenga que ver con la libertad
  • Debes sujetarte a sus normas



 NO ME PERMITO COMPARTIR CÓDIGO










  •  No le toman mucho interés o seriedad
  •  A algunos les puede parecer molesto
 class No_Terrestre
         def initialize(nombre)
           @nombre=nombre
         end

     attr_reader :nombre
end

#main
codeMonkey=No_Terrestre.new('Roger')
puts "Hola #{codeMonkey.nombre}"





  • Considera a otros como advenedizos
  • Debes cuidar tu "forma de hacer las cosas"


#include<stdio.h>

int main(){
  printf("no se me da la gana escribir funciones");
  return 0;
}











  • Solo algunos le entienden ... solo algunos
  • Muy confuso ... mucho



use strict;
use warnings;

my($cad);
$cad='Tal vez esto sirva'.'  o tal vez no';











  • Prefiere lo funcional y lo pragmático
  • Refinado y estricto


object Scalar extends App{
     Console.println("Deja de ver mi martini")
}












  • Le gusta lo directo, nada de palabrerías  insulsas
  • Cuida todo lo que escribes y dices, en serio hazlo 
void run(){
   print("Si ves esto, es porque sabes leer ");
}



Un poco de humor para todos.

domingo, 5 de enero de 2014

Programando en Ruby ... no. 2


Crear una clase en Ruby

ejemplos.rb
 
class Manguera

    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

    attr_reader :longitud, :color
end

#'main' del programa
begin
#instanciamos la clase 'Manguera'
    manguera=Manguera.new('50 mts','negra')
rescue
    @error_message="#{$!}"
ensure
#imprimimos los datos
    puts "color: #{manguera.color} , longitud: #{manguera.longitud}"
end


Ruby es un lenguaje muy parecido a Python ,si tienes tiempo programando en el te parecerá bastante familiar.


¿Cómo quedaría la clase en Python?

ejemplos.py

class Manguera:
    def __init__(self,longitud,color):
        self.color=color
        self.longitud=longitud


try:
    manguera=Manguera('35 mts','naranja')
except Exception, e:
    print e
finally:
    print "color: %s, longitud: %s"%(manguera.color,manguera.longitud)

Modificando el código de la clase (en Ruby), podemos introducir valores:

class Manguera
    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

    attr_reader :longitud, :color
end


color=''
longitud=''
begin
   #pedimos el color 
    puts "Color: "
    STDOUT.flush
    color=gets.chomp
   #pedimos la longitud
    puts "Longitud: "
    STDOUT.flush
    longitud=gets.chomp

    if color!='' and longitud!=''
        manguera=Manguera.new(longitud,color)
    end
   
rescue
    @error_message="#{$!}"
ensure
    puts "color: #{manguera.color} , longitud: #{manguera.longitud}"
end


También podriamos crear un método para visualizar los datos:

class Manguera
    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

   #creamos  el método para visualizar los datos
   def verDatos
         puts "color:  #{color} , longitud: #{longitud}"
   end

    attr_reader :longitud, :color
end


color=''
longitud=''

=begin
     nota: esto es un comentario
=end

begin
   #pedimos el color 
    puts "Color: "
    STDOUT.flush
    color=gets.chomp
   #pedimos la longitud
    puts "Longitud: "
    STDOUT.flush
    longitud=gets.chomp

    if color!='' and longitud!=''
        manguera=Manguera.new(longitud,color)
    end
   
rescue
    @error_message="#{$!}"
ensure
    manguera.verDatos
end


Links:
http://codemonkeyjunior.blogspot.mx/2013/05/un-vistazo-ruby.html
http://codemonkeyjunior.blogspot.mx/2013/06/programando-en-ruby-no-1.html
http://www.elclubdelprogramador.com/category/programacion/ruby/