Páginas

Bienvenidos

Este blog busca darle algunas herramientas para trabajar con varios de los programas más interesantes y útiles de la actualidad.

El objetivo es emplear ejemplos y su desarrollo paso a paso para que el aprendizaje sea lo más fácil y real posible.

Mathematica

Mathematica
Mathematica

Etiquetas

Datos personales

Mi foto
Ingeniero
Esp. Informática y Computación
Esp. Administración de Sistemas

apache Flex

Mathematica

Todo el poder de Mathematica en la Web:



Ejemplos de uso:

1) Plot3D[Sin[x]*Cos[y],{x,0,2 Pi},{y,0,Pi}]
2) Colombia

Escribe el ejemplo y da clic en el igual

Seguidores

domingo, 12 de septiembre de 2010

PostHeaderIcon Purebasic - Ejemplo 011

Objetivo:

Aprender el uso de Arreglos (Arrays en ingles).

Problema:

Leer 5 números, almacenarlos en un Arreglo y luego buscar y mostrar el número mayor.

Solución:



Análisis

Para almacenar los valores leidos hay que usar un Arreglo de tipo entero. Vamos a definir el Arreglo con máximo 5 elementos.

Vamos a usar dos ciclos, en el primero leemos los números desde el usuario. En el segundo lo usamos para encontrar el mayor número. Por último mostraremos en pantalla el número mayor.



sábado, 11 de septiembre de 2010

PostHeaderIcon Purebasic - Ejemplo 010

Objetivo:

Aprender el uso de Arreglos o Vectores (Arrays en ingles).

Problema:

Leer un conjunto de números enteros y calcular su promedio.

Solución:



Análisis

Para almacenar los valores leidos hay que usar un Arreglo de tipo entero. Vamos a definir el Arreglo con máximo 10 elementos. Para almacenar el promedio usaremos una variable de tipo decimal.

Aunque hay varias formas de realizar este ejercicio nosotros vamos a usar 2 ciclos. El primer ciclo se usará para leer los valores y el segundo para calcular el promedio. Por último mostraremos en pantalla el promedio calculado.

La formula para cálcular el promedio es:

promedio = suma_de_números / cantidad_de_números



miércoles, 1 de septiembre de 2010

PostHeaderIcon Purebasic - Ejemplo 009

Objetivo:

Aprender el uso de Arreglos (Arrays en ingles).

Problema:

Leer 5 valores numéricos, almacenarlos en un Arreglo e imprimirlos en pantalla.

Solución:



Análisis

Para almacenar los valores leidos hay que usar un Array de tipo entero. El indice del Arreglo debe iniciar en cero e ir hasta 4, o tambien se puede iniciar en 1 y finalizar en 5.

Se debe usar un ciclo para leer los valores y almacenarlos en el Arreglo, y un ciclo para imprimirlos en pantalla.

Para trabajar con Arreglos hay que declararlos antes de usarlos. Para declarar un
Arreglo se usa la instrucción Dim, así:

Dim NombreArray.Tipo(TAMAÑO)



martes, 24 de agosto de 2010

PostHeaderIcon Purebasic - Ejemplo 008

Objetivo:

Aprender el uso de la instrucción de ciclo REPEAT-UNTIL.

Problema:

Elaborar un programa que genere los números enteros comprendidos entre 1 y 1000 inclusive y hallar su suma.

Solución:



Análisis

Se debe usar una variable para almacenar el número que se va a sumar. Este número será generado usando una instrucción de ciclo REPEAT-UNTIL que inicie en 1 y finalice en 1000.

El ciclo REPEAT-UNTIL tiene la siguiente estructura:

variable = valor_inicial

Repeat
... Aqui va el código que queremos ejecutar varias veces
... Aqui va el código que incrementa la variable de control del ciclo
Until variable > valor_final


Para guardar la suma usaremos un acumulador, así:

acumulador = acumulador + valor_a_sumar



PostHeaderIcon Purebasic - Ejemplo 007

Objetivo:

Aprender el uso de la instrucción de ciclo WHILE.

Problema:

Elaborar un programa que genere los números enteros comprendidos entre 1 y 1000 inclusive y hallar su suma.

