Sei sulla pagina 1di 12

Introduccin a lo programacin.

La programacin es la tcnica para comunicarle a un computador las tareas que tiene que
hacer. No os desespereis, es una tarea que requiere mucha experiencia. Cuanto ms
practiquis, mejor realizareis los programas.
Cmo habis visto los ordenadores slo entienden bits (agrupados bytes). Los
microprocesadores son los circuitos especiales que son capaces de transformar los datos.
Pueden hacer operaciones matemticas y dems. Generalmente se le pasa una secuencia de
bytes donde el primero es lo que se llama opcode (cdigo de operacin) y el microprocesador
se prepara para procesar en funcin del opcode el resto de los datos. Es lo que se conoce
vulgarmente como cdigo mquina. Imagina que el cdigo de operacin de sumar es el 20. Si
le paso al microprocesador la secuencia 20, 2, 3 (El primer byte es el de la izquierda). Cuando
el entra el primer 5 el microprocesaor entiende que quieres sumar, al llegarle el 2 y el 3 el
microprocesador devuelve el resultado 5. Para que nos entendamos, el primer 20 no es un
nmero, es el cdigo de operacin. El orden en el que le entran los datos a un
microprocesador es muy importante y todo debe estar muy sincronizado. El cdigo mquina es
algo muy complejo que slo algunos privilegiados manejan. Tal vez en el futuro t seas uno de
ellos.
Afortunadamente no hace falta cdigo mquina para programar un ordenador. Los
privilegiados ingenieros nos han dotado de herramientas que permiten que los mortales
podamos programar un ordenador, son los conocidos como compiladores. Un compilador
traduce un lenguaje que se parece ms al humano (cuanto ms al humano se parece se dice qu
es un lenguaje de ms alto nivel). El compilador lee lo que t has escrito y lo traduce a cdigo
mquina. El resultado es un cdigo que el ordenador entiende.
No vamos a entrar en este curso a ver la diferencia entre compiladores, intrpretes, pseudointrpretes, mquinas virtuales, ni nada de eso. Si en clase sale el tema daremos pinceladas.
Lenguajes de programacin existen cientos y generalmente determinados lenguaje sse ponen
de moda. Pero hay algunos que no pasan de moda como los que vamos a ver en este curso
que son Java y C++.
Java y C++ son primos hermanos. De hecho Java se inspir en C++ y el cdigo es muy parecido,
de hecho vosotros no vais a apreciar la diferencia.

Processing.
Processing es un entorno de programacin Java pero ha sido simplificado con una capa
superior que es la que realmente se llama Processing.
Por qu vamos a empezar programando con Processing y no con Arduino en C++?
Por miles de razones:

Una de las principales es que la forma de probar los programas en Arduino y


Processing es distinta. En Processing el cdigo compilado de ejecuta en el mismo
ordenador (no sale fuera). En Arduino se compila y se transfiere el cdigo mquina a la
plataforma externa por el puerto USB, los datos vuelven para poder ser analizados de

nuevo en nuestro ordenador y todo eeste proceso es muy lento. Tenemos que esperar
bastante cuando corregimos nuestro cdigo.
Otra razn es que el entorno de Processing es muy parecido al de Arduino (de hecho el
de Arduino se copi de Processing y est diseado en Processing).
Es el compilador ms fcil de usar que conozco. Si nos aventurramos en otro como
Eclipse, codeBlocks, etc. Prdera un tiempo precioso en explicar como funciona.
Processing permite conectarse directamente con Arduino, con lo cual los datos de
Arduino podemos representarlos en el ordenador en forma de grficos.
Processing fue diseado para diseo grfico, videojuegos, arte y dems. Resulta muy
atractivo.

Podra seguir pero os aburrirais.

Lets go. First steps.


Primero nos descargamos Processing de la pgina oficial. Es gratuito y no necesita instalacin!
Simplemente descomprime el archivo busca la carpeta y dentro ejecuta el programa.
Ah se me olvidaba! Necesitas tener la plataforma Java instalada, aunque la mayora de vostros
probablemente la teneis instalada porque se requiere con frecuencia para la ejecucin de
determinadas instalaciones. De todos modos Processing os avisar y para cualquier problema
aqu me teneis.
La pgina: https://www.processing.org/
Una vez funcionando vereis una pantalla como esta:

