lunes, octubre 22, 2007

Tutorial de Programacion I - Variables, Constantes, Procedimientos y Funciones

Bueno, para aprender programacion basica, a pedido de Nitos y Crox, he decidido enseñar los conceptos basicos con JAVA, por que es gratis, por que tiene clases, por que tiene muchas cosas...

Mientras llegamos a los importarnte con java, explicare terminologia basica que es necesaria para empezar, y mientras necesitan descargarse por supuesto JAVA, en java.com, y si quieren para ayudarse con la programada, JCreator, TextPad o algo pesadito como NetBeans que en ciertos casos ya viene con java.

Ahora bien olvidandonos de la historia y de complicaciones, si ud quiere crear algo, cualquier cosa que ve en la pantalla de la computadora, por aqui puede empezar.

Empecemos:

  • VARIABLES

mucha de la programacion necesita mucha matematica, hay conceptos que son muy silimares, pero que difieren en el significado final, por ejemplo

x = 10

eso quiere decir en lenguaje funcional matematico que la "x" es igual a 10;

pero en programacion, cuando se realiza esto, se quiere dar a entender que la "x" tiene por dentro el valor "10"; ahora, que tiene esto de util?
"x" en el contexto de programacion se llama VARIABLE en este caso, osea que su valor puede cambiar; de nuevo, que tiene esto de util?

igual que una formula matematica ud puede tener algo asi
resultado = x * .1

sabiendo que "x" seria por ejemplo el monto que ud cobró por la venta de algo digamos unas tennis en su trabajo de vendedor, y el resultado seria su monto de comision de 10%, al multiplicar ese valor.
Toda esta informacion sera llevada a "resultado" que es otra variable, y este resultado se puede usar en otros calculos, o ser "impreso" en pantalla para decirle a el usuario que monto ha ganado.

Entonces, como definicion, tenemos q una "variable" en un espacio de memoria que tiene un contenido no definido, hasta que se ejecuta el programa.

Ahora, al igual que en matematica convencional se usan palabras para representar conceptos, como ya vimos, el "resultado" es una variable, osea q ud usa esa palabra para almacenar un dato, en este caso un numero.

Pero como ya se dio cuenta, que la hace especial de cualquier palabra a una variable, como distinguirla para poder asignarle un dato?
Bueno, para no referirme aun a java, usare terminologia de action script de flash, q no necesitan saber para entender, pero es mas facil de entender en un principio que java.
La cosa es que UD tiene que indicarle al programa que tal palabra la vas a usar como identificador para una variable en flash se haria asi en su version 2.0:

var resultado;
var x;
x = 10000;
resultado = x * .1


asi tendriamos que "x" y " resultado" son variables por que se lo hemos dicho al programa, para futuras referencias, el programa q lee el codigo es un "compilador"

Ahora, ud se pregunta, donde pongo todas esas variables para que mi compilador java los lea?

Bueno, todos los codigos de programas son de hecho texto plano, que quiere decir esto? que es un archivo tipo BLOC de NOTAS, osea que ud puede escribir su programa java en bloc de notas, y cambiar la extension de .TXT a .JAVA y listo... pero hay programas que ayudan a recordar cosas, para eso estan JCreator y NetBeans, pero no tanto asi TextPad.



  • CONSTANTES
Continuando con el codigo, hay otro tipo de identificadores que se denominan "constantes", que son como las variable, pero definidas desde el principio del programa, y que ud sabe que sus valores no van a cambiar

const PI = 3.141592654;

la constante PI nunca va a cambiar, tambien por esa razon, muchos compiladores la traen integrada, pero hay que saber como llamarla.

  • PROCEDIMIENTOS
Entremos a lo bueno. Que sucede si necesita calcular 10 veces, pero con diferentes valores, el 10% de la venta de alguna mercancia? repetitivo cierto? y si son 50, o mil?
Bueno que sucede si nuestra formula tiene 100 lineas?
La cosa se complica no?

Y ya que estamos con esto de los identificadores, seria bueno tener esas 100 lineas bajo una sola palabra y llamarla no? y solo darle los valores que cambian, como "x" y que nos de el resultado en otra variable, que seria "resultado"

Entonces poniendo ejemplo flash para crear esta tarea enorme y repetitiva hacemos lo siguiente

function calculoExtenso (var x, var resultado){
      resultado = x * .1;
}