Solución:



Análisis

Se debe usar una variable para almacenar el número que se va a sumar. Este número será generado usando una instrucción de ciclo WHILE que inicie en 1 y finalice en 1000.

El ciclo WHILE tiene la siguiente estructura:

variable = valor_inicial

While variable <= valor_final
... Aqui va el código que queremos ejecutar varias veces
... Aqui va el código que incrementa la variable de control del ciclo
Wend


Para guardar la suma usaremos un acumulador, así:

acumulador = acumulador + valor_a_sumar



domingo, 4 de abril de 2010

PostHeaderIcon Purebasic - Incremento en valor de variables

Para incrementar el valor almacenado en una variable Purebasic usa la expresión:

Variable = Variable + Valor
Pero Purebasic también nos da otra posibilidad de notación corta para hacer el incremento, así:

Variable + Valor

Ejemplo:

x = x +1
es equivalente a:

x + 1

Esta tipo de notación corta también funciona con otros operadores:
x = x + 1, es equivalente a: x + 1
x = x - 1, es equivalente a: x - 1
x = x * 1, es equivalente a: x * 1
x = x / 1, es equivalente a: x / 1
- 
jueves, 1 de abril de 2010

PostHeaderIcon Purebasic - Ejemplo 006

Objetivo:

Aprender el uso de instrucciones de ciclo FOR anidadas.

Problema:

Elaborar un programa que genere las tablas de multiplicar de 1 a 9.

Solución:



Análisis

Se debe usar dos variables, una para almacenar el multiplicando y otra para el multiplicador.

La estructura de los FOR anidados es la siguiente:


FOR variable1 = 1 TO MAXIMO_variable1
FOR variable2 = 1 TO MAXIMO_variable2
MOSTRAR multiplicando X multiplicador
FINFOR
FINFOR




PostHeaderIcon Purebasic - Ejemplo 005

Objetivo:

Aprender el uso de la instrucción de ciclo FOR.

Problema:

Elaborar un programa que genere los números enteros comprendidos entre 1 y 1000 inclusive y hallar su suma.

Solución:



Análisis

Se debe usar una variable para almacenar el número que se va a sumar. Este número será generado usando una instrucción de ciclo FOR que inicie en 1 y finalice en 1000.

El ciclo FOR tiene la siguiente estructura:

For variable = valor_inicial To valor_final
... Aqui va el código que queremos ejecutar varias veces
Next


Para guardar la suma usaremos un acumulador, así:

acumulador = acumulador + valor_a_sumar



viernes, 5 de marzo de 2010

PostHeaderIcon Purebasic - Ejemplo 004

Objetivo:

Comprender el uso de la instrucciones IF-ELSE-ENDIF anidadas.


Problema:

Leer tres (3) números y mostrarlos en orden de mayor a menor.


Solución:



Análisis

Hay que leer tres números enteros y hacer el siguiente análisis:


SI numero_1 > numero_2 ENTONCES
SI numero_2 > numero_3 ENTONCES
MOSTRAR numero_1,numero_2,numero_3
SINO:
SI numero_1 > numero_3 ENTONCES
MOSTRAR numero_1,numero_3,numero_2
SINO:
MOSTRAR numero_3,numero_1,numero_2
FINSI
FINSI
SINO:
SI numero_1 > numero_3 ENTONCES
MOSTRAR numero_2,numero_1,numero_3
SINO:
SI numero_2 > numero_3 ENTONCES
MOSTRAR numero_2,numero_3,numero_1
SINO:
MOSTRAR numero_3,numero_2,numero_1
FINSI
FINSI
FINSI



PostHeaderIcon Consideraciones en algoritmos

