¿Qué es Julia?
Se trata de un lenguaje de programación parecido a R, diseñado para fines científicos (matemáticas, estadística,etc.). Descarga: Julia Lang
Posee un REPL, basta teclear julia en la terminal y aparecerá.
Julia en ejemplos
Guardar un archivo con la extensión *.jl llamado ejemplos.jl
0.Ejecutar código
julia ejemplos.jl
1. Imprimir un mensaje
print("La programación parece ser muy sencilla...")
2. Definir variables y constantes
variable_entera=36
const CONSTANTE=200
variable_cadena="La generación de los 80's era la que tenia la mejor música"
3. Iniciar instrucciones
begin
#instrucciones del programa
end
4. Definir una función
#esta no devuelve nada
function imprimirMensaje(){
print("Julia es un lenguaje similar a R")
}
function doble(n){
return n*n
}
5. Definir y recorrer un vector
vect=[] #vector vacío
vect=[32,54,10,45] #posiciones 1: 32, 2:54, 3:10, 4:45
for v in vector
println(v)
end
6. Condiciones
vect=["Juan","Paco","Maria","Ernesto","Rosa"]
#imprimira Paco
for v in vector
if v == "Paco"
println(v)
end
end
7. Ejecutar un comando del sistema run(comando)
#en este caso un comando de Linux
run(`clear`) #limpiar pantalla
8. Try-Catch
try
funcion_noexistente()
catch e
println("el error es: ",e)
end
9. Introducir datos
function entrada(prompt::String="")
print(prompt)
chomp(readline())
end
begin
run(`clear`)
nombre=entrada("¿Como te llamas?:")
edad=int(entrada("¿Cuantos años tienes?:"))
println("Hola ",nombre," tienes ",edad, " años")
print("tipos: nombre[",typeof(nombre),"] - edad[",typeof(edad),"]")
end
sábado, 23 de agosto de 2014
domingo, 10 de agosto de 2014
Scala ... ejemplos sencillos no. 6
Tipado dinámico de Scala
Scala es un lenguaje que combina la programación orientada a objetos y la funcional,además es de tipado estático, esto quiere decir que se debe tener cuidado a la hora de definir variables (su tipo).
Si defines una variable es necesario hacer uso de var y val.
var nombre:String="Alfonso"
val nombre_estatico:String="Mariana"
Si tratamos de reasignar valores obtendremos:
nombre="Alfonso Quaron" //es válido,por que usamos var
nombre_estatico="Mariana Alcantara" //no es válido, usamos val
Ahora creamos dos clases:
class Base(val nombre:String=null){}
class SubClase(override val nombre:String=null) extends Base(nombre){}
object Scalar{
def main(args:Array[String]):Unit={
val base=new Base() //se puede tomar como null
val sub=new SubClase()
//si trato de de reasignarl valor al miembro nombre ocurrirá un error
base.nombre="Base"
sub.nombre="SubClase"
}
}
Entonces lo correcto sería:
val base=new Base("Base")
val sub=new SubClase("SubClase")
Console.println(base.nombre)
Console.println(sub.nombre)
Resultado:
Base
SubClase
Lenguajes como Python , Ruby y Groovy permiten reasignar valores a las variables.
En Python:
dato="Las serpientes se arrastran por el piso"
print type(dato)
#ahora cambiamos su 'tipo' y valor
dato=12.90
print type(dato)
En Ruby:
dato="Un diamante en bruto"
print dato.class
#ahora cambiamos su 'tipo' y valor
dato=23.0
print dato.class
En Groovy:
dato="Es un ambiente muy Groovy"
dato instanceof String //nos da true
dato=123
dato instanceof Integer //nos da true
En conclusión tenemos:
Tipado dinámico
Tipado estático
Scala es un lenguaje que combina la programación orientada a objetos y la funcional,además es de tipado estático, esto quiere decir que se debe tener cuidado a la hora de definir variables (su tipo).
Si defines una variable es necesario hacer uso de var y val.
var nombre:String="Alfonso"
val nombre_estatico:String="Mariana"
Si tratamos de reasignar valores obtendremos:
nombre="Alfonso Quaron" //es válido,por que usamos var
nombre_estatico="Mariana Alcantara" //no es válido, usamos val
Ahora creamos dos clases:
- Base
- Subclase
class Base(val nombre:String=null){}
class SubClase(override val nombre:String=null) extends Base(nombre){}
object Scalar{
def main(args:Array[String]):Unit={
val base=new Base() //se puede tomar como null
val sub=new SubClase()
//si trato de de reasignarl valor al miembro nombre ocurrirá un error
base.nombre="Base"
sub.nombre="SubClase"
}
}
Entonces lo correcto sería:
val base=new Base("Base")
val sub=new SubClase("SubClase")
Console.println(base.nombre)
Console.println(sub.nombre)
Resultado:
Base
SubClase
Lenguajes como Python , Ruby y Groovy permiten reasignar valores a las variables.
En Python:
dato="Las serpientes se arrastran por el piso"
print type(dato)
#ahora cambiamos su 'tipo' y valor
dato=12.90
print type(dato)
En Ruby:
dato="Un diamante en bruto"
print dato.class
#ahora cambiamos su 'tipo' y valor
dato=23.0
print dato.class
En Groovy:
dato="Es un ambiente muy Groovy"
dato instanceof String //nos da true
dato=123
dato instanceof Integer //nos da true
En conclusión tenemos:
Tipado dinámico
- Se permite reasignar valores
- El tipo de dato no es fijo
Tipado estático
- No se permite reasignar valores
- El tipo de dato no debe cambiar
domingo, 3 de agosto de 2014
Programando en Perl ... no. 6
Ejercicios básicos
La única forma para aprender programación es la practica continua. En esta ocasión se usará Perl para realizar estos ejercicios.
1. Hacer un programa que determine si un número es par o impar. Un número par es un entero que puede ser dividido entre dos y su residuo nos da cero.
#ejecutar: perl par.pl
use strict;
use warnings;
#declaramos la variable numero
my ($numero);
print "Introduce un número:";
$numero=<STDIN>;
chomp($numero);#quitamos los espacios
if($numero%2==0){
print "El número ",$numero," es par\n";
}else{
print "El número ",$numero," es impar\n";
}
2. Hacer un programa que determine si un número (A) es múltiplo de otro número (B).
#ejecutar: perl multiplo.pl
use strict;
use warnings;
#declaramos los dos números
my ($a,$b);
print "Introduce número (A): ";
$a=<STDIN>;
chomp($a);
print "Introduce número (B):";
$b=<STDIN>;
chomp($b);
#determinamos si son o no múltiplos
if($a>$b){
if($a%b==0){
print "(A) ",$a," es multiplo de (B) ",$b,"\n";
}else{
print "(A) ",$b," no es multiplo de (B) ",$b, "\n";
}
}else{
if($b%$a==0){
print "(A) ",$a," es multiplo de (B) ",$b,"\n";
}else{
print "(A) ",$a," no es multiplo de (B) ",$b,"\n";
}
}
3.Hacer un programa que determine el mayor, el mediano y el menor de tres números.
#ejecutar: perl determinar.pl
use warnings;
use strict;
#creamos una constante 'booleana'
use constant VERDADERO => 1;
my($a,$b,$c,$continuar);
do{
print "\n[Número mayor, mediano y menor de tres números]\n";
print "Introduce número (A):";
$a=<STDIN>;
chomp($a);
print "Introduce número (B):";
$b=<STDIN>;
chomp($b);
print "Introduce número (C):";
$c=<STDIN>;
chomp($c);
if($a>$b && $a>$c){
print "el numero A ",$a," es el mayor\n";
if($b>$c){
print "el numero B ",$b," es el mediano\n";
print "el numero C ",$c," es el menor\n";
}else{
print "el numero C ",$c," es el mediano\n";
print "el numero B ",$b," es el menor\n";
}
}else{
if($b>$a && $b>$c){
print "el numero B ",$b," es el mayor\n";
if($a>$c){
print "el numero A ",$a," es el mediano\n";
print "el numero C ",$c," es el menor\n";
}else{
print "el numero C ",$c," es el mediano\n";
print "el numero A ",$a," es el mediano\n";
}
}else{
print "el numero C ",$c," es el mayor\n";
if($a>$b){
print "el numero A ",$a," es el mediano\n";
print "el numero B ",$b," es el menor\n";
}else{
print "el numero B ",$b," es el mediano\n";
print "el numero A ",$a," es el menor\n";
}
}
}#fin else
print "Desea continuar? (Si->s , No->n):";
$continuar=<STDIN>;
chomp($continuar);
if($continuar eq 'n'){
last;#alternativa a 'break'
}
}while(VERDADERO);
4. Hacer un programa que determine el mayor de cinco números. En vez de definir cinco variables, definimos un vector de cinco elementos.
#ejecutar: perl mayor.pl
use strict;
use warnings;
use constant MAX => 5;
#definimos las variables necesarias
my(@numeros,$mayor,$tam);
#introducimos cinco números
for (my $i = 0; $i < MAX; $i++) {
print "Introduce número[ ",($i+1),"]:";
$numeros[$i]=<STDIN>;
chomp($numeros[$i]);
}
$tam = scalar (@numeros);#obtenemos tamaño del vector
$mayor=0;
#determinamos el número mayor
for (my $j = 0; $j < $tam; $j++) {
if($mayor<$numeros[$j]){
$mayor=$numeros[$j];
}
}
print "El número ",$mayor," es el mayor\n";
Eso es todo por hoy.
La única forma para aprender programación es la practica continua. En esta ocasión se usará Perl para realizar estos ejercicios.
1. Hacer un programa que determine si un número es par o impar. Un número par es un entero que puede ser dividido entre dos y su residuo nos da cero.
#ejecutar: perl par.pl
use strict;
use warnings;
#declaramos la variable numero
my ($numero);
print "Introduce un número:";
$numero=<STDIN>;
chomp($numero);#quitamos los espacios
if($numero%2==0){
print "El número ",$numero," es par\n";
}else{
print "El número ",$numero," es impar\n";
}
2. Hacer un programa que determine si un número (A) es múltiplo de otro número (B).
#ejecutar: perl multiplo.pl
use strict;
use warnings;
#declaramos los dos números
my ($a,$b);
print "Introduce número (A): ";
$a=<STDIN>;
chomp($a);
print "Introduce número (B):";
$b=<STDIN>;
chomp($b);
#determinamos si son o no múltiplos
if($a>$b){
if($a%b==0){
print "(A) ",$a," es multiplo de (B) ",$b,"\n";
}else{
print "(A) ",$b," no es multiplo de (B) ",$b, "\n";
}
}else{
if($b%$a==0){
print "(A) ",$a," es multiplo de (B) ",$b,"\n";
}else{
print "(A) ",$a," no es multiplo de (B) ",$b,"\n";
}
}
3.Hacer un programa que determine el mayor, el mediano y el menor de tres números.
#ejecutar: perl determinar.pl
use warnings;
use strict;
#creamos una constante 'booleana'
use constant VERDADERO => 1;
my($a,$b,$c,$continuar);
do{
print "\n[Número mayor, mediano y menor de tres números]\n";
print "Introduce número (A):";
$a=<STDIN>;
chomp($a);
print "Introduce número (B):";
$b=<STDIN>;
chomp($b);
print "Introduce número (C):";
$c=<STDIN>;
chomp($c);
if($a>$b && $a>$c){
print "el numero A ",$a," es el mayor\n";
if($b>$c){
print "el numero B ",$b," es el mediano\n";
print "el numero C ",$c," es el menor\n";
}else{
print "el numero C ",$c," es el mediano\n";
print "el numero B ",$b," es el menor\n";
}
}else{
if($b>$a && $b>$c){
print "el numero B ",$b," es el mayor\n";
if($a>$c){
print "el numero A ",$a," es el mediano\n";
print "el numero C ",$c," es el menor\n";
}else{
print "el numero C ",$c," es el mediano\n";
print "el numero A ",$a," es el mediano\n";
}
}else{
print "el numero C ",$c," es el mayor\n";
if($a>$b){
print "el numero A ",$a," es el mediano\n";
print "el numero B ",$b," es el menor\n";
}else{
print "el numero B ",$b," es el mediano\n";
print "el numero A ",$a," es el menor\n";
}
}
}#fin else
print "Desea continuar? (Si->s , No->n):";
$continuar=<STDIN>;
chomp($continuar);
if($continuar eq 'n'){
last;#alternativa a 'break'
}
}while(VERDADERO);
4. Hacer un programa que determine el mayor de cinco números. En vez de definir cinco variables, definimos un vector de cinco elementos.
#ejecutar: perl mayor.pl
use strict;
use warnings;
use constant MAX => 5;
#definimos las variables necesarias
my(@numeros,$mayor,$tam);
#introducimos cinco números
for (my $i = 0; $i < MAX; $i++) {
print "Introduce número[ ",($i+1),"]:";
$numeros[$i]=<STDIN>;
chomp($numeros[$i]);
}
$tam = scalar (@numeros);#obtenemos tamaño del vector
$mayor=0;
#determinamos el número mayor
for (my $j = 0; $j < $tam; $j++) {
if($mayor<$numeros[$j]){
$mayor=$numeros[$j];
}
}
print "El número ",$mayor," es el mayor\n";
Eso es todo por hoy.
miércoles, 30 de julio de 2014
Programando en C++ ... no. 4
"Siempre programo como si la persona que mantendrá mi código fuera un psicópata que sabe donde vivo."
::Martin Golding::
Ejercicios de programación
1. En este ejemplo vamos a crear y usar un archivo de cabecera (se guardan con la extensión *.h). Ahí escribiremos las variables, constantes y funciones.
//archivo: funciones.h
#ifndef __CABECERA_H
#define __CABECERA_H
#define MAX 3 //podemos crear una variable constante con valor de 3
#define PULSACIONES (e) (220-e)/15 //una función para calcular las pulsaciones de una persona
using std::cout;
using std::endl;
//también podemos escribir funciones de manea tradicional
void mensaje(){
cout<<"Este es un simple mensaje"<<endl;
}
#endif /*__CABECERA_H*/
¿Cómo se puede usar?
Creamos un archivo llamado prueba.cpp y declaramos el archivo de cabecera funciones.h.
//archivo:prueba.cpp
#include "funciones.h"
#include "iostream"
using namespace std;
int main(){
int numeros[MAX];
numeros[0]=9;
numeros[1]=21;
numeros[2]=54; //al tratar de recorrer el vector provoca un bug
mensaje();
//obtener pulsaciones de una persona de 43 años de edad
cout<<"Pulsaciones: "<<PULSACIONES(43)<<endl;
return 0;
}
2. Al programar en C++ tenemos la ventaja de la programación funcional y la orientada a objetos, en este ejemplo escribiremos:
- Un archivo (funcional.cpp) que usa funciones para obtener el perímetro y área de un circulo
- Un archivo de cabecera que contendrá las funciones: perimetro() y area()
- Otro archivo (objeto.cpp) que instancia una clase que posee los métodos para obtener lo mismo
#ifndef __CABECERA_H
#define __CABECERA_H
#define PI 3.14159
double perimetro(double d){
return PI*d;
}
double area(double r){
return PI*(r*r);
}
#endif /*__CABECERA_H*/
//funcional.cpp
#include "iostream"
#include "funciones.h"
using namespace std;
int main(){
double radio=0.0,diametro=0.0;
cout<<"Introduce radio: ";
cin>>radio;
cout<<"Introduce diametro: ";
cin>>diametro;
cout<<"diametro: "<<perimetro(diametro)<<" , area: "<<area(radio)<<endl;
return 0;
}
//objeto.cpp
#include "iostream"
using namespace std;
class Circulo{
private:
double radio;
double diametro;
public:
static const double PI=3.1459;
Circulo(){cout<<"objeto circulo creado"<<endl;}
virtual ~Circulo(){cout<<"objeto circulo destruido"<<endl;}
void setRadio(double r){this->radio=r;}
double getRadio(){return this->radio;}
void setDiametro(double d){this->diametro=d;}
double getDiametro(){return this->diametro;}
double calc_diametro(){return this->diametro*PI;}
double calc_area(){return PI*(this->radio*this->radio);}
};
int main(){
Circulo circulo=Circulo();
double radio=0.0,diametro=0.0;
cout<<"Introduce radio: "<<endl;
cin>>radio;
cout<<"Introduce diametro: "<<endl;
cin>>diametro;
circulo.setRadio(radio);
circulo.setDiametro(diametro);
cout<<"diametro: "<<circulo.calc_diametro()<<" , area: "<<circulo.calc_area()<<endl;
return 0;
}
Esto esto por hoy.
Links
http://foro.elhacker.net/programacion_c/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
miércoles, 23 de julio de 2014
Groovy ... en ejemplos no. 3
Vamos hacer un sencillo ejemplo, consiste en simular el lanzamiento de 3 monedas, con dos caras: ÁGUILA y SOL.
Tres jóvenes lanzan (cada uno) una moneda, si todas son iguales nadie ganará. El ganador es quien tenga la moneda que cae con un resultado distinto a las otras dos.
Ejemplo.
Una vez entendido el problema se procede a definir las variables y funciones.
Necesito definir a la moneda con dos caras:
def moneda=["SOL","AGUILA"]# índice 0 :SOL , índice 1: AGUILA
También necesito una forma de generar un resultado aleatorio (SOL o ÁGUILA), para ello nenecitola clase Random de Java
import java.util.Random
También necesito tres variables para guardar los resultados:
def juan=""
def miguel=""
def omar=""
¿Cómo genero al guardo el resultado ?
def juan=moneda[new Random()nextInt(2)] //para que sea de 0 a 1
Finalmente tenemos: aleatorio.groovy
import java.util.Random
//para limpiar pantalla, solo plataformas Linux
println "clear".execute().text
def moneda=["SOL","AGUILA"]
def juan=""
def miguel=""
def omar=""
println "Turno de Juan"
juan=moneda[new Random().nextInt(2)]
println "$juan"
println "Turno de Miguel:"
miguel=moneda[new Random().nextInt(2)]
println "$miguel"
println "Turno de Omar:"
omar=moneda[new Random().nextInt(2)]
println "$omar"
def ganador=""
if(juan.equals(miguel) && juan.equals(omar)){
ganador="Las tres monedas son iguales, No hay ganador"
}else if(!juan.equals(miguel) && !juan.equals(omar)){
ganador="El ganador es Juan"
}else if(!miguel.equals(omar) && !miguel.equals(juab)){
ganador="El ganador es Miguel"
}else{
ganador="El ganador es Omar"
}
println "$ganador"
Listo.
Tres jóvenes lanzan (cada uno) una moneda, si todas son iguales nadie ganará. El ganador es quien tenga la moneda que cae con un resultado distinto a las otras dos.
Ejemplo.
Juan | Miguel | Omar | Ganador
ÁGUILA SOL ÁGUILA Miguel
Juan | Miguel | Omar | Ganador
SOL SOL SOL Nadie gana, las monedas son iguales
Una vez entendido el problema se procede a definir las variables y funciones.
Necesito definir a la moneda con dos caras:
def moneda=["SOL","AGUILA"]# índice 0 :SOL , índice 1: AGUILA
También necesito una forma de generar un resultado aleatorio (SOL o ÁGUILA), para ello nenecitola clase Random de Java
import java.util.Random
También necesito tres variables para guardar los resultados:
def juan=""
def miguel=""
def omar=""
¿Cómo genero al guardo el resultado ?
def juan=moneda[new Random()nextInt(2)] //para que sea de 0 a 1
Finalmente tenemos: aleatorio.groovy
import java.util.Random
//para limpiar pantalla, solo plataformas Linux
println "clear".execute().text
def moneda=["SOL","AGUILA"]
def juan=""
def miguel=""
def omar=""
println "Turno de Juan"
juan=moneda[new Random().nextInt(2)]
println "$juan"
println "Turno de Miguel:"
miguel=moneda[new Random().nextInt(2)]
println "$miguel"
println "Turno de Omar:"
omar=moneda[new Random().nextInt(2)]
println "$omar"
def ganador=""
if(juan.equals(miguel) && juan.equals(omar)){
ganador="Las tres monedas son iguales, No hay ganador"
}else if(!juan.equals(miguel) && !juan.equals(omar)){
ganador="El ganador es Juan"
}else if(!miguel.equals(omar) && !miguel.equals(juab)){
ganador="El ganador es Miguel"
}else{
ganador="El ganador es Omar"
}
println "$ganador"
Listo.
domingo, 20 de julio de 2014
Programando en Ceylon ... no. 3
Existe una herramienta para aprender a programar llamada PSeInt, en esta ocasión vamos a realizar ejemplos de programación básica y comparando esos códigos en Ceylon.
1. Se requiere obtener la talla de una persona sabiendo que su peso es de 54.5 kg y su índice de masa corporal es de 22.1.
Fórmulas:
imc=peso/(talla*talla)
peso=(talla*talla)*imc
talla=sqrt(peso/imc)
Usando PSeInt escribimos:
Y obtenemos:
Ahora en Ceylon:
obtenerTalla.ceylon
void run(){
variable Float peso=54.5;
variable Float talla=0.0;
variable Float imc=22.1;
function sqrt(Float x) => x^0.5; //para obtener la raíz
talla=sqrt(peso/imc);
print("talla: ``talla`` ");
}
Compilamos y ejecutamos:
2. Obtener un bono de ventas, teniendo en cuenta que el objetivo (de ventas) debe ser igual o mayor a 300.
Obtenemos:
En Ceylon:
obtenerBono.ceylon
void run(){
variable Integer ventas=320;
variable Integer objetivo=300;
variable String mensaje="";
variable Float bono=0.0;
if(ventas>=objetivo){
bono=0.045*(ventas-objetivo);
mensaje="Exito";
}else{
bono=0.0;
mensaje="Fracaso";
}
print(" ``mensaje`` , bono obtenido: ``bono`` ");
}
Compilamos y ejecutamos:
3. Un menú para elegir una película. Si es mayor de edad permitirá mostrar el menú.
Código:
Proceso obtener_opcion
Definir opc Como Entero;
Definir edad Como Entero;
Definir permiso Como Logico;
Definir aviso Como Caracter;
aviso="";
Escribir "¿Cuantos años tienes?";
Leer edad;
Si edad>=18 Entonces
permiso=Verdadero;
Sino
permiso=Falso;
Fin Si
Si permiso Entonces
Escribir "Cartelera Cine de Terror";
Escribir "1. Masacre en Texas";
Escribir "2. La isla de la bruja";
Escribir "3. El misterio del valle de las sombras";
Escribir "Elije una: ";
Leer opc;
Segun opc Hacer
1:
aviso="Debes traer ropa interior de sobra ... no es broma";
2:
aviso="Aceptable, si no quieres dormir varios días";
3:
aviso="Una opción bastante recomendable... para ir al psiquiatra";
De Otro Modo:
aviso="Esa opcion es invalida";
Fin Segun
FinSi
Escribir aviso;
FinProceso
Obtenemos:
En Ceylon:
obtenerOpcion.ceylon
void run(){
variable String aviso="";
variable Boolean permiso=false;
print("Cuantos años tienes?");
String edadStr=process.readLine();
Integer? _edad=parseInteger(edadStr);
if(exists _edad){
Integer edad=_edad;
if(edad>=18){
permiso=true;
}else{
permiso=false;
}
}
if(permiso){
print("Cartelera Cine de Terror");
print("1. Masacre en Texas");
print("2. La isla de la bruja");
print("3. El misterio del valle de las sombras");
print("Elije una: ");
String opcStr=process.readLine();
Integer? _opc=parseInteger(opcStr);
if(exists _opc){
Integer opcion=_opc;
switch(opcion)
case (1){aviso="Debes traer ropa interior de sobra ... no es broma";}
case (2){aviso="Aceptable, si no quieres dormir varios días";}
case (3){aviso="Una opción bastante recomendable... para ir al psiquiatra";}
else{aviso="Esa opcion es invalida";}
}
}
print("``aviso``");
}
Compilamos y ejecutamos:
Espero les sirva.
1. Se requiere obtener la talla de una persona sabiendo que su peso es de 54.5 kg y su índice de masa corporal es de 22.1.
Fórmulas:
imc=peso/(talla*talla)
peso=(talla*talla)*imc
talla=sqrt(peso/imc)
Usando PSeInt escribimos:
Y obtenemos:
Ahora en Ceylon:
obtenerTalla.ceylon
void run(){
variable Float peso=54.5;
variable Float talla=0.0;
variable Float imc=22.1;
function sqrt(Float x) => x^0.5; //para obtener la raíz
talla=sqrt(peso/imc);
print("talla: ``talla`` ");
}
Compilamos y ejecutamos:
2. Obtener un bono de ventas, teniendo en cuenta que el objetivo (de ventas) debe ser igual o mayor a 300.
Obtenemos:
En Ceylon:
obtenerBono.ceylon
void run(){
variable Integer ventas=320;
variable Integer objetivo=300;
variable String mensaje="";
variable Float bono=0.0;
if(ventas>=objetivo){
bono=0.045*(ventas-objetivo);
mensaje="Exito";
}else{
bono=0.0;
mensaje="Fracaso";
}
print(" ``mensaje`` , bono obtenido: ``bono`` ");
}
Compilamos y ejecutamos:
3. Un menú para elegir una película. Si es mayor de edad permitirá mostrar el menú.
Código:
Proceso obtener_opcion
Definir opc Como Entero;
Definir edad Como Entero;
Definir permiso Como Logico;
Definir aviso Como Caracter;
aviso="";
Escribir "¿Cuantos años tienes?";
Leer edad;
Si edad>=18 Entonces
permiso=Verdadero;
Sino
permiso=Falso;
Fin Si
Si permiso Entonces
Escribir "Cartelera Cine de Terror";
Escribir "1. Masacre en Texas";
Escribir "2. La isla de la bruja";
Escribir "3. El misterio del valle de las sombras";
Escribir "Elije una: ";
Leer opc;
Segun opc Hacer
1:
aviso="Debes traer ropa interior de sobra ... no es broma";
2:
aviso="Aceptable, si no quieres dormir varios días";
3:
aviso="Una opción bastante recomendable... para ir al psiquiatra";
De Otro Modo:
aviso="Esa opcion es invalida";
Fin Segun
FinSi
Escribir aviso;
FinProceso
Obtenemos:
En Ceylon:
obtenerOpcion.ceylon
void run(){
variable String aviso="";
variable Boolean permiso=false;
print("Cuantos años tienes?");
String edadStr=process.readLine();
Integer? _edad=parseInteger(edadStr);
if(exists _edad){
Integer edad=_edad;
if(edad>=18){
permiso=true;
}else{
permiso=false;
}
}
if(permiso){
print("Cartelera Cine de Terror");
print("1. Masacre en Texas");
print("2. La isla de la bruja");
print("3. El misterio del valle de las sombras");
print("Elije una: ");
String opcStr=process.readLine();
Integer? _opc=parseInteger(opcStr);
if(exists _opc){
Integer opcion=_opc;
switch(opcion)
case (1){aviso="Debes traer ropa interior de sobra ... no es broma";}
case (2){aviso="Aceptable, si no quieres dormir varios días";}
case (3){aviso="Una opción bastante recomendable... para ir al psiquiatra";}
else{aviso="Esa opcion es invalida";}
}
}
print("``aviso``");
}
Compilamos y ejecutamos:
Espero les sirva.
sábado, 19 de julio de 2014
Un vistazo a ... Julia
En está ocasión vamos hacer algunos ejemplos con Julia un lenguaje que a primera vista parece tomar inspiración de Python.
Instalación:
# Descargamos la última versión https://julialang.org/downloads/ # Desempaquetamos tar -xvzf julia-1.8.2-linux-x86_64.tar.gz # Movemos a la carpeta /opt sudo mv julia-1.8.2/ /opt/ # Creamos un enlace sudo ln -s /opt/julia-1.8.2/bin/julia /usr/local/bin/julia # Verificamos la instalación julia
¿Cómo guardo un programa en Julia?
Con la extensión *.jl
¿Cómo ejecutó el programa?
julia miPrograma.jl
Este lenguaje posee un REPL.
Teclea una operación, por ejemplo una suma.
1. Mostrar una cadena
#esto es un comentario
cadena="Hola esta es una simple cadena"
println("contenido de la cadena: ",cadena)
2. Comparar dos cadenas
cadena="cL4v3S3cR3t4"
if cadena == "claveSecreta"
println("Correcto");
else
println("Verifica");
end
3. Aqui obtenemos el consumo de combustible, teniendo en cuenta que la velocidad es de 120
begin
velocidad=120
consumo=0.0
if velocidad>80
consumo=10.0;
elseif velocidad>100
consumo=12.0;
elseif velocidad>120
consumo=15.0;
else
consumo=0.0;
end
println("consumo: ",float(consumo),"\n");
end
4. Obtener salario bruto y neto (hacemos uso del manejo de excepciones con try-catch)
#variables de entrada
horas=240
extras=0
tasa=0.34
#lo que queremos obtener
salarioBruto=0.0
salarioNeto=0.0
try
if horas<=38
extras=0
else
extras=horas-38
horas=38
end
salarioBruto=horas*tasa+extras*tasa*1.5
if salarioBruto<=300
salarioNeto=salarioBruto
else
salarioNeto=salarioBruto*0.9
end
if salarioBruto == salarioNeto
println("salario bruto y neto: ",salarioBruto)
else
println("salario bruto: ",salarioBruto)
println("salario neto: ",salarioNeto)
end
catch e
println("error: ",e)
end
Suscribirse a:
Entradas (Atom)
El lenguaje de programación C
El mítico lenguaje de programación C sigue siendo el lenguaje que definió todo. Y con todo nos referimos a todo lo referente a la inf...
-
Progress ABL es un lenguaje de programación vinculado al entorno Progress OpenEdge , su base de datos y las utilidades que lo rodean. Es s...
-
Claude Code es una herramienta de inteligencia artificial creada por Anthropic que funciona directamente en la terminal. Sirve para acele...
-
Ionic es un framework que permite crear aplicaciones móviles híbridas. Éstas aplicaciones son las que emplean tecnologías como HTML, CSS ...
Etiquetas
- .NET
- 100
- 2026
- abl
- abstract
- abstractas
- activemq
- ada
- agente
- agile
- akka
- algoritmos
- almacenados
- alternativa
- android
- angular
- angularjs
- apache
- apache-camel
- apache-mesos
- apache-poi
- apex
- api
- appserv
- aprender
- aprender java
- aprender jsf
- aprender python
- aprendizaje
- area
- args
- aserciones
- asm
- asp
- assembly
- assert
- automatización
- awk
- aws
- ayuda
- azure
- backend
- ballerina
- base de datos
- bases de datos
- bash
- bat
- bd
- beam
- beef
- bigquery
- biotipo
- bitacora
- bitcoin
- bleam
- blockchain
- blog
- bq
- bucket
- bundle
- c
- c#
- c++
- c3
- calculadora
- calculo
- camel
- case
- cassandra
- celsius
- ceylon
- cgi
- charp
- charts
- chatgpt
- cherrypy
- chino
- cibersecurity
- clang
- clases
- claude code
- cli
- cliente
- clojure
- closures
- cloud
- cmd
- cmd.bat
- coalesce
- cobol
- codeblocks
- codeigniter
- codes
- código
- códigos
- comando
- comandos
- commit
- comparativa
- compartir
- compilador
- compile
- composer
- comprobación
- computación
- computing
- conceptos
- concurnas
- concurrente
- condicionales
- conectividad
- configuration
- consejos
- const
- constantes
- consultas
- contenedores
- contenedores web
- control de versiones
- conversion
- conversor
- convertidor
- copilot
- core
- corsera
- couchdb
- cpan
- cplus
- cpp
- cpp-httplib
- crear
- cripto
- criptomoneda
- crow
- CrowdStrike
- crystal
- csharp
- cshtml
- css
- css3
- csv
- cte
- curso
- cygwin
- d
- dancer2
- dapper
- datastage
- datos
- deepseek
- delphi
- deploy
- desarrollo
- determinar
- dev c++
- developer
- devops
- días
- directivas
- disparejo
- distribuido
- django
- dlang
- doc
- docker
- docker-swarm
- dockerfile
- document
- documentación
- documental
- dotnet
- driver
- dsl
- dylan
- easyphp
- eclipse
- eclipse foundation
- eclipse y scala
- economica
- editor
- eip
- ejb
- ejecutar
- ejemplos
- ejemplos cpp
- ejemplos de csharp
- ejemplos de scala
- ejemplos java
- ejemplos python
- ejmeplo
- elixir
- elixir.
- en línea
- encapsulación
- ensamblador
- entityframework
- enum
- erlang
- error
- errores
- es6
- escribir
- esproc
- esprocsqpl
- estructuras
- ethereum
- euler
- excel
- excepciones
- expando
- experience api
- export
- express
- externa
- f#
- faces
- fahrenheit
- feliz año
- fetch
- filosofía
- firebase
- flask
- foreach
- framework
- fsharp
- funcional
- funciones
- functions
- futuro
- gcc
- gcp
- geany
- gem
- gemfile
- generador de proyectos
- genie
- gestor de proyectos
- github
- glassfish
- gleam
- gnu
- go
- go golang
- golang
- google web toolkit
- gosu
- graalvm
- gradle
- grain
- grapes
- graphql
- graven
- grok
- grooscript
- groovy
- groovyeConsole
- grpc
- gson
- gui
- gwt
- gwtext
- hashicorp
- hashmap
- haskell
- haxe
- headers
- helidon
- helm
- herencia
- hibernate
- hola
- hola en ceylon
- horoscopo
- HTA
- html
- html5
- http
- http-server
- http/2
- ia
- iaas
- iac
- ibm
- IDE
- ide scala
- if
- ifnull
- imagen
- imc
- import
- importar
- ingeniería
- iniciar glassfish
- iniciar tomcat
- inicio
- inicio en ceylon
- IntelliJ IDEA pycharm
- interface
- interfaces
- interfaz
- interna
- interoperabilidad
- interprete
- interview
- inversión de control
- inyección de dependencias
- ionic
- ios
- jabaco
- jai
- jakartaee
- java
- java swing
- java y ceylon
- JAVA_HOME
- javadoc
- javaee
- javascript
- javaserver
- jax-rs
- jaxb
- jdbc
- jdbi
- jdk
- jdk8
- jee
- jpa
- jpql
- jquery
- jre
- jruby
- jscript
- jsf
- jsni
- json
- juego
- julia
- jvm
- jvm y ceylon
- jython
- k8s
- kafka
- kanban
- katas
- kate
- koltin
- kotlin
- ktor
- kubectl
- kubernetes
- la path
- langchain
- langchain4j
- laravel
- learn
- lectura
- lenguaje
- lenguaje scala
- lenguajes
- let
- leyes
- librería
- libro
- linq
- linux
- list
- lista
- listas
- livescript
- llm
- llvm
- logger
- lua
- macro
- major
- mapas
- mariadb
- maven
- maven y eclipse
- mensajería
- mensajes
- menú
- mercurial
- messagebox
- metaClass
- micronaut
- microsoft
- mingw64
- minilux
- minimal api
- mix
- mobile
- modularidad
- módulo
- mojo
- mojolicious
- mongo
- mongodb
- mono
- monodevelop
- moonbit
- ms-dos
- mu
- mulesoft
- mvc
- mybatis
- mysql
- n8n
- native images
- neo4j
- netbeans
- nexus
- ng
- nicon notify
- nimrod
- nlog
- node
- nodejs
- nomad
- nosql
- notificaciones
- npm
- nube
- nuevo
- nuget
- nullable
- nullif
- numericas
- ocaml
- okhttp3
- ollama
- online
- openai
- openclaw
- opencode
- opendylan
- openedge
- operaciones
- oracel
- oracle
- orientación a objetos
- orm
- otp
- owasp
- paas
- paas iaas
- package
- packages
- padrino
- paradigma
- pascal
- path groovy
- path java
- patrones de coincidencia
- patrones de diseño
- pattern matching
- pdf-parser
- perl
- phoenix
- php
- pl/1
- plot
- plsql
- pom.xml.build.gradle
- poo
- powershell
- pregunta
- problema
- problemas al ejecutar programa en ceylon
- procedimientos
- procedures
- processs api
- programa
- programacion
- programación
- programador
- programadores
- programar
- programas
- programas java
- programming
- progress
- prompt engineering
- proto
- protobuff
- protocolos
- proyectos maven
- prueba
- pseint
- pubsub
- pulsaciones
- pyramid
- python
- pyzenity
- quarkus
- questions
- r
- rabbitmq
- reactiva
- rebar3
- record
- recursos
- regex
- regiones
- remix
- repl
- replace
- repositorios
- REST
- RESTEasy
- reverse
- romanos
- ruby
- run
- rust
- ruta
- saas
- sanic
- sap
- sas
- sbt
- scala
- scottplot
- scripting
- scripts
- scrum
- sdkman
- security
- seguridad
- semántica
- sentencias
- serilog
- servidor
- shell
- show
- simplej
- sinatra
- singleton
- sintaxis
- sitios
- slim
- sms
- smslib
- soap
- socket.io
- solidity
- solución
- spark
- spl
- spring
- spring framework
- spring-boot
- spyder
- sql
- standard
- storage
- stored
- strawberry
- struts
- style
- svn
- swagger
- swift
- symfony
- system
- system api
- tapestry
- tarot
- tdd
- técnicas
- terminal
- terraform
- the maven integration requires that eclipse be running in a jdk
- tiempo
- tips
- tomcat
- top-down
- tornadoweb
- trailer
- tratamiento xml
- triggers
- turbogears
- tutoriales
- type
- typescript
- udemy
- udf
- unitarias
- unsupported
- usar jdk
- uso
- uwamp
- variables
- vba
- vbscript
- ventanas
- verificar
- version
- version_52.0
- versiones
- vertx
- vibecoding
- videojuegos
- vistazo
- visual code
- visual csharp
- visual studio
- vite
- vscode
- vulnerabilidades
- wampserver
- wasm
- web
- web2pybottle
- webapi
- webassembly
- webhooks
- websharper
- websocket
- wildfly
- window
- windows
- windows-services
- wisp
- work-services
- wsl
- WSO2
- xampp
- xml
- xunit
- yaml
- youtube
- zenity
Archivo del blog
-
▼
2026
(50)
- ► septiembre (4)
-
►
2025
(83)
- ► septiembre (7)
-
►
2024
(58)
- ► septiembre (1)
-
►
2023
(12)
- ► septiembre (1)
-
►
2022
(10)
- ► septiembre (1)
-
►
2021
(26)
- ► septiembre (1)
-
►
2020
(9)
- ► septiembre (2)
-
►
2019
(26)
- ► septiembre (3)
-
►
2015
(24)
- ► septiembre (4)
-
►
2014
(36)
- ► septiembre (1)
-
►
2013
(40)
- ► septiembre (5)
-
►
2012
(46)
- ► septiembre (3)




