Al igual que con la variable o la constante, se utiliza una palabra para indicar al compilador que la palabra que sigue se usara en lugar de todo el codigo que esta dentro del bloque ( {} ) identificado por las llaves, en este caso function; en los parentesis redondos ponemos las variables que necesitamos dentro del bloque. Pero si anteriormente declaramos variables sobre el codigo, por que ponerlos entre parentesis?

Al momento de llamar al procedimiento, usted no puede modificar el codigo de adentro, claro que puede cambiar el codigo que esta entre llaves, pero no cuando hace la llamada, que seria de esta manera

var miNuevoResultado;
var precioZapatos = 15000;
calculoExtenso(precioZapatos, miNuevoResultado);
.
.
utilizamos miNuevoResultado en otras operaciones
.

calculoExtenso(15000, miNuevoResultado);
.
.
utilizamos miNuevoResultado en otras operaciones
.

ahora, como se puede ver, solo lo que esta entre parentesis se puede modificar dentro del procedimiento, estos son llamados "parametros" por que el procedimiento los necesita para funcionar; el segundo parametro siempre tiene que ser variable (solo este caso), por que sino, no podremos utilizar el resultado que nos devuelve el procedimiento.

Internamente "miNuevoResultado" es igual a var "resultado" dentro de la declaracion del procedimiento.

  • FUNCIONES
Una funcion es un procedimiento que devuelve un resultado. Pero para que si ya tenemos que los procedimientos pueden devolver valores por variables?

Bueno, si es cierto, pero va a facilitar la lectura y codificacion de programas...

Ahora, a que me refiero con que devuelve un valor?

Me refiero a que puedo usar el identificador del procedimiento en lugar del resultado que de el codigo que queremos simplificar, por ejemplo:

si ya tenemos que

C = A + B;

osea pondremos en C la suma de nuestras variables A y B, pero podemos usarla con un identificador que nos ayude a ver y hacer esto mas rapido.

function suma(var A, var B){
      var C = A + B;
      return C;
}

para que sirve return? este identificador propio de programas como java, indica que el valor se devuelve en lugar del nombre del identificador, por lo tanto, para ver que significa esto, podemos hacer lo siguiente:

D = suma(10, 20) + suma(15, 30);

por "debajo" suma(10, 20), como ud ya sabe es 30, y suma(15, 30) es 45, asi, sin que ud lo note, se intercambian por esos valores, y se puede realizar la suma mas grande:

D = 30 + 45;

y D de una forma transparente captaría el resultado.


Aqui terminamos por hoy, no es que sea muy bueno explicando, pero es mejor que le expliquen a uno en un lenguaje mas comun, pero como igual sigo con muchas mañas de los programadores, si no entendieron algo, haganmelo saber.

Hagan preguntas ahora, para responderlas en la segunda parte, o en los comentarios

6 comentarios:

S-cool dijo...

oie muchas grax po resoque publicaste me salvaste !!!!

Absulit dijo...

con gusto, si quieres que publique algun tema en especifico puedo hacerlo a pedido

gracias por el comentario

Anónimo dijo...

quadruples gardiner coupling segmented ellisbridge ayurved ario prejudice inpatient blog outreach
semelokertes marchimundui

Anónimo dijo...

Hi there, I found your blog via Google while searching for first aid for a heart attack and your post looks very interesting for me.

rH3uYcBX

Anónimo dijo...

[url=http://www.ganar-dinero-ya.com][img]http://www.ganar-dinero-ya.com/ganardinero.jpg[/img][/url]
[b]Estas necesitando informacion sobre como ganar dinero[/b]
Nosotros hemos encontrado la mejor guia en internet de como ganar dinero desde casa. Como nos ha sido de interes para nosotros, tambien les puede ser de interes para ustedes. No son solo formas de ganar dinero con su pagina web, hay todo tipo de metodos para ganar dinero en internet...
[b][url=http://www.ganar-dinero-ya.com][img]http://www.ganar-dinero-ya.com/dinero.jpg[/img][/url]Te recomendamos entrar a [url=http://www.ganar-dinero-ya.com/]Ganar dinero[/url][url=http://www.ganar-dinero-ya.com][img]http://www.ganar-dinero-ya.com/dinero.jpg[/img][/url][/b]

Anónimo dijo...

Hello Guru, what entice you to post an article. This article was extremely interesting, especially since I was searching for thoughts on this subject last Thursday.