La siguientes son algunas de las normas propuestas por Sr. Gabriel Vásquez en su libro Lógica para Programación de Computadores y que podemos aplicar en nuestros programas desarrollados en Purebasic.


  • Programe o diseñe algoritmos a la defensiva. Suponga que tiene errores mientras no demuestre lo contrario. Escriba evitando errores, analizando circunstancias, auto ayudándose en la depuración y evitando que se propague un error.
  • Documentar. Describa brevemente pero muy claro lo que hace cada módulo, Describa todos los elementos que usa. Si utiliza artificios, explíquelos.
  • Evite expresiones aritméticas complicadas innecesariamente. Divídalas.
  • Evite al máximo la lógica negativa.
  • No comparta variables.
  • Los nombres de las variables deben ser claros.
  • Desarrolle algoritmos bajo la suposición de que pueden ser modificados.


FUENTES

Libro:
Lógica para Programación de Computadores (2a. edición).
Gabriel Vásquez L.
Impreso por Ediciones Gráficas Ltda. Medellín - Colombia.

-
jueves, 4 de marzo de 2010

PostHeaderIcon Perl - Programacion Declarativa

Hola

Hoy encontré la página http://lasclases.com/Computacion/Clase2.html, donde hacen referencia a la nueva versión de Perl diciendo:

"Perl en su futura versión 6 soportará el paradigma de programación declarativa y de esta forma será el único lenguaje de programación en soportar los cuatro paradigmas principales de programación".

Espero que esto sea cierto ya que la programación declarativa le abre nuevas posibilidades de pensamiento a los desarrolladores. Cabe anotar que la versión actual de Perl es la 5.10.1, y la que versión 6 se encuentra en desarrollo. Perl 6.

Estaremos atentos.

PostHeaderIcon Prolog - Otros compiladores

Hola

Aunque en el mercado existen muchos interpretes y compiladores de Prolog yo prefiero dos con los que he tenido muy buenos resultados:

  • VisualProlog
  • StrawberryProlog





FUENTES


Web:
Visual Prolog, http://www.visual-prolog.com
Web:
Strawberry Prolog, http://www.dobrev.com

-
lunes, 1 de marzo de 2010

PostHeaderIcon Purebasic - Guia de supervivencia (Ingles)

Hola

Quiero presentarle a los nuevos programadores en Purebasic un sitio Web que contiene un manual bastante bueno y actualizado del lenguaje y que seguramente aportara mucho en el proceso de aprendizaje. Aunque el sitio esta en Ingles los temas tratados son claros y concisos permitiendo sacar gran provecho con poco esfuerzo.

Les recomiendo entonces que visiten: PureBasic Survival Guide
viernes, 26 de febrero de 2010

PostHeaderIcon Purebasic - Ejemplo 003

Objetivo:

Comprender el uso de la instrucción IF-ELSEIF-ELSE-ENDIF, y el uso del operadores lógicos AND y OR.


Problema:

Dadas las longitudes de los tres lados de un triángulo, determinar que clase de triángulo es, así:

  • Triángulo equilátero = tres lados iguales.
  • Triángulo isóseles = dos lados iguales, uno diferente.
  • Triángulo escaleno = tres lados diferentes.


Solución:



Análisis

Ver Ejemplo 002. Esta es otra forma de solucionar el problema:


SI longitud_lado_A = longitud_lado_B = longitud_lado_C ENTONCES MOSTRAR "ES UN TRIANGULO EQUILATERO"

SINO: SI (longitud_lado_A = longitud_lado_B) o (longitud_lado_A = longitud_lado_C) o (longitud_lado_B = longitud_lado_C) ENTONCES MOSTRAR "ES UN TRIANGULO ISOCELES"

SINO:
MOSTRAR "ES UN TRIANGULO ESCALENO" (en caso de no ser EQUILATERO ni ISOCELES)



lunes, 15 de febrero de 2010

PostHeaderIcon Purebasic - Ejemplo 002

Objetivo:

Comprender el uso de la instrucción IF-ENDIF, y el uso del operadores lógicos AND y OR.


Problema:

Dadas las longitudes de los tres lados de un triángulo, determinar que clase de triángulo es, así:

  • Triángulo equilátero = tres lados iguales.
  • Triángulo isóseles = dos lados iguales, uno diferente.
  • Triángulo escaleno = tres lados diferentes.


Solución:



Análisis

Hay muchas formas de solucionar este problema. Para nuestro caso usaremos varias instrucciones condicionales para comparar las longitudes de los lados, las cuales serán almacenadas en tres variables enteras.