La zona blanca es donde escribimos el cdigo. La zona oscura de abajo es lo que llamamos
consola y es por donde sale los mensajes de salida del sistema y que utilizaremos a veces para
sacar nuestros mensajes. El botn play encima de la zona blanca ejecuta nuestro cdigo y el

stop lo para ya que Processing puede funcionar en bucle (nunca para). Encima del todo
tenemos los botones de mens que explicaremos cuando haga falta.
Our first program. Hello World.
Es muy tpico en informtica que al primer programa que se hace se le llame Hola mundo.
Podis buscar en internet que esta frase se pone como introduccin en cientos de libros de
programacin y es una frikada. Hay muchas leyendas pero si os vais a dedicar a
programariros acostumbrando.
Si tecleamos en la zona blanca el siguiente cdigo:
void setup()
{
println("Hola mundo");
}
void draw()
{
}
Y pulsamos el playveremos en la zona de consola un texto rojo del sistema y en blanco la
frase hola mundo.
Explicamos lo que hemos hecho.
Setup: es una zona de cdigo que se ejecuta una sla vez. La mayora de los programas
lenguajes funcionan as y para generar lo que llamamos un bucle, hay que hacerlo con lenguaje
tambin. Las llaves indican el comienzo y el final del setup.
Draw: es una peculiaridad de Processing que lo hace ideal para los microcontrolador. Es un
bucle repetitivo infinito. Lo que pongas hay se repetir hasta el infinito. Prueba a colocar el
println ah y vers como en la consola empiezan a aparecer hola mundo hasta que le des al
botn stop. En arduino draw se sustituir por la palabra loop.
ste es el esqueleto tpico de un programa processing.
Observad que al final de la instruccin siempre hay que colocar un punto y coma (;)
Aparece una ventana que posteriormente la usaremos para grficos.
Variables.
Una variable es un valor etiquetado con un nombre. Igual que la x en matemticas.
Aspectos a tener en cuenta con las variables:
-Puedes usar el nombre que quieras pero no puedes comenzar con nmero (si tenerlos en
medio o al final). No puedes usar smbolos raros como @,(,)
-Menor que 255 caractres.

-No podemos usar las variables y palabras reservadas. Para eso hay que conocer el lenguaje
(width, height, ) pero si usais una palabra en castellano casi con toda seguridad que no
coincids. En cualquier caso el compilador os avisa si meteis la pata. Basta con cambiar a otro
nombre.
-Hay que tiparlas. Esto significa que hay que indicarle al lenguaje que tipo de dato va a
contener.

Ejemplo:
short numero1 = 54; almacena un nmero entre -32768 y 32767 en este caso el 54 que est
en el rango.
String texto = hola mundo;

float numero_decimal = 1.37;


Programa:
void setup()
{
float numero_decimal1 = 1.35;
float numero_decimal2 = 2.36;
short numero1 = 54;
short numero2 = 26;
println(numero_decimal1 + numero_decimal2);
println(numero1+numero2);
}
void draw()
{
}
Observad el resultado en la consola al darle al play.

Bucle for.
El bucle for lo usamos para repetir algo un nmero determinado de veces. Podemos usar la
variable para realizar las operaciones. La estructura del for bsico es:
for(variable = nmero ; variable <comparador> nmero ; k++)
{
Instrucciones
}
Ejemplo:
void setup()
{
int k;
for(k=1;k<=10;k++)
{
println(k);
}
}
void draw()

{
}
Obsrvareis que parecen una lista del 1 al 10 en la consola.
Probad sustituyendo el println(k); por println(k*2); o por println(hola mundo); Java tambin
permite la concatenacin y podis escribir println (resultado: +k); lo que hace es sacar todo
junto.

Condicionales.
Ya deberais estar familiarizado. Pero voy a poner el codicional completo.
If(condicin)
{
Accion 1: cdigo si la condicin es verdadera.
}
else
{
Accin 2: cdigo si la condicin es falsa.
}
Veamos el cdigo (voy a escribir slo lo que est dentro del setup).
int a = 10;
int b = 6;
if(a>b)
{
println("el PRIMER nmero es MAYOR");
}
else
{
println("el SEGUNDO nmero es MAYOR");
}
Cambiad los nmeros y vereis los resultados.

Algo de grficos.
Para no aburrirnos tanto vamos a pasar a algo de grficos. Usemos la ventana de grficos.
Para darle tamao a la ventana de grficos

