Archivo de la etiqueta: Codigo

Hola mundo en Linux con g++

Programando c/c++ en Linux

Primero que nada nos vamos a ir a la terminal de Linux, para hacer esto podemos ingresar mediante Alt+Ctrl+T. Una vez dentro la forma más básica de comenzar a programar c/c++ es hacerlo mediante terminal. Esto principlamente por que aislamos todos los parámetros que se necesitan para programar, en otros programas donde se usa IDE o Compiadores extras se pierde un poco de información y la noción de lo que se esta haceindo pierde un poco de esencia.

Terminal en Lubuntu

Terminal de Linux

Vamos a comenzar con abrir la terminal y posicionarnos en la carpeta de trabajo, en este caso podemos crear una carpeta en el escritorio.


$ mkdir Desktop/Ejemplos

En la carpeta vamos a crear otra carpeta para el primer ejemplo


$ cd Desktop/Ejemplos
$ mkdir EJ01

Posteriormente vamos a crear un nuevo archivo de texto para poder comenzar a programar, este lo vamos a crear con extensión cpp. Vamos a utilizar el editor nano de la terminal.


$ nano ejemplo01.cpp

Aparecerá posteriormente un editor de texto en la terminal que nos servirá para escribir nuestro programa.

Primer ejemplo en c/c++

Vamos a comenzar a escribir un programa en lenguaje c/c++ lo más básico seria escribir Hola Mundo en la terminal, para esto vamos a ver qué es lo que necesitamos.

Primero que nada vamos a llamar la biblioteca principal iostream (cubriremos más información de esta biblioteca más adelante). Posteriormente creamos la función main. Por lo que el cuerpo principal del programa nos quedaría como sigue:


#include<iostream>
int main (void){
}

Ahora, para poder imprimir información necesitamos mandar llamar la instrucción para imprimir en terminal “cout”, la misma instrucción requiere un espacio de nombres (mas adelante veremos el espacio de nombres mas a detalle), en este caso el espacio de nombres seria “std” por lo que necesitamos poner la siguiente instrucción.


using namespace std;

Por ultimo mandamos llamar (ahora que tenemos el espacio de nombres adecuado) la instrucción “cout”.


cout << “Hola Mundo HeTPro” << endl;

El programa nos quedaría de la siguiente manera:


#include<iostream>
using namespace std;
int main (void){
cout << “Hola Mundo HeTpro” << endl;
return 0;
}

Ahora podemos guarder el codigo con Ctrl+x y seleccionando que si se quieren guardar cambios.

Compilar con g++  en c/c++ y ejecutar el codigo

Una vez de regreso en la terminal y lo que procede a continuación es compliar el código. Para poder compilar el código vamos a utilizar g++ que es el compilador libre por defecto de Linux, para este caso vamos a utilizar la siguiente instrucción:


g++ -Wall –o <Nombre_del_ejecutable> <nombre_del_archivo_a_compilar>

En donde g++ es como ya se había mencionado anteriormente, el compilador, -Wall activa las banderas para visualizar warnings o errores –o es para generar el objeto, <nombre del ejecutable> es el archivo que se va a generar y <nombre del archivo a compilar> es el archivo que acabamos de escribir, por lo que en este caso nos quedaría como se muestra a continuación


g++ -Wall –o Ejemplo ejemplo01.cpp

Si nos marca algún error o warning tendríamos que revisar y buscar que esta generando el error, aunque si el código se escribió correctamente no debería de mostrar nada. Si la compilación se realiza de manera exitosa podemos ver con el comando “ls” en terminal que se ah generado un nuevo archivo que se llama “Ejemplo”. Para poder correr el archivo “Ejemplo” en nuestra terminal escribimos en la misma:


$ ./Ejemplo

Calculadora en Java

En este tutorial aprenderemos a usar la propiedad de la herencia de clases de Java mediante el pequeño ejemplo de una calculadora.