SI longitud_lado_A = longitud_lado_B = longitud_lado_C ENTONCES MOSTRAR "ES UN TRIANGULO EQUILATERO" y FIN


SI (longitud_lado_A = longitud_lado_B) o (longitud_lado_A = longitud_lado_C) o (longitud_lado_B = longitud_lado_C) ENTONCES MOSTRAR "ES UN TRIANGULO ISOCELES" y FIN


MOSTRAR "ES UN TRIANGULO ESCALENO" y FIN (en caso de no ser EQUILATERO ni ISOCELES)



domingo, 14 de febrero de 2010

PostHeaderIcon Purebasic - Ejemplo 001

Objetivo:

Comprender el uso de la instrucción IF-ELSE-ENDIF, la lectura de datos tipo cadena (String) y las funciones de conversión de tipo, NUMERO a CADENA y CADENA a NUMERO.


Problema:

Leer dos números A y B y calcular la división de A sobre B. A y B deben ser números enteros y el resultado debe ser real.


Solución:



Análisis

El calculo de la división de A sobre B requiere una variable C de tipo real donde almacenaremos el resultado. Hay que tener en cuenta que la variable B no puede tener valor igual a cero ya que en ese caso el resultado sería indeterminado.



miércoles, 20 de enero de 2010

PostHeaderIcon Purebasic - Tipos de datos

Hola

Hoy quiero hablarles de llos tipos de datos de Purebasic que vamos a usar para nuestros ejemplos. Aunque PB cuenta con aproximadamente 14 tipos de datos en la version 4.4 nosotros solo usaremos 7, así:


  • Byte (.b)
  • Char (.c)
  • Integer (.i)
  • Float (.f)
  • Quad (.q)
  • Double (.d)
  • String (.s)


Al definir las variables especificaremos a que tipo pertenecen colocando un identificador al incio del nombre de la variable, así:


  • Byte: b_
    Ejemplo: b_casado
  • Char: c_
    Ejemplo: c_sexo
  • Integer: i_
    Ejemplo: i_edad
  • Float: f_
    Ejemplo: f_interes
  • Quad: q_
    Ejemplo: q_valor
  • Double: d_
    Ejemplo: d_salario
  • String: s_
    Ejemplo: s_nombre

-
lunes, 18 de enero de 2010

PostHeaderIcon Mathematica por Ejemplos - Introduccion

Mathematica es una herramienta desarrollada por Stephen Wolfram y su equipo, especializada en análisis numérico y cálculo simbólico, visualización numérica y gráfica, que incorpora un potente lenguaje de programación propio que permite programación funcional, programación orientada a objetos y programación declarativa, y una interfaz externa que permite salidas a C, Fortran y TEX, además comunicación con otros paquetes mediante MathLink.

PostHeaderIcon Prolog por Ejemplos - Introduccion

WinProlog es un compilador de Prolog para Windows. Maneja la sintaxis estándar de Prolog, pero viene con gran cantidad de funciones adicionales. Cuenta con gran cantidad de ejemplos donde muestra la forma de usar el lenguaje, manejo de ventanas y objetos gráficos, manejo de archivos, uso de bases de datos, Internet, etc.

WinProlog posee módulos para manejo de bases de datos, para la creación se un servidor Web, sistemas expertos por reglas (FLEX), sistemas expertos probabilísticas (FLINT), etc.

Se puede descargar la versión de prueba por 30 días del su sitio Web. La versión profesional es costosa pero vale la pena.

PostHeaderIcon Purebasic por Ejemplos - Introduccion


PureBasic es un lenguaje de programación basado en el lenguaje BASIC inventado por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College.

La principal característica de este lenguaje, es su portabilidad, ya que con el podremos crear aplicaciones totalmente funcionales para Window, AmigaOS, Linux y MacOS X.

Este lenguaje nos permite crear aplicaciones muy rápidas y livianas. Las librerías externas están totalmente escritas en ensamblador y manualmente optimizadas, con lo que obtendremos funciones mucho mas rápidas que las equivalentes de C/C++.


Apache Flex

Wolfram Programming Lab