En el setup:
size(150,150); //define el tamao de ventana
background(0); //pinta la ventana de negro
ellipse(70,80,130,80); //dibuja una elipse con centro en 70, 80 y radios 130 y 80
Observa que si coloco las // el compilador ignora lo escrito. Es lo que se llama comentario y
sirve para explicar las lneas de cdigo. A partir de este ejemplo las utilizaremos.

Algo de Accin.
Vamos a mover algo en la pantalla. Por ejemplo, un crculo que sube y baja. Ahora vamos a
usar el bucle draw y la velocidad se la daremos con frameRate().

El imprimir pantalla permite mejor visualizacin. Explicaremos el programa con detalle en


clase. Peromira como bota la pelota!

Entradas por el teclado.


Tal vez ste sea el aspecto que menos me guste de Processing. La mayora de los lenguajes
permiten que pidan un dato por la consola de forma fcil (al menos yo no la he encontrado)
pero parece que los autores de Processing no le dieron importancia a este aspecto y generaron
libreras complejas pero vistosas que no son nada didcticas.
Yo he encontrado una pequea chapucera que simplifica la entrada. Mi idea es en un futuro
generar una consola educativa para el entorno. Existe una, pero es muy limitada tendre que
mejorarla!

El parche consiste en una pequea funcin que tendremos que copiar y pegar al principio de
nuestros programas. Es una funcin que se llama input y como argumento le metemos una
cadena que indica al usuario el dato que tiene que meter.

A partir de meter la funcin antes del setup podemos usar la funcin input que nos pide datos
por el teclado.
Saludando.

Dentro del setup tenemos que la primera lnea declara una variable tipo String (texto) y a
continuacin ejecutamos la funcin input que nos abre una caja de dilogo que pregunta tu
nombre.
A continuacin hacemos una salida por la consola concatenando la frase que veis dentro del
println. Disfrutad con vuestro esclavo!
Calculando.

Las variables tipo String no permiten operaciones matemticas. Por tanto tenemos que
convertir la variable en nmero. Para ello usamos el objeto Integer y su miembro parseInt.
Para llamar a ese objeto se usa la expresin:
Variable_int = Integer.parseFloat(variable_texto);

Si lo que contiene el texto no se puede convertir en un nmero se produce un error y se para


el programa. El control de estos errores es para ms avanzados.
Si quieres convertir a float, usamos el objeto Float.parseFloat.

Para campeones. Representacin grfica.

Los ejes de coordenadas?

Problema: Seras capaz de combinar los programas anteriores para que represente la
grfica en los ejes de coordenadas?
Se pretende dar los fundamentos de programacin pero podis entender que la asignatura
da para un ao completo. Vuestra capacidad autodidcta har que vayais creando
programas cada vez ms espectaculares.
Problemas: A entregar por correo electrnico.
Problema 1: Disee un programa que, dado un nmero real que entra como dato, nos indique
si est contenido dentro de los lmites predeterminados. El lmite inferior es de 100 y el
superior de 200.
Problema 2: Un programa que, dados dos nmeros enteros que entran como datos, indique si
uno es divisor del otro. Ayuda: El operador a%b devuelve el resto de la divisin.
Problema 3: Escriba un programa que reciba cuatro calificaciones de un estudiante y devuelva
el promedio y la mxima y la mnima calificacin.

Problema 4: Pedir el radio de un crculo y calcular su rea. A=PI*r^2.


Problema 5: Pedir una nota de 0 a 10 y mostrarla de la forma: Insuficiente, Suficiente, Bien...
Problema 6: Realizar un juego para adivinar un nmero. Para ello pedir un nmero N, y luego ir
pidiendo nmeros indicando mayor o menor segn sea mayor o menor con respecto a N.
En la consola ir diciendo menor, mayor y en el caso que acierte ACERTASTE!
Problema 7: Pedir un nmero N, y mostrar todos los nmeros del 1 al N.
Problema 8: Escribir todos los nmeros del 100 al 0 de 7 en 7.
Problema 9: Pedir un nmero y calcular su factorial. El factorial de un nmero es
n! = 123(n-1)n
Problema 10: Pedir por el teclado el coeficiente a y b de una recta y=ax+b y representar la
recta tomando como centro el de la pantalla.

Potrebbero piacerti anche