¿Qué es la herencia de clases?

La herencia de clases es la posibilidad de una clase de poder usar los atributos y métodos que ya existen en otra clase distinta, en la Programación Orientada a Objetos (POO) se hace heredando de la clase que contengan los elementos necesarios para tal fin.

La herencia está fuertemente ligada a la reutilización del código en la POO. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase.

Para poder entender mejor estos conceptos veremos un ejemplo sencillo como lo es el desarrollo de una calculadora con las 4 operaciones básicas (suma, resta, multiplicación y división). Para empezar vamos a definir nuestras clases a usar.

Como podemos observar todas las clases tienen tanto atributos como métodos iguales, esto es perfecto para usar herencia, definimos una nueva clase que contenga todos los atributos y métodos de nuestras 4 clases, a esta nueva clase la llamaremos operación y tendríamos ahora el siguiente esquema:

Como podemos observar ahora tenemos la clase Operacion la cual es una superClase porque contiene atributos y métodos que serán heredados por otras clases, y las clases Suma, Resta, Multiplicacion y division que son las subClases porque heredan atributos y métodos de la superClase Operacion.

Ahora que ya entendimos lo que es herencia vamos a implementarla, para este tutorial vamos a trabajar con el lenguaje de programación Java y el entorno de desarrollo NetBeans.

Primero implementaremos la superClase Operacion que es la que contiene los atributos y métodos a heredar

.public class Operacion { double n1; double n2; double res; char operacion; public Operacion(double n1, double n2, char operacion) { this.n1 = n1; this.n2 = n2; this.operacion = operacion; } public void mostrarResultado(){ System.out.println(this.n1+" "+this.operacion+" "+this.n2+" = "+this.res); } }

La herencia en Java (y en otros lenguajes de programación) se declara con la palabra reservada extends seguida de la clase de la cual deseamos heredar.

Para la clase Suma quedaría así:

public class Suma extends Operacion{ double suma; public Suma(double n1, double n2) { super(n1, n2, '+'); this.suma = n1 + n2; this.setRes(this.suma); } }

Resta:

public class Resta extends Operacion{ double resta; public Resta(double n1, double n2) { super(n1, n2, '-'); this.resta = n1 - n2; this.setRes(this.resta); } }

Multiplicación:

public class Multiplicacion extends Operacion{ double multi; public Multiplicacion(double n1, double n2) { super(n1, n2, '*'); this.multi = n1 * n2; this.setRes(this.multi); } }

y por último División:

public class Division extends Operacion{ double div = 0; public Division(double n1, double n2) { super(n1, n2, '/'); if(n2==0) System.out.println("No se puede dividir entre cero"); else this.div = n1 / n2; this.setRes(this.div); } }

Como podemos apreciar en las cuatro clases utilizamos la palabra reservada extends y seguida la clase de la cual se está heredando en nuestro caso Operacion, esto permite tener acceso a los métodos y atributos de esta clase, además hacemos uso del método super que hace una instancia de la superClase Operacion enviando como parámetros los números con los cuales se realizará la operación  y el símbolo de esta, luego ejecutamos la operación y enviamos el resultado a la superClase.

En nuestro programa principal instanciamos a cada una de las clases para realizar las operaciones y hacemos uso del método de la superClase Operacion para mostrar los resultados.

double n1 = 10; double n2 = 5; //suma Suma sum = new Suma(n1,n2); sum.mostrarResultado(); //resta Resta res = new Resta(n1,n2); res.mostrarResultado(); //multiplicacion Multiplicacion mul = new Multiplicacion(n1,n2); mul.mostrarResultado(); //division Division div = new Division(n1,n2); div.mostrarResultado();

Como resultado obtenemos el resultado de las operaciones y las podemos observar en la consola de salida de NetBeans, así que la herencia funciona correctamente.

Puedes encontrar el código de este ejemplo en mi repositorio de GitHub.