Sei sulla pagina 1di 45

Curso de programacin

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 1 de 45
Curso de programacin

Introduccin: Curso de programacin

Este es un Curso de Programacin bsico que ofrecimos gratuitamente en DesarrolloWeb.com


y EscuelaIT en enero de 2015.

Est dividido en varias sesiones que te introducen los conceptos fundamentales que tienes que
conocer antes de aprender cualquier lenguaje de programacin.

El curso est impartido en vdeo, con clases que fueron emitidas en directo ante los estudiantes
suscritos. El equipo doncente lo formaron varios profesores con amplia experiencia enfocada a
la programacin.

Entre los temas que se impartieron figuran una introduccin a los lenguajes, tipos de datos,
algoritmos, estructuras necesarias para la creacin de algoritmos complejos como
condicionales y repeticiones, as como subprogramacin por medio de funciones. Tambin se
vieron asuntos relacionados con el mundo de los objetos y estructuras de datos complejas, para
acabar con una sesin que nos ofrece una vista de pjaro a diferentes lenguajes y sus
aplicaciones principales.

El enfoque que se aplic en este curso de programacin es el de asentar las bases para la
programacin y el desarrollo en cualquier tipo de lenguaje. Osea, se dio ms importancia a los
conceptos de programacin que a los lenguajes en si. El motivo es que esos conceptos son los
mismos para cualquier lenguaje, al menos los principales, y nos deben servir de base para
luego acercarnos a los lenguajes ya en especfico. No obstante, para los ejemplos todos los
profesores usaron Javascript, por lo que tambin sirve para aprender algunas de las utilidades
y modos de trabajo de este lenguaje estndar en el desarrollo web y en numerosas plataformas.

En definitiva, pretendimos dar una visin ms acadmica y basada en los fundamentos de la


programacin, ms que particular de un lenguaje en concreto. Un conocimiento que
generalmente no se ofrece en otros cursos de programacin donde, por querer abarcar mucho
en poco tiempo, se dejan de lado conceptos importantes y necesarios para ser un buen
programador en el futuro.

Encuentras este manual online en:


http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 2 de 45
Curso de programacin

Autores del manual

Las siguientes personas han participado como autores escribiendo artculos de este manual.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de


formacin online EscuelaIT. Comenz en el mundo del desarrollo web
en el ao 1997, transformando su hobby en su trabajo.

Luis Fernndez Muoz

Profesor de la Escuela Superior de Informtica de la UPM

Jos Dimas Lujn

Jos Dimas es fundador de Ockham Ti, empresa de desarrollo de


software, app mviles, videojuegos y cursos.

Alberto Basalo

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 3 de 45
Curso de programacin

Alberto Basalo es experto en Angular y otras tecnologas basadas en Javascript, como NodeJS
y MongoDB. Es director de gora Binaria, empresa dedicada al
desarrollo de aplicaciones y a la formacin a travs de Academia
Binaria.

Claudio Morales Godinez

Eduard Toms

Apasionado de la informtica, los videojuegos, rol y... la cerveza. Key


Consultant en Pasiona y MVP en #aspnet

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 4 de 45
Curso de programacin

Introduccin a los Lenguajes de


Programacin

Primera clase, con Luis Fernndez. Introduccin a los lenguajes en general y al


modo de comunicarse con un ordenador cuando estamos programando. En el
Curso Gratuito de los Fundamentos de la Programacin.

Esta es la grabacin de la clase dedicada a introducir los lenguajes de programacin, primera


sesin del Curso Gratuito de los Fundamentos de la Programacin, impartida por Luis
Fernndez en enero de 2015. Luis es Profesor de Universidad de la UPM, en Espaa y en esta
ocasin tuvimos la ocasin dando una clase online masiva en la comunidad de
DesarrolloWeb.com y EscuelaIT.

Durante la clase se dedic a ofrecer explicaciones respecto a dos temas principalmente, por un
lado la introduccin genrica a los lenguajes de programacin y por otro una descripcin de los
tipos de datos y variables. De los dos temas introductorios a los lenguajes de programacin. En
este vdeo tenemos el primero de ellos, dedicado a los lenguajes en general.

Es un contenido que se engloba en un curso en el que tendremos 8 sesiones para conocer los
aspectos esenciales de la programacin, que nos ofrezcan una base slida para poder
acercarnos luego a cualquier lenguaje. Esta es la primera sesin, que tiene este contenido:

Introduccin a los lenguajes de programacin


Qu es un lenguaje de programacin
Para qu sirve

Qu es programacin
Es un trmino comn que se puede describir segn la Real Academia de la Lengua. Accin o

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 5 de 45
Curso de programacin

efecto de programar. Y programar? Idear y ordenar las acciones necesarias para realizar un
proyecto. Todo esto en trminos generales, no se refiere especficamente a la programacin de
lenguajes informticos, pero nos da una idea de lo que es.

Programar puedes programar cualquier cosa, por ejemplo, las vacaciones. Luis nos ofreci un
ejemplo explicando qu tipo de cosas pensamos cuando tenemos que programar algo. Vimos
que consta de una serie de decisiones y una serie de pasos para conseguir hacer todas aquellas
pendencias antes de, en este ejemplo, salir de vacaciones.

Luego nos hizo pensar en la posibilidad de programar las vacaciones con un mayordomo, o
programar cualquier tipo de cosas en las que tenemos un asistente. El mayordomo est a tu
servicio y no decide absolutamente nada. Entonces tendrs que darle las instrucciones precisas
que quieres que realice y se lo tienes que dar en un lenguaje que ambos conozcis.

Programar para un ordenador, un programa informtico, es muy parecido a eso. Entonces, ya


entrando en el mundo de los ordenadores nos explic qu es la informtica y cmo el
ordenador/computadora da unos servicios para el tratamiento de la informacin (infor-
mtica): consultar, calcular, aadir, modificar o borrar informacin. En analoga al servicio del
mayordomo, que nos prepara las vacaciones, organiza la limpieza, etc. A un ordenador debes
darle las rdenes precisas en un lenguaje de programacin, de manera similar al mayordomo.

Por qu programar?
A continuacin entramos en un bloque que nos explica por qu realizar programas
informticos, bsicamente por automatizar diversos tipos de procesos y nos dio una serie de
ejemplos fantsticos entra las maneras de actuar de las personas y de las mquinas que nos
acercan al pensamiento que debe de tener un programador para desempear su trabajo y el
pensamiento que debe tener un estudiante cuando comienza a pensar en trminos de "lneas
de cdigo".

Lexicografa - sintaxis - semntica


Luego vimos asuntos interesantes que nos deben hacer entender cmo funcionan los lenguajes,
pero no especficamente los de programacin, sino todos los lenguajes en general. Lexico-
grafa es la coleccin de palabras, vocablos, de una lengua. La sintaxis es la forma en la que se
combinan las palabras. Semntica son aspectos del significado y sentido o interpretacin.

Obviamente, en el vdeo se explican todos esos trminos en detalle y Luis Fernndez nos ofrece
ejemplos clave para poder entenderlo, sobre varios tipos de lenguajes, hablados, signos, de
programacin o incluso algo tan sencillo como el lenguaje que implementan los semforos que
regulan la circulacin. Todo ello nos hace entender mejor cmo funcionan los lenguajes y por
extensin, cmo funciona un lenguaje de programacin.

Conclusin, diapositivas y grabacin de la clase


Es una sesin bsica, con enseanzas que generalmente no te ofrecen cuando ests
introducindote en los lenguajes de programacin, pero que ayudan a establecer las bases del
pensamiento en trminos de lenguaje informtico.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 6 de 45
Curso de programacin

No trata de un lenguaje de programacin en particular, sino que te sirve para entender


cualquier tipo de lenguaje. En las siguientes sesiones del curso se explican ya asuntos
relacionados con los lenguajes de programacin.

Esta clase tiene una duracin corta, porque la primera sesin con Luis estaba dividida en dos
partes, en la segunda nos habl de Tipos de datos y Variables, junto con otra serie de cosas
relacionadas. Pero fjate que para ser un vdeo de poco ms de 10 minutos tiene una cantidad
de informacin fantstica que nos ayudar mucho a adquirir la base necesaria para entender
los lenguajes de programacin.

Las diapositivas usadas en la presentacin las puedes ver embebidas aqu abajo.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/introduccion-lenguajes-programacion-
fundamentos.html

El vdeo de esta charla de introduccin a la programacin lo puedes ver a continuacin.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/introduccion-lenguajes-programacion-
fundamentos.html

Este artculo es obra de Luis Fernndez Muoz


Fue publicado por primera vez en 12/01/2015
Disponible online en http://desarrolloweb.com/articulos/introduccion-lenguajes-
programacion-fundamentos.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 7 de 45
Curso de programacin

Tipos de datos, variables, entrada y


salida

Segunda clase de los fundamentos de la programacin, dedicada a tipos de datos,


variables, operadores y muchas otras cosas bsicas en lenguajes de
programacin en general y Javascript en particular.

Esta es la segunda clase del Curso de Programacin gratuito que dimos en EscuelaIT y
DesarrolloWeb.com. En esta segunda clase abordamos los tipos y variables. La ofreci Luis
Fernndez, profesor de la Universidad Politcnica de Madrid en vivo a los estudiantes de esta
comunidad.

Se ofreci a continuacin de la primera clase dedicada a dar una introduccin a los lenguajes.
(Esta sesin se dividi en dos partes bien diferenciadas que se hicieron contiguas, las dos
temticas con Luis).

En este bloque nos dedicamos a conocer cosas bsicas de los lenguajes de programacin,
introduciendo el concepto de Tipo de Dato, Variable, Operador, Entrada y Salida, etc. El
esquema del guin general que se ofreci consta de estos puntos.

Introduccin a las Variables y tipos de datos


Tipos de datos
Variables y constantes
Expresiones
Entrada y Salida de datos
Sentencias de asignacin

Seales, datos, informacin, conocimiento


Comenzamos conociendo asuntos relacionados con lenguajes en general, orientados a

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 8 de 45
Curso de programacin

entender las diferencias entre seales, datos, informacin y conocimiento. Esto nos da una
idea sobre qu es lo que manejas en la vida real y qu es lo que manejas cuando ests
expresando programas a una mquina.

A un ordenador le suministras datos, no tiene informacin ni tiene conocimiento. Sin


embargo, un dato de un ordenador nosotros lo podemos transformar en informacin y
conocimiento.

Esto lo dice para entender cmo piensa un ordenador y cmo se diferencia de las personas. Un
ordenador es muy tonto, las personas somos muy listas. Los ordenadores son trabajadores y
las personas son por lo general perezosas. Conviene ver el vdeo porque las explicaciones estn
geniales y nos hacen entender mejor a los ordenadores.

Tipo de datos
En un ordenador tengo datos y los datos son de un tipo. Luis Fernndez nos explica los
motivos y la razn de ser. Adems cmo eso nos afecta en la prctica en trminos de lenguaje
informtico, pues a un tipo se le asocian una serie de operaciones bsicas. Si son numricos
podramos sumar, restar, etc. Si son cadenas concatenar y si son lgicos, operaciones lgicas
de comparacin, etc.

Todo eso son tipos de datos simples. Los tres tipos bsicos (numrico, cadena y lgico, o los
que tenga cada lenguaje), son lo que se llaman tipos de datos primitivos y son en los que se
centra la explicacin. No obstante, tambin nos explic qu pasa con tipos de datos complejos,
fechas, facturas, alumnos de un curso, operaciones asociadas sobre esos tipos, etc.

Con los tipos de datos primitivos son con los que se construye cualquier sistema en el mundo,
en el fondo. Sobre esos datos nos explic varias cosas como:

Qu diferentes maneras o notaciones tenemos de expresarlos Qu operaciones se pueden hacer


con ellos Qu ocurre cuando intentamos hacer operaciones que no son permitidas

Sobre el asunto de operadores hubo bastantes explicaciones, ya que cada tipo de datos es capaz
de atender a una serie de operadores, que sirven para realizar operaciones sobre ellos. Sobre
tipos numricos debes hacer operaciones matemticas y sobre cadenas haces otro tipo de
operaciones como la concatenacin. Sobre los lgicos tienes operaciones como AND, OR y
NOT.

Variables
Luego nos explic sobre las variables. Las variables tienen un nombre que sirve de referencia
para almacenar un dato. Por tanto, las variables tienen un tipo, que es el tipo del dato que
almacenan.

El nombre de "variable" nos indica que bajo ese nombre, bajo esa referencia a un dato,
podemos almacenar algo que puede cambiar con el tiempo. Por eso es variable.

Constantes

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 9 de 45
Curso de programacin

Nos introdujo el concepto de constante, que a diferencia de la variable, una vez que cargas el
valor en la constante, no puedes actualizarse durante la vida del programa.

Asignacin
Nos explic al final del vdeo acerca de la asignacin, que es la operacin para insertar un valor
en una variable, o una constante. Siendo que las variables, adems de asignarle por primera
vez un valor, se pueden asignar valores nuevos que sobreescriban a los que haba
anteriormente en una variable. Las operaciones de asignacin se revisaron rpidamente, pues
es un asunto que se repitir incansablemente a lo largo de todo el curso.

Entrada y salida de datos


La clase acaba con la entrada y salida de datos, que nos va a permitir solicitar informacin al
usuario y devolver informacin. En este caso se explica usando las sentencias de Javascript
prompt() y alert(). La primera me permite solicitar un dato al usuario y la segunda presentarlo.
Ambas funciones lanzan una caja de dilogo que el usuario debe usar para interaccionar con
las aplicaciones.

Conclusin, diapositivas y vdeo de la clase


Esta es una clase imprescindible para todos aquellos que quieran aprender programacin,
impartida con maestria por Luis Fernndez, al que agradecemos su participacin en el Curso
de Programacin. Aprendimos adems cules son los tipos de datos y operadores en
Javascript, junto con los modos de producir entrada y salida. Merece la pena ver el vdeo con
mucha atencin y disfrutar con las explicaciones del profesor.

A continuacin puedes acceder a las diapositivas de esta clase:

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/tipos-datos-variables-entrada-salida.html

El vdeo de esta clase de programacin bsica, sobre los tipos de datos lo puedes ver aqu.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/tipos-datos-variables-entrada-salida.html

Este artculo es obra de Luis Fernndez Muoz


Fue publicado por primera vez en 16/01/2015
Disponible online en http://desarrolloweb.com/articulos/tipos-datos-variables-entrada-
salida.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 10 de 45
Curso de programacin

Algoritmo

Qu es un algoritmo, partes de un algoritmo, caractersticas y ejemplos de


algoritmos, as como programas en el lenguaje Javascript.

Este es el resumen de la primera parte de la charla dedicada a los algoritmos, realizada durante
el Curso Gratuito de los Fundamentos de la Programacin, en EscuelaIT, la comunidad y
plataforma para la formacin asistida de DesarrolloWeb.com. Este tema de los algoritmos se
vio en la segunda sesin del curso. En la primera tuvimos una Introduccin a los Lenguajes de
Programacin en plan general y una descripcin detallada de los Tipos de Datos.

La clase fue impartida por Miguel Angel Alvarez, fundador de DesarrolloWeb.com y EscuelaIT.
En este artculo encontrars un resumen de la exposicin junto con el vdeo de la clase grabada
y las diapositivas que se usaron para la presentacin, embebidos en el propio artculo al final
del presente texto.

Nota: Al publicar este contenido en DesarrolloWeb.com hemos dividido la sesin de los


algoritmos en dos partes, para que puedas digerir mejor toda la informacin, aunque las
dos partes se incluyeron en la misma clase. La primera parte est ms orientada a los
conceptos y caractersticas de algoritmos, con varios ejemplos sencillos, y la segunda parte
ms dedicada a presentar un par de ejemplos de algoritmos algo ms complejos que nos
ayudarn a entender cmo se hacen los programas en un lenguaje de programacin como
Javascript.

Concepto de Algoritmo
El algoritmo es algo que forma parte de nuestro da a da, en realidad es un concepto tan
comn que resulta hasta raro que, muchos de nosotros, solo lo conozcamos cuando nos
ponemos a estudiar programacin.

Comencemos leyendo la definicin formal a ver si lo entendemos bien:

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 11 de 45
Curso de programacin

Algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solucin a


un problema.

Como detalle fjate que no necesitas acudir a un libro de programacin para conocer la palabra
algoritmo, pues como deca es algo que cualquiera de nosotros hace en la vida normal. sta
que est aqu es la definicin de la Real Academia de la Lengua.

En otras palabras un algoritmo es la descripcin de un proceso o una serie de pasos que


tenemos que dar para conseguir alguna cosa.

Existen algoritmos en nuestro da a da a montones, de hecho nos pasamos el da ejecutando


algoritmos.

Preparar caf
Tomar un bao
Hacer la cama
...

Son operaciones tan habituales y tan simples que casi siempre obviamos que exista un
algoritmo definido para ello. Aunque no todos los algoritmos son tan sencillos.

Un algoritmo se define mediante la especificacin de una serie de pasos, como en este ejemplo.
Beber un vaso de agua:

Saco un vaso del armario


Saco la botella de agua de la nevera
Lleno el vaso
Aproximo el vaso a mi boca
Trago el lquido

Como podis ver, no hace falta saber programacin para disear un algoritmo. Entonces Por
qu es importante?

Lo veremos claro enseguida, pero antes os formular con otra pregunta Habis odo la frase
"Los ordenadores son tontos"? Estis de acuerdo?

Yo no estoy totalmente de acuerdo con esa frase. Pensar en todo lo que se puede hacer con un
ordenador, trabajos digitales con programas como Photoshop, Pelculas increbles y de un
realismo acojonante hechas con computador, juegos, en 2D y 3D increbles, o incluso la
inteligencia artificial desarrollada en ellos. Alguien ha intentado jugar contra la mquina en
uno de esos juegos de ftbol actuales?

Cuando veo las cosas que se pueden hacer con ordenador me hace pensar que es muy difcil
que algo "tonto" consiga resultados tan impresionantes. Pero eso de que los ordenadores son
tontos se dice porque a ellos todo les debe ser explicado. El ordenador es un conjunto de cables
y circuitos que, en principio, no sabe hacer nada a no ser que creemos un programa para ello.
En los programas necesitamos decirle a la mquina todos y cada uno de los pasos que debe
realizar para completar nuestro objetivo. Y qu es eso? no es ms que la definicin de
algoritmo.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 12 de 45
Curso de programacin

Qu es un programa
Ahora, para ahondar en el concepto de algoritmo, debe quedar claro que ste es un paso previo
a escribir cdigo. Para escribir un programa antes debo pensar en el algoritmo que resuelve mi
necesidad. El programa viene despus del algoritmo: es la expresin de un algoritmo en
un lenguaje de programacin.

Cmo se expresan algoritmos


Existen muchos modos de expresar algoritmos. Por ejemplo con palabras. Ya hemos expresado
un algoritmo con palabras antes cuando pensamos en las acciones de beber un vaso de agua.
Pero tambin se pueden expresar con:

Grficos o diagramas de flujo


Pseudocdigo

Aunque los diagramas de flujo o el pseudocdigo son tiles porque nos permiten un paso
intermedio entre los algoritmos expresados por palabras y el cdigo fuente de los programas,
no los vamos a ver de momento. Dado que todos sabemos escribir, por ahora vamos a
limitarnos a escribir los algoritmos con palabras.

Ejemplos de algoritmos y programas


En este punto en el vdeo se vieron un par de ejemplos de algoritmos expresados con palabras
y sus correspondientes programas en el lenguaje Javascript.

Permetro de un rectngulo

Media

En resumen "Programar es escribir algoritmos en un lenguaje que entienda la mquina" Qu


os parece esa frase? Opinis que es correcta?

Estos programas que hemos visto sin duda ilustran bien esa frase, pero pensar que cuando
hacis un programa grande (un juego, un programa de gestin), entran en juego cientos o
miles de algoritmos distintos y como programadores debemos no solo escribirlos, sino hacer
que se comporten bien los unos con los otros, se coordinen, comuniquen, compartan
informacin, respondan a las acciones del usuario, etc, etc.

Por tanto, podramos decir que programar es mucho ms que escribir algoritmos en un
lenguaje de programacin.

Fases para resolver un problema


Ya las hemos visto de manera implcita en el bloque anterior de esta clase, pero en resumen:
Partimos de un problema, diseamos un algoritmo y escribimos un programa. Pero en esas
fases se encuentran implcitas muchas acciones que deben ser realizadas. Por ejemplo:

1. Identificacin del problema 2. Anlisis 3. Diseo del algoritmo 4. Programacin del

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 13 de 45
Curso de programacin

algoritmo 5. Ejecucin y validacin del funcionamiento

Muchos de nosotros pensamos que programar es simplemente escribir el cdigo en un


lenguaje de programacin (paso marcado con 4 en el listado anterior), pero existen diversos
pasos antes y despus de codificar. Programar abarcan todos esos pasos.

Partes de un algoritmo
En esta parte de la clase se explicaron las partes de un algoritmo, junto con diversos ejemplos
para tratar de identificarlas ya en el cdigo Javascript.

Entrada de datos

Procesamiento de los datos

Salida de los resultados

Caractersticas de un algoritmo
Estas son las caractersticas que debe tener un algoritmo. Algunas de ellas ya las hemos
mencionado. Te dars cuenta que la mayora son de sentido comn.

Estar bien detallado: No nos olvidemos que a los ordenadores hay que darles todos los
pasos, uno a uno, sin olvidar u obviar ninguno de ellos, porque por si solos no son capaces de
entender nada.

Estar bien ordenado: Lgicamente, un algoritmo tiene unos pasos a ser realizados en una
secuencia. Pensemos en el algoritmo de beber agua. Qu os parece si despus de sacar el vaso
del armario de la cocina me lo llevo directamente a la boca para beber?

Tener un principio y un fin: Tenemos que empezar por algn lugar y terminar en un
nmero finito de pasos, si no, no es un algoritmo. Si nunca acaba nuestro proceso soy incapaz
de llegar al final y por tanto no obtengo el resultado deseado, con lo que no se cumple la
definicin de algoritmo.

Ser fiable: Este punto incluye muchas cosas, como que el algoritmo resuelva los problemas
sin errores y tambin que una misma entrada de datos produzca una misma salida. Si estamos
haciendo el algoritmo del rea de un cuadrado y para un cuadrado de 2 metros una vez
calculamos el rea como 2 metros cuadrados y otras veces como 4 metros cuadrados, habr
algo que hemos hecho mal.

Conclusin, diapositivas y grabacin de la clase


Los algoritmos son un campo muy bonito de la informtica y nos permiten pensar las cosas tal
como se las debemos de expresar a los ordenadores. Pensar en trminos de algoritmo nos
ayudar a tener mayor facilidad para llevar a cdigo cualquier propsito que tengamos.

Para acabar, os dejamos las diapositivas de esta charla:

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 14 de 45
Curso de programacin

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/algoritmo-caracteristicas-ejemplos.html

A continuacin podrs ver el vdeo de la clase de algoritmos, recordando que este vdeo lo
hemos dividido en dos partes, en esta ms enfocada a conocer el concepto de algoritmo y sus
caractersticas.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/algoritmo-caracteristicas-ejemplos.html

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 22/01/2015
Disponible online en http://desarrolloweb.com/articulos/algoritmo-caracteristicas-
ejemplos.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 15 de 45
Curso de programacin

Primeros algoritmos y su codificacin en


Javascript

Algoritmos expresados con palabras y sus correspondientes programas


expresados con el lenguaje Javascript, una clase prctica para afianzar
conoceptos bsicos de programacin.

En esta entrega vamos a ahondar de manera ms prctica en el concepto de algoritmo y vamos


a ver nuestros primeros programas en el lenguaje de programacin Javascript. Es una clase del
Curso de Programacin que realizamos recientemente en DesarrolloWeb.com / EscuelaIT.

En esta clase realizamos un par de ejercicios interesantes que nos ayudan a asentar de manera
emprica los conocimientos de la primera charla de Miguel Angel Alvarez, dedicada a los
algoritmos. De hecho, esta parte con los primeros algoritmos de Javascript y la parte anterior,
fueron realizados en el mismo bloque o misma sesin. En realidad forman parte de la misma
clase, simplemente nosotros la hemos dividido para que el estudiante la pueda digerir mejor.

La este segmento de la clase se divide a su vez en dos ejercicios realizados para entender mejor
los algoritmos. Por una parte realizamos la descomposicin en aos, meses y das un nmero
de das dado. Por otra parte calculamos la distancia entre dos puntos en un eje de coordenadas
2D.

Ejemplo de algoritmo: aos, meses y das vividos


Vamos a suponer que pregunto a una persona (usuario) cuntos das ha vivido. Me contesta
algo como 10.000. Entonces quiero hacer un algoritmo y su correspondiente programa en
Javascript para convertir ese nmero de das en un nmero de aos, nmero de meses y das
restantes.

Para ese valor de das, 10.000, el programa nos devolvera un dato como este: "Ha vivido 27
aos, 4 meses y 25 das.". En simples palabras, el algoritmo que usaramos para obtener ese
resultado lo podemos ver a continuacin.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 16 de 45
Curso de programacin

Nota: Para simplificar nuestros clculos vamos a suponer que todos los aos tienen 365
das y nos olvidamos de los aos bisiestos. Tambin supondremos todos los meses igual a
30 das.

1. Pido el nmero de das vividos 2. Calculo el nmero de aos / 365 3. A los das vividos les
quito los das de los aos calculados. Esta operacin es el resto de la divisin de los das vividos
/ 365. Ese resto de la divisin son los das restantes que necesito para seguidamente calcular el
nmero de meses. 4. Sobre los das restantes calculo el nmero de meses / 30 5. A los das
restantes les quito los das de los mese calculados. Es la misma operacin del resto de la
divisin de los das restantes / 30. Ese resto de la divisin son los das restantes que me
quedan. 6. Muestro los resultados, aos, meses y das restantes calculados

En cdigo Javascript este algoritmo lo puedes ver a continuacin.

var diasVida = parseInt(prompt("Cuntos das has vivido",""));

var numAnos = Math.floor(diasVida / 365);

var diasRestantes = diasVida % 365 ;

var numMeses = Math.floor(diasRestantes / 30);

diasRestantes = diasRestantes % 30;

alert("Ha vivido " + numAnos + " aos, " + numMeses + " meses y " + diasRestantes + " das.");

Si entendiste el algoritmo, este ejercicio no requiere muchas explicaciones. Simplemente para


aclaraciones adicionales es mejor que veas el vdeo de la clase al final de este texto.

Es un ejemplo interesante porque podemos ver el algoritmo como una serie de pasos
secuenciales. Para calcular unos necesito haber calculado los anteriores.

Ejemplo de algoritmo: Distancia entre dos puntos


Si nos dan dos puntos en un eje de coordenadas de 2 dimensiones, podemos calcular la
distancia entre ellos. Si esos puntos se encuentran alineados en la horizontal o en la vertical,
calcular la distancia es muy fcil, pues es el resultado de hacer una simple resta.

Pero qu pasa si esos puntos no estn alineados, son dos puntos cualquiera? entonces la tarea
no es tan sencilla.

En realidad tampoco es tan complejo, solo se trata de un problema de trigonometra que, si


recordamos el Teorema de Pitgoras es muy sencillo de resolver. Si os fijis, la distancia entre
dos puntos es la hipotenusa de un tringulo rectngulo y el Teorema dice as: En un tringulo
rectngulo la hipotenusa es igual a la raz cuadrada de la suma de los cuadrados de los catetos.
Eso es lo que expresa esa frmula.

Si no lo entendis todava no os preocupis, existen decenas de vdeos en Youtube que lo


explican mejor que yo y ms despacio. De todos modos, vamos a verlo paso por paso, aunque

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 17 de 45
Curso de programacin

nos centraremos no tanto en la trigonometra como en expresar la solucin en trminos de un


algoritmo.

1. Pido la coordenada x del punto a 2. Pido la coordenada y del punto a 3. Pido la coordenada x
del punto b 4. Pido la coordenada y del punto b 5. Calculo el tamao de la componente
horizontal (cateto 1) 6. Calculo el tamao de la componente vertical (cateto 2) 7. Elevo al
cuadrado componentes vertical y horizontal 8. Las sumo 9. Aplico la raz cuadrada 10. Muestro
la distancia

Eso en cdigo fuente Javascript es el siguiente.

var ax = prompt("Dame punto a coordenada x","");

var ay = prompt("Dame punto a coordenada y","");

var bx = prompt("Dame punto b coordenada x","");

var by = prompt("Dame punto b coordenada y","");

var comp_horizontal = (bx-ax);

var comp_vertical = (by-ay);

comp_horizontal = comp_horizontal * comp_horizontal;

comp_vertical = comp_vertical * comp_vertical;

var distancia = Math.sqrt(comp_horizontal + comp_vertical);

alert(distancia);

La importancia de los algoritmos


Para acabar volvemos sobre algo que ya se haba expresado anteriormente, la importancia de
los algoritmos en la programacin.

"En verdad son ms importantes los algoritmos que el cdigo"

Os parece correcta esa frase? Pensar en lo que hemos comentado, un programa no es ms que
la expresin de un algoritmo en un lenguaje de programacin. El algoritmo, ese concepto que
hemos conocido hoy es ms importante por ser comn a todos los lenguajes. El cdigo no es
ms que la expresin de ese algoritmo. Es como una receta de cocina, la Paella, conocida en
cualquier parte del mundo. Puedes escribir la receta de ese delicioso plato en espaol,
valenciano o cataln, francs, japons, etc. Pero el cocinero cuando se ponga a hacer la paella
realizar los mismos pasos exactamente independientemente del idioma que hable. As que es
ms importante el proceso en si que el idioma con el que quieras expresar la receta.

Conclusin
Hemos aprendido qu es un algoritmo, qu es un programa, que escribir cdigo en un lenguaje
de programacin es una pequea tarea de las que un programador debe realizar. Hemos
aprendido que los algoritmos deben disearse con cuidado, porque son la parte ms
importante de un programa.

A continuacin puedes encontrar el vdeo con la grabacin de esta clase. La clase fue emitida
en directo, pero aqu tienes la grabacin para verla en el momento que desees.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 18 de 45
Curso de programacin

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/algoritmos-codificacion-javascript.html

Para acabar os dejo unos ejercicios para que pensis sobre ellos:

Disear un algoritmo para: Hacer una tortilla Cruzar la calle sin ser atropellado

Nota: Para cruzar la calle observareis que tenis que preguntaros cosas que sern
necesarias para algoritmos ms complejos y que forman parte de las siguientes clases del
curso.

Hacer el algoritmo y luego el programa en Javascript: Conversor de metros a litros Calcular el


rea de un crculo

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 30/01/2015
Disponible online en http://desarrolloweb.com/articulos/algoritmos-codificacion-
javascript.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 19 de 45
Curso de programacin

Alternativas o condicionales

Esta clase est dedicada a entender el concepto de alternativa, o condicional, que


nos permite tomar decisiones en los lenguajes de programacin.

Es una clase del Curso de los fundamentos de la Programacin que realizamos en enero de
2015, orientado para todos aquellos que desean dar los primeros pasos en el mundo de las
lneas de cdigo.

En esta ocasin nos dedicamos a exponer todas las nociones y ejemplos que nos ayuden a
entender las primeras estructuras de control que aprende todo futuro programador, como son
los condicionales o alternativas. La clase fue impartida por Alberto Basalo, colaborador de
DesarrolloWeb.com co-autor del Manual de AngularJS y profesor en diversos cursos de
EscuelaIT y otros centros de formacin.

En este artculo encontrars el resumen de la clase en texto, as como la grabacin en vdeo de


la clase, que se imparti, en vivo a travs de videoconferencia. Adems tambin
disponibilizamos las diapositivas usadas durante la clase. El vdeo y las diapositivas de la
presentacin lo encuentras al final de este texto.

Necesidad de los condicionales


En el vdeo Alberto comienza hablndonos de la necesidad de los condicionales, dado que los
ordenadores no toman decisiones por ellos mismos, tenemos que ensearles de alguna manera
y para ello construimos las estructuras de alternativa. Con ello ya le podemos aplicar algo ms
de inteligencia a nuestros programas y podrn dejar ser tan secuenciales como los que vimos
en la clase de los algoritmos.

Con la analoga de la receta, nos pone varios casos en los que debo tomar decisiones para hacer
cosas, como agregar sal si est la comida sosa o apagar el fuego si est la comida lista.

Definicin de las alternativas

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 20 de 45
Curso de programacin

Las alternativas o condicionales controlan el flujo de un programa, tomando


decisiones en base a expresiones. Nosotros como programadores debemos anticiparnos y
deducir qu posibilidades pueden ocurrir en un algoritmo o programa y dar respuesta a cada
una de ellas.

Con ello el ordenador deja de ser "tonto" y comienza a poder tomar algn tipo de decisin.

Luego se analiza que las condiciones son muy habituales en nuestros procedimientos
cotidianos:

Si llueve llevo paraguas

Si me llega el dinero me compro un porttil, si no me comprar una tablet

Los lunes y mircoles tengo partido, los martes clase de ingls y el jueves francs. Los
dems das libres.

Al realizar programas de gestin, o cualquier otro tipo de programas debemos pensar en esas
situaciones, que a veces nos las marca la propia lgica de la aplicacin que estamos realizando.
Si te piden hacer un sistema que vende entradas para un partido y que se apliquen descuentos
para ciertas personas, como jubilados o socios, pues entonces tendrs que usar condicionales
para observar esas situaciones, si se cumplen o no, a fin de dar el precio de la entrada con el
descuento que toca, si es que toca aplicar algn descuento. Sobre una situacin como esa
Alberto nos realiz diversos ejemplos.

Ejemplos de programacin
En el bloque principal de la clase Alberto nos introdujo ya cdigo Javascript para resolver
situaciones en las que entraban en juego los condicionales. Nos explic:

Partes de un condicional

Cmo declarar las expresiones que se deben evaluar para saber si se debe ir por un lado
o por otro del condicional

Cmo se pueden hacer estructuras condicionales complejas.

Para calcular expresiones se usan las variables del sistema, se pueden usar operadores lgicos
que nos han explicado ya para crear todo tipo de expresiones, tan complejas como queramos.

La estructura condicional en Javascript (y en la mayora de los lenguajes) se declara con la


palabra "if". La expresin se coloca a continuacin entre parntesis. Luego opcionalmente se
puede colocar un bloque "else", que permite ejecutar acciones en el caso contrario. Tanto el
bloque if como el bloque else tiene unas llaves que delimitan el cdigo que debe ejecutarse en
cada uno de esos casos.

if(abonado){

precio = 90;

} else {

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 21 de 45
Curso de programacin

precio = 100;

Todo se vio a lo largo de varios ejemplos en los que se fue agregando dificultad y nuevas
expresiones como "else if". Al final tambin se introdujo la posibilidad de anidar los if,
colocando unos dentro de otros, para crear todo tipo de flujo condicional tan complejo como
sea necesario.

Otro punto interesante explicado es la posibilidad de escribir una expresin condicional de


varias maneras. Vimos que varios flujos de programa podran resolver diversas situaciones,
pero en la mayora de los casos habr una manera optimizada de expresar los condicionales,
para resolver el problema con menos lneas de cdigo y de una manera ms clara. Como
programadores muchas veces tenemos que optimizar esas situaciones para conseguir que el
cdigo sea lo ms fcil de entender, ya sea por nosotros o por otras personas que estn en el
mismo proyecto, ahora o en el futuro.

Las diapositivas de esta sesin sobre alternativas en la programacin las encuentras embebidas
a continuacin.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/alternativas-condicionales.html

Adems tambin te dejamos el vdeo de la clase completa para conocer a fondo las estructuras
condicionales, en trminos generales y cmo escribir esas estructuras con los bloques if, else,
else if, en Javascript.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/alternativas-condicionales.html

Este artculo es obra de Alberto Basalo


Fue publicado por primera vez en 05/02/2015
Disponible online en http://desarrolloweb.com/articulos/alternativas-condicionales.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 22 de 45
Curso de programacin

Repeticiones o bucles

Qu son las repeticiones, ms conocidos por la palabra bucle, en los lenguajes de


programacin, el por qu de su importancia y cmo se realizan en Javascript,
junto con los distintos tipos de bucles, for, while...

Esta es una clase del Curso de Fundamentos de la Programacin que realizamos con
EscuelaIT, de manera gratuita para todos los compaeros de la comunidad de
DesarrolloWeb.com. Se trata de un curso donde recorrimos los temas ms importantes a la
hora de aprender programacin, desde cero.

En el presente vdeo intervino como profesor Jos Dimas Lujn, que es el director y
presentador de los #androidIO que emitimos en DesarrolloWeb.com, autor tambin del
Manual de Android de este sitio web. Profesor en diversos cursos de EscuelaIT y en
universidades de El Caribe, Mxico.

En este texto encontrars un resumen de la clase y luego, al final, el vdeo grabado en la sesin
emitida en directo, junto con las diapositivas de la presentacin.

Qu son las Repeticiones


Las repeticiones forman parte de cualquier lenguaje de programacin, al menos en la inmensa
mayora. Se les llama estructuras de control (en realidad son un tipo de estructuras de control)
porque nos permiten controlar el flujo de ejecucin de los programas. En estas estructuras de
control lo que hacemos es repetir la ejecucin de un cdigo un nmero de veces.

El concepto es bien simple, si hay que hacer algo varias veces, usamos una repeticin. Algunas
veces sabremos el nmero de veces que debemos realizar una o varias acciones, otras veces no
se tendr claro desde el inicio, pero s se sabr que hay que repetir algo. Incluso hay procesos
en los que podramos repetir algo tantas veces como ninguna, y tambin podra ser una
repeticin.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 23 de 45
Curso de programacin

El ejemplo que usa Jos en el minuto 2 del video es el de un revisor de entradas en la puerta de
la sala del cine. l tendr que recibir la entrada de cada una de las personas que entran en la
sala, as que encontramos una repeticin. Sin embargo no sabe cuntas veces lo va a tener que
hacer. Algunas veces pueden entrar muchas personas, hasta la capacidad mxima de la sala,
pero en algunos horarios con menos pblico pueden venir pocas personas, incluso tan pocas
como una, o ninguna persona. En trninos de programacin informtica, aunque no entre
ninguna persona a la sala del cine, igualmente es una repeticin.

A veces las repeticiones son ms complejas y no tienen por que ser una nica accin, ya que el
ciclo puede tener muchas operaciones a ser repetidas.

Partes de una repeticin


En una repeticin, por muy simple o compleja que sea, vamos a encontrar tres elementos
principalmente. Podemos encontrarlos en todas las repeticiones, aunque a veces nos podemos
referir a ella con nombres distintos. Jos nos las introdujo a partir del minuto 10 del vdeo:

Inicializacin: es la creacin de una variable o alguna estructura para poder llevar el


control de las repeticiones.
Condicin: es la condicin que se evaluar en cada paso de la repeticin, para saber si
se debe seguir ejecutando algo. El ejemplo que pona era de un juego de ordenador. T
tienes los enemigos del juego a los que disparas. Disparas hasta que el enemigo se
muera. Esa condicin "hasta que el enemigo se muera" es la condicin.
Incremento: en cada paso del bucle cambiarn las condiciones del programa,
probablemente se incrementar algo en una variable, que luego se evaluar en la
condicin para ver si se debe de continuar el bucle.

Tipos de bucles
A partir del cuarto de hora de clase nos muestra ya cdigo en Javascript para mostrarnos los
tipos de bucles o repeticiones que vamos a tener disponible en este lenguaje.

El bucle FOR es el que explica para comenzar y es el bucle donde mejor se encuentran o se
localizan las tres partes de una repeticin. Su sintaxis es esta:

for (inicializacin; condicin; incremento){

//instrucciones de la repeticin

Tambin nos explica en la clase otros bucles disponibles en Jacascript, como son el while y el
do...while, junto con una explicacin sobre qu situaciones son ideales para uno y otro bucle.
Muy en resumen:

El bucle for se usa generalmente cuando sabes el nmero de veces que debes ejecutar
algo y las condiciones las puedes expresar de manera numrica.
El bucle while se usa generalmente cuando no sabes el nmero de veces que debes
ejecutar algo. Tambin es necesario cuando la condicin para ejecutar el bucle no
depende de algo que pueda ser numrico, por ejemplo, pedir una clave al usuario hasta

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 24 de 45
Curso de programacin

que sta sea la vlida. Como podrs ver, no sabes el nmero de veces que un usuario
introducir texto hasta que acertar la clave.
El bucle do...while es exactamente igual que while, solo que sabes con seguridad que
debes hacer algo al menos una vez. Por ejemplo, el bucle del ejemplo anterior, pedir la
clave hasta que el usuario te de la clave verdadera, sera bueno para realizar con una
estructura do...while, porque siempre sabes que la clave la vas a tener que pedir al
menos una vez.

Durante los ejemplos que nos mostr Jos incidi mucho en que, muchas veces, un mismo
problema lo puedes resolver de distinta manera. Una repeticin que resuelves con un for, de
una manera parecida la podras resolver con un while, solo es cuestin de saber expresarse en
el cdigo.

En fin, lo mejor es ver el vdeo para entenderlo todo y acceder a las explicaciones completas del
profesor para introducirse en los bucles y cmo expresarlos en Javascript.

Las diapositivas de la presentacin las tienes a continuacin:

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/repeticiones-bucles.html

Ahora tienes el vdeo completo de esta clase del curso de programacin, dedicada a los bucles.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/repeticiones-bucles.html

Este artculo es obra de Jos Dimas Lujn


Fue publicado por primera vez en 11/02/2015
Disponible online en http://desarrolloweb.com/articulos/repeticiones-bucles.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 25 de 45
Curso de programacin

Subprogramacin, funciones

Subprogramacin es la forma ms bsica de organizar el cdigo de los programas


informticos, en la mayora de los lenguajes de programacin implementada por
medio de las funciones. Vdeo de una clase completa con ejemplos en Javascript.

La subprogramacin es uno de los temas ms bsicos y fundamentales para poder hacer un


cdigo entendible y bien estructurado, algo que encontramos en todos los lenguajes de
programacin actuales.

Esta es una clase en vivo, que ahora puedes ver en su grabacin, emitida en el contexto del
Curso de Programacin que realizamos gratuitamente para todos los interesados de la
comunidad de DesarrolloWeb.com / EscuelaIT. La imparti Claudio Morales @pronuer, que es
el lder de la Comunidad de PHP de Mxico.

A continuacin encontrars un resumen de la clase y al final el vdeo con la grabacin y las


diapositivas usadas durante la presentacin.

Qu es subprogramacin
La subprogramacin es fundamental en cualquier lenguaje de programacin, aunque no existe
desde siempre. Al principio los lenguajes no facilitaban la creacin de subprogramas y todo el
cdigo se escriba en una secuencia interminable de lneas con sentencias. Solo con la
programacin estructurada aparecieron las primeras herramientas para crear subprogramas.

En definitiva, es una manera elemental de crear y mantener el cdigo de los programas, que
nos permite dividir los problemas en partes ms pequeas, ms fciles de implementar. Sirven
por tanto para organizar nuestro cdigo, pero nos ofrecen diversas otras ventajas.

Los subprogramas se implementan por medio de lo que conocemos como funciones o


procedimientos. No son ms que una lista de sentencias que se escriben para resolver
problemas, con algoritmos que pueden operar de manera independiente. Esas piezas de cdigo

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 26 de 45
Curso de programacin

se pueden invocar desde diversos sitios de un programa, las veces que se desee, o se necesite.

Por ejemplo, si tenemos un aplicacin de gestin empresarial, podras tener un programa que
te resuelva todo el tema de facturacin. Sin embargo, ese objetivo puede ser lo suficientemente
grande y complejo para crear varios subprogramas. Por ejemplo, uno para crear facturas, otro
para borrarlas otro para enviarlas por email al cliente, y as puedes tener tantos subprogramas
como necesites, abonar facturas, marcarlas como pagadas, crear clientes, etc. Incluso, puede
haber subprogramas que llaman a otros subprogramas, quizs al crear la factura necesitas
invocar el subprograma que crea un cliente.

Esa estructura de funciones y funciones que llaman a otras funciones (aqu cuando me refiero
a funciones no es ms que un sinnimo de subprograma), es la base del primer modo de
jerarquizar que apareci en los lenguajes de programacin, que nos ayuda no solo a resolver un
problema complejo, sino que nos permite entenderlo mejor y tambin facilita el
mantenimiento del cdigo, una vez el programa ya ha sido creado.

Pero adems, la subprogramacin facilita muchas otras necesidades de un buen programa,


como la de no repetirse uno mismo y reutilizar el cdigo que se ha escrito en el mayor nmero
de oportunidades posible. En el vdeo que vers m abajo nos explican muy bien la necesidad
de las funciones y cmo y por qu sirven para reutilizar el cdigo.

Cmo se implementan los subprogramas o funciones


Una vez entendido el concepto de subprograma, y sabiendo que en muchos lenguajes se
implementa por medio de las funciones, en esta clase de programacin se ahond en el modo
de crearlas en el lenguaje Javascript.

Durante la clase se explicaron los modos de crear subprogramas, es decir, la declaracin de


funciones. Nos referimos a las cosas bsicas que todo programador debe conocer, como la
definicin de funciones, ya en cdigo Javascript. Se explic adems todo lo relacionado con la
subprogramacin, como paso de parmetros, valores de devolucin, etc. Sobre todo ello,
realizamos varios ejemplos de funciones para que los estudiantes sean capaces de implementar
ese conocimiento y ponerlo en marcha en lneas de cdigo.

Tambin se muestra cmo se invocan las funciones en un cdigo, por medio del nombre de la
funcin y se hizo mucho hincapi en mostrar como un programa mejora en muchos sentidos
cuando se realizan funciones para implementar aquellas tareas bsicas.

Durante la clase se vieron varios ejemplos de funciones distintas que servirn de banco de
pruebas para cualquier persona que desee realizar sus propias prcticas.

API de Javascript
En el ltimo bloque de esta clase se dio a conocer el API de Javascript, de una manera
introductoria. Se explic que cualquier lenguaje ofrece un conjunto de funciones ya listas para
realizar tareas bsicas, como entrada y salida de datos, trabajo con fechas, estructuras de datos
como arrays, trabajo con cadenas, matemticas, etc.

Javascript es un lenguaje con una extenssima cantidad de funciones, que no solo nos sirven

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 27 de 45
Curso de programacin

para realizar programacin bsica, sino que nos permite adems controlar miles de aspectos
del navegador, como la ventana, el historial de navegacin, el almacenamiento local y un largo
etc.

Materiales para seguir esta clase de funciones


A continuacin te proporcionamos las diapositivas de esta clase dedicada a la
subprogramacin.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/subprogramacion-funciones.html

El vdeo de la clase, en su grabacin, lo puedes ver ahora, esperamos que puedas aprender
muchas cosas y disfrutes con las explicaciones del profesor.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/subprogramacion-funciones.html

Este artculo es obra de Claudio Morales Godinez


Fue publicado por primera vez en 18/02/2015
Disponible online en http://desarrolloweb.com/articulos/subprogramacion-
funciones.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 28 de 45
Curso de programacin

Qu son los objetos

Una clase elemental de introduccin a la programacin orientada a objetos en la


que se aclaran conceptos como objeto, clase, mtodo, propiedad, estado o
mensaje, conociendo la sintaxis de OOP en Javascript.

En esta clase se ofreci una introduccin los objetos en el contexto de la programacin y la


Programacin Orientada a Objetos (siglas POO o en ingls OOP) en general. La imparti
Miguel Angel Alvarez, fundador de DesarrolloWeb.com y EscuelaIT.

La programacin orientada a objetos es un tema ya algo avanzado y quizs en el Curso de


Programacin bsico que estamos dando es un poco ambicioso querer tratarla con detalle. Sin
embargo, hoy la mayora de los lenguajes son orientados a objetos y en casi todos tenemos que
trabajar con objetos para realizar nuestros objetivos. Ese es el motivo por el que hemos
incorporado esta clase.

El objetivo, por tanto, es explicar los conceptos fundamentales relacionados con los objetos, de
modo que nos suenen y podamos entender las bases de este modelo de programacin, presente
en Javascript, pero tambin en muchos otros lenguajes populares.

Esta es una clase que requiere un esfuerzo especial, para abrir la mente y asimilar conceptos
un poco ms abstractos. Por eso os pido un poco de paciencia y aunque al principio puedan
parecer conceptos complicados observareis que poco a poco se va entendiendo mejor de qu se
trata esto de los objetos.

A continuacin tienes un resumen en texto del contenido de esta clase y al final encontrars
embebido el vdeo completo de esta clase, donde se amplia esta informacin, junto con las
diapositivas.

Nota: La clase de objetos la hemos decidido partir en dos vdeos, en este tienes
conocimientos generales de objetos y en el siguiente vers cmo aplicar esos conocimientos

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 29 de 45
Curso de programacin

a Javascript, explicando la sintaxis de objetos en ese lenguaje y ejemplos.

Qu es un objeto?
Luis Fernndez lo defini al hablarnos sobre tipos de datos : Agrupaciones heterogneas de
datos simples, con sus operaciones.

Quizs de momento es un poco difcil de asimilar el mundo de los objetos por medio de esa
definicin, pero a lo largo de la clase se explicar ms detalladamente y podrs entender la
frase.

Qu es la Programacin Orientada a Objetos?


En esta clase comenzamos aclarando lo que es la Programacin Orientada a Objetos. El
objetivo es ms ver lo que son los objetos en si, pero es interesante saber de dnde salen.

La Programacin orientada a objetos es un paradigma de la programacin en el que, como en


la vida real, un universo de objetos colaboran para llevar a cabo las acciones.

Ej: ser humano. Cualquiera de nosotros podra ser descompuesto en una serie de objetos, que
forman sistemas y que colaboran entre si para llevar a cabo una vida humana. En la OOP se
intenta llevar este mismo esquema al desarrollo de software, que se repite tanto en la
naturaleza como en las estructuras o sistemas creados por nosotros.

De manera formal, un Objeto en el marco de la POO / OOP es un ejemplar concreto, una


unidad de algo cuyas caractersticas han sido definidas en una clase.

Como veis, ninguna de estas definiciones somos capaces de asimilarlas todava al 100% y, ni
mucho menos nos hacen entender qu son esto de los objetos. As que tendremos que
remontarnos un poco ms atrs para poder dar una definicin que seamos capaces de
entender.

Al principio de los ordenadores, todo eran ceros y unos


Hoy tambin, pero hemos pasado de largo esa etapa y para ti como programador saber que
dentro son todo ceros y unos no debe pasar de ser una mera curiosidad. Pero imagina en una
poca en la que los programadores tuvieran que expresar los algoritmos en ceros y unos...

Rpidamente lleg el lenguaje Ensamblador: Afortunadamente para los programadores


de esa poca pas rpido y la mayora nunca tuvo que enfrentarse a la construccin de un
programa solamente con ceros y unos. En vez de eso se utilizan lenguajes como el
ensamblador. Ese lenguaje nos provee unas instrucciones de muy bajo nivel con las que
realizar operaciones muy muy bsicas a nivel de hardware.

Lenguajes de alto nivel y Javascript: Antes de la llegada de Javascript hay varios pasos
intermedios, pero observis que con Javascript es ms sencillo de programar que con ceros y
unos o con el lenguaje ensamblador. Esto es porque los lenguajes cada da se parecen ms a la

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 30 de 45
Curso de programacin

forma de expresarnos de las personas. Este tipo de lenguajes menos cercanos a la mquina y
ms a la expresin de los humanos se les llama lenguajes de alto nivel.

Por qu creis que los lenguajes evolucionan? Para hacerle ms sencillo al


programador resolver las necesidades, expresando algoritmos en un idioma ms prximo al
lenguaje hablado o escrito, que ya conocemos perfectamente.

Lenguajes Orientados a Objetos


En la evolucin de los lenguajes de programacin, por diversos motivos que se tardara
demasiado en explicar, los lenguajes orientados a objetos mejoran la manera de expresar los
algoritmos. Estos lenguajes son capaces de mayores cotas de abstraccin, modularidad,
jerarquizacin, que son caractersticas deseables de cualquier programa. En resumen, con lo
que te tienes que quedar ahora, es que por medio de POO los programadores pueden hacer
programas ms complejos de una manera ms fcil. Y no solo eso, tambin nos permite un
mantenimiento ms sencillo, lo que redunda siempre en costes menores en el desarrollo de
software, programas mejor hechos y capaces de realizar cosas ms complejas.

Una de las muchas cosas que evolucionaron en los lenguajes tiene que ver con los tipos de
datos.

Tipos de datos en la evolucin de los lenguajes


Como recordars, los tipos de datos en Javascript son:

Numrico

Cadena

Lgico (boleano)

Con estos tipos de datos, que son los principales en la mayora de lenguajes, se llaman
primitivos. Sobre ellos se construye cualquier cosa, se hace un excitante juego de carreras de
coches, "se lleva un cohete a la luna"...

Pero qu pasa con los tipos de datos ms complejos? Por ejemplo, piensa en una coordenada
en el eje 2D. La coordenada se define por dos valores (x,y).

Nota: Si recuerdas, en la clase de los primeros algoritmos resolvimos la coordenada


creando dos variables por separado. Pero esto se puede mejorar.

Si quieres que vayan juntas puedes usar una estructura de un array, una variable con mltiples
compartimentos para guardar cosas. Como las carpetas con compartimentos donde guardas
por separado los apuntes de cada asignatura. Veremos soluciones como stas de los arrays en
la clase dedicada a las estructuras de datos.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 31 de 45
Curso de programacin

Una coordenada est compuesta por dos nmeros (elementos de tipo de datos numrico), pero
en la prctica, en muchas ocasiones queremos juntar cosas diferentes.

Agrupaciones heterogneas
Piensa en elementos como estos, que tienen que ser manejados en multitud de programas:

numrico para el nmero de la factura.

cadena para el nombre del cliente

boleano para decir si est pagada o no

numrico para el id_usuario

cadena para su nombre

boleano para decir si tiene su email verificado

Observars que en estos, y muchos otros, elementos de los programas necesitas mezclar cosas
distintas. Podramos usar un array, pero enseguida veris que se nos queda corto y lo que es
peor, en muchos lenguajes no se pueden meter cosas de tipos distintos en un mismo array.
Osea, si haces un array en C, todos los elementos de ese array deben tener el mismo tipo.

No solo hay datos, tambin hay operaciones


Ahora, los lenguajes no solo permiten trabajar con datos. Es ms, los programas toman sentido
cuando permiten realizar operaciones con esos datos. As pues, observars que por otro lado
tenemos las funciones.

Volvemos a la coordenada. Dentro de un programa puedes querer hacer cosas con la


coordenada:

Restarle o sumarle otra coordenada

Trasladarla en el eje x o en el eje y

Con dos coordenadas podrs querer saber la distancia que las separan

Todas esas funciones, con lo que sabis ahora, se tienen que definir por separado. Es decir, en
los lenguajes tenemos por una parte los datos, en variables o estructuras, y por otra tenemos
las funciones. Quizs hoy todava no sois capaces de ver la problemtica de ello o la manera de
mejorar esa situacin, pero muchas personas pensantes han llegado a soluciones. Para que lo
puedas ver, quizs sea bueno realizar un anlisis.

Plantate que quieres saber la distancia de dos puntos (este algoritmo se explic en la clase de
primeros algoritmos en Javascript).

function distancia_dos_puntos(ax, ay, bx, by){

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 32 de 45
Curso de programacin

//Calculo componente horizontal

//Calculo componente vertical

//Hago el cuadrado de las componentes

//Las sumo

//Aplico la raz cuadrada

//Devuelvo el resultado

Qu te parecera si a una coordenada (que en principio dijimos que eran dos datos con dos
puntos, en el eje de las x y de las y) adems pudieras pedirle que realizara operaciones. En ese
caso podras resolver esa operacin de solicitar la distancia simplemente pidindole a la
coordenada que te la indique.

"Cooordenada, por favor, dame la distancia con otra_coordenada"

Cuando tenemos estructuras de datos heterogneas como una factura, o un usuario nos resulta
extremadamente til que dentro de ellas tambin se incluyan una serie de funcionalidades
asociadas, porque simplifica mucho el trabajo con ellas.

factura aparte de guardarme simplemente esos datos, tambin me resulta cmodo que
responda a las cosas que yo necesito hacer sobre una factura:

registrar pago

calcular precio sin iva

calcular precio con iva

Agregar un nuevo producto a la factura

imprimir

Abonar factura en caso de devolucin

A un usuario me resultara muy til que pudiera realizarme operaciones como:

Verificar si es vlido

abrir o cerrar sesin

dar de baja

Todo ello nos facilita la programacin, simplifica el cdigo y permite una mayor reutilizacin y
modularidad. Resumo algunos detalles.

Defino las facturas una vez y luego puedo crear tantas como desee, todas tendrn los datos de
cada factura de mi programa y respondern a operaciones habituales que yo necesite. En mi
programa de gestin, que trabaja con facturas, simplemente les pido a las facturas que hagan
cosas, por favor factura, imprmete, abnate, dime tu precio sin iva... Soy capaz de reutilizar el
cdigo de mis facturas para cualquier programa de gestin que deba trabajar con facturas.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 33 de 45
Curso de programacin

Volvamos a las definiciones de objetos


Con lo que sabis ya, ahora somos capaces de tomar de nuevo esas frases que nos servan para
definir un objeto:

Agrupaciones heterogneas de datos simples, con sus operaciones. Es un ejemplar de un tipo


de elemento, constituido por una serie de datos que lo definen, junto con una serie de
operaciones que podras hacer con este tipo de elemento.

Terminologa cuando trabajamos con objetos


Hasta lo que hemos visto en este punto del resumen de la clase hemos cubierto ms o menos
los primeros 15 minutos de clase. En realidad hay mucha ms informacin, ya que hasta ahora
solo se han explicado un poco los motivos por los que existe la programacin orientada a
objetos.

En la presentacin se abord la programacin orientada a objetos desde un punto de vista ms


acadmico, definiendo cada uno de los integrantes en este paradigma.

Clase

Objeto

Propiedad

Mtodo

En el siguiente vdeo veremos cmo aplicar este conocimiento ya en el lenguaje Javascript,


viendo la sintaxis y algunos ejemplos interesantes que nos ilustren mejor todos estos
mecanismos.

A continuacin tienes el vdeo de esta parte de la clase de objetos.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/objetos-lenguaje-informatico-introduccion.html

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 27/02/2015
Disponible online en http://desarrolloweb.com/articulos/objetos-lenguaje-informatico-
introduccion.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 34 de 45
Curso de programacin

Trabajo con objetos en Javascript

Clase dedicada a aprender a usar objetos en el lenguaje Javascript, creacin de


objetos, acceso a propiedades, mtodos, objetos incorporados, etc.

Esta es la clase dedicada a objetos del Curso de Programacin bsico que realizamos en
DesarrolloWeb.com en enero de 2015. En ese curso impartimos una clase dedicada a los
objetos, que estuvo muy bien para todos aquellos que quieran comenzar con este paradigma de
la programacin.

La clase actual pertenece a la exposicin de objetos, dedicada al uso de los objetos dentro del
lenguaje Javascript. Consulta el vdeo anterior si quieres saber qu son los objetos y conocer
sus conceptos relacionados.

Ten en cuenta que en este texto encontrars solo un resumen de la clase y para encontrar el
contenido completo tendrs que ver el vdeo de la clase, impartida por Miguel Angel Alvarez.
Al final de este texto est embebido el vdeo.

Programacin orientada a objetos en Javascript


Antes de empezar hay que mencionar dos puntos clave para entender los objetos en el contexto
de este lenguaje:

1) Javascript acepta OOP, pero es un poco particular con respecto a aproximaciones ms


tradicionales como las de Java o PHP. 2) Adems, en Javascript podemos programar con
programacin estructurada (uso de funciones y datos por separado) o OOP.

Estos dos puntos hacen que Javascript no sea el mejor lenguaje para aprender a programar con
orientacin a objetos, pero esperamos que no sea un inconveniente para entender cmo se
aplican los conceptos de OOP.

Sintaxis de OOP en Javascript

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 35 de 45
Curso de programacin

El proceso de instanciacin se realiza, como en muchos otros lenguajes, por medio del
operador "new".

//Operador new

var factura1 = new Factura();

La variable sobre la que guardo un objeto es igual que cualquier otra variable conocida hasta
ahora. Esto lo podrs leer como "asigna en la variable factura1 el resultado que se produzca al
instanciar un nuevo objeto de la clase Factura".

Nota: Ojo, en Javascript no existen las clases como tal. Esto va a cambiar en futuras
revisiones del lenguaje, pero, como veremos ms tarde, no existe la "clase Factura" como
tal, sino que simplemente es una funcin.

El acceso a propiedades y mtodos de los objetos se realiza por medio del operador punto ".",
indicando primero el objeto (el nombre de la variable donde he almacenado un objeto),
seguido de punto (.) y luego el nombre de la propiedad o mtodo a acceder, teniendo en cuenta
que los mtodos al ser funciones, requieren los parntesis detrs para realizar el paso de
parmetros.

factura1.cliente = "EscuelaIT";

factura1.imprimir();

Ahora veamos cmo se define la clase factura, apreciando que no es ms que una funcin. Eso
es algo muy particular de Javascript, dado que en este lenguaje no existe el concepto de clase.

function Factura(){

this.imprimir = function(){

alert("cliente: " + this.cliente);

Las operaciones de instanciacin y de acceso a sus atributos o mtodos se pueden hacer como
hemos visto.

var factura1 = new Factura();

factura1.cliente = "Miguel";

factura1.imprimir();

Objetos incorporados en Javascript


En Javascript, como en cualquier lenguaje, nos ofrecen una serie de libreras para realizar

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 36 de 45
Curso de programacin

operaciones tpicas, como trabajo con fechas, matemticas, arrays, cadenas, etc. En este
lenguaje esas funciones nos las ofrecen por medio de objetos incorporados. En esta exposicin
se hizo un rpido listado de los objetos incorporados y el sentido de su existencia:

Math (clculos matemticos)

Date (trabajo con fechas y horas)

String (operaciones con cadenas de caracteres)

Array (realizar cosas sobre los arrays)

...

Estos objetos incorporados los vimos ya en uso durante las clases del curso y en esta clase te
explicamos cmo usarlos. Se vi un ejemplo de uso de las funciones de cadenas.

var cadena = "EscuelaIT";

alert (cadena.length);

alert (cadena.toLowerCase());

Al ver ese cdigo aprecia que en Javascript las cadenas de caracteres se comportan como si
fueran objetos. Con cadena.length accedemos a la propiedad que contiene el nmero de
caracteres de la longitud del string. Con cadena.toLowerCase() alteramos una cadena, donde
puede haber maysculas y minsculas, para que solo tenga minsculas.

Tambin vimos ejemplo del trabajo con la clase Date de Javascript, para trabajo con fechas.

var fecha = new Date();

var diames = fecha.getDate();

var mes = fecha.getMonth() + 1;

var ano = fecha.getFullYear();

document.write("Hoy: " + diames + "/" + mes + "/" + ano);

En este caso creamos una nueva fecha y luego extraemos los valores de dias, meses y aos,
para luego imprimirlos en la pgina.

Nota: Observars que document.write() es muy parecido a lo que acabamos de conocer


como "invocacin a un mtodo", de hecho es un mtodo (write) sobre un objeto
(document). Ese objeto document es un objeto que ya te da creado Javascript y
corresponde con el documento o pgina que se est visualizando. El objeto document forma
parte de las cosas que estn disponibles al programar Javascript en el contexto de un
navegador y es un elemento del DOM (document objetc model) que veremos a continuacin
y que te cansars de ver si te introduces con detalle en las lecciones de Javascript que
encontrars en DesarrolloWeb.com.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 37 de 45
Curso de programacin

Se ofrecieron otros ejemplos de objetos incorporados dentro del vdeo completo.

DOM en Javascript
El Document Object Model (DOM) contiene una correspondencia en objeto de cada uno de los
elementos del navegador. Es decir, todos los elementos de la pgina estn representados
dentro de lo que se conoce como DOM y disponibles para los programadores en Javascript. En
el DOM encontramos objetos que corresponden con elementos presentes en el navegador
(ventana, historial, etc.) y en el documento o pgina que se est visualizando (cuerpo,
etiquetas, elementos de formulario, etc.).

Cambiando el estado del DOM, cambiamos el estado de los elementos de la pgina. Ese es el
mecanismo por el cual mediante Javascript podemos alterar el estado de la pgina, muy
habitalmente como respuesta a acciones del usuario (eventos).

Dentro del DOM hay elementos simples, como podra ser un prrafo, o una etiqueta DIV, pero
algunos tan complejos como el elemento CANVAS que tiene una complejidad muy grande y
una cantidad enorme de funciones y mtodos orientados a dibujar cualquier tipo de diseo de
mapa de bits en una pgina web.

En la penltima parte de este vdeo veremos un ejemplo de trabajo con el API (juego de
funciones) de Canvas, para crear una imagen realizada dinmicamente por medio de
Javascript.

El cdigo lo dejo a continuacin, aunque recordar que en DesarrolloWeb.com tenemos un


manual completo para ensear a trabajar con el elemento Canvas.

var canvas = document.getElementById('micanvas');

var context = canvas.getContext('2d');

var circulos = prompt("dime cuantos circulos", "");

circulos = parseInt(circulos);

context.beginPath();

if(circulos > 0){

context.arc(75,75,50,0,Math.PI*2,true);

context.fillStyle = '#272298';

context.fill();

if(circulos > 1){

context.beginPath();

context.arc(85,54,21,0,Math.PI*2,true);

context.fillStyle = '#fcfdff';

context.fill();

context.beginPath();

context.arc(88,52,14,0,Math.PI*2,true);

context.fillStyle = '#dbf6fd';

context.fill();

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 38 de 45
Curso de programacin

context.beginPath();

context.arc(90,53,6,0,Math.PI*2,true);

context.fillStyle = '#101010';

context.fill();

Recorridos a propiedades de objetos


La clase finaliz explicando acerca de los recorridos genricos a las propiedades de un objeto,
que es algo que nos qued pendiente de ver cuando realizamos la clase sobre las estructuras de
control.

En el ejemplo se mostr adems que en Javascript podemos definir objetos a partir de un


literal, con una sintaxis como la que conoceremos si alguna vez hemos trabajado con JSON.

var usuario = {

nombre: "Manolo",

edad: 35,

autenticado: true

};

for(campo in usuario){

alert(campo);

alert(usuario[campo]);

Las primeras lneas son la definicin de un objeto por medio de su literal y el bucle for nos
permite realizar un recorrido por todas sus propiedades. Decimos que es un recorrido genrico
porque da igual el nmero o nombre de sus propiedades, independientemente de ellos el bucle
los recorrer todos, accediendo tanto al nombre del campo como a su valor.

Por aqu os dejamos el corte del vdeo publicado en YouTube:

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/trabajo-objetos-javascript.html

Este artculo es obra de Miguel Angel Alvarez


Fue publicado por primera vez en 31/03/2015
Disponible online en http://desarrolloweb.com/articulos/trabajo-objetos-javascript.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 39 de 45
Curso de programacin

Estructuras de datos

Qu son las estructuras de datos ms fundamentales en en mundo de la


programacin, y cmo se implementan algunos ejemplos en Javascript.

En este vdeo os presentamos uno de los contenidos bsicos que todo programador debe
conocer cuando est empezando, como son las estructuras de datos. Es una clase del Curso de
los fundamentos de la programacin, que impartimos a principios de 2015. La clase la ofreci
Jos Dimas Lujn, profesor de universidad en Cancn.

La clase trata de explicar en trminos generales qu son las estructuras de datos y por qu son
importantes en el mundo de la programacin, aplicaciones e implementaciones bsicas.

Qu son las estructuras de datos?


Pensemos en algunas cosas del da a da. Siempre tenemos necesidades bsicas, como agrupar
las cosas. Por ejemplo el armario de tu casa, donde tienes un conjunto de camisetas, no las
mezclas con los zapatos o los pantalones no? Las estructuras de datos en la programacin te
sirven para acomodar los datos de cierta forma.

Los tipos de estructuras de datos que se usan en la programacin tambin son similares a los
que encuentras en tu da a da. Por ejemplo, las camisetas de tu armario probablemente estn
una encima de la otra y muchas veces (al menos los hombres solemos hacer eso) coges la
camiseta que est arriba del todo porque es la ms fcil de retirar y porque no quieres
preocuparte con aquello de "qu me pongo hoy". Fuera de bromas, estructuras de datos
encuentras en la pila de lavar los platos, en la cola de los ingresos del cine, en la fila para subir
al autobs, etc. Ahora solo falta verlas en trminos de programacin.

Adems, en cada lenguaje de programacin podemos usar diferentes estructuras de datos y


diferentes implementaciones de las ms bsicas, como las listas, colas, pilas, que suelen estar
presentes en la mayora de los lenguajes. Si entendemos el concepto, importa poco la sintaxis,
porque la podremos realizar nosotros mismos en trminos de cdigo o la encontraremos en
diversas fuentes como libros o tutoriales.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 40 de 45
Curso de programacin

Tipo ms usado de las estructuras de datos: arrays, arreglos


A los arrays, palabra inglesa muy usada en trminos de programacin, tambin los conocemos
como arreglos, vectores, matrices, etc. No importa mucho cmo quieras referirte a ellos, el caso
es que estn representados en casi todos los lenguajes de programacin y se usan
intensivamente para hacer todo tipo de programas y estructuras ms complejas.

Un array es una estructura de datos y es la ms usada en la programacin. Un array es un


contenedor donde podemos agrupar diversos elementos dispuestos en casillas. Puede haber
arrays de una nica dimensin o de varias dimensiones.

Empezando por arrays de una nica dimensin, lo puedes entender como una barra con
casillas, cada casilla es como una variable, solo que est agrupada con otras. As pues, en un
array tenemos diversas posiciones y en cada una de ellas se puede almacenar un dato. En cada
posicin de esa estructura de arreglo encontramos un dato diferente y para poder referirnos a
l usamos lo que se llaman ndices.

En Javascript solo hay arrays con ndices numricos y la primera casilla de un array siempre
empieza por el ndice cero. Por tanto, un array de 10 posiciones ira desde el ndice cero hasta
el nueve.

Sin embargo podemos tener arrays de varias dimensiones, por lo que pasaramos de tener una
estructura parecida a un vector (vectores de las matemticas), a una estructura de matriz, con
varias dimensiones.

Te sugiero ver el vdeo completo, al pie de este texto, para ms aclaraciones.

Estructuras de datos ms complejas


Sin abandonar la sencillez necesaria en estas clases de iniciacin a la programacin, en este
vdeo luego se abordaron otras estructuras de datos ms complejas, como las listas y sus
comportamientos: pilas y colas.

Para saber cmo son y cmo se comportan estas estructuras de datos simples, piensa
nuevamente en cosas de tu da a dia. Los platos para fregar en la cocina se organizan en una
pila. Los platos sucios se colocan encima del todo y cuando vas a fregarlos el primero que
tomas es el que tienes arriba. Una cola (o en lugares tambin llamada fila) es como cuando vas
al cine y quieres comprar tu entrada en la taquilla. El ltimo que llega se coloca detrs y la
taquillera atiende primero al que lleg antes.

Esas estructuras de datos se implementan por medio de arrays, a los que se les otorga un poco
de "inteligencia" por medio de cdigo de programacin. En este vdeo se ofrecen diversas
implementaciones en Javascript. Nuevamente, te sugerimos prestar atencin a la segunda
mitad del vdeo para poder obtener ms informacin.

Funciones de los lenguajes para trabajo con estructuras de datos


Todos los lenguajes tienen diversas funciones que ofrecen al programador para hacer cosas
habituales con las estructuras. Por ejemplo, dado un array es habitual que necesites ordenarlo,

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 41 de 45
Curso de programacin

de mayor a menor, menor a mayor, orden alfabtico, etc. Para todo eso generalmente los
lenguajes tienen diversas funciones que tambin revisamos en el vdeo.

Claro que ya esas implementaciones y el abanico de posiblidades de funciones ya listas


dependen de la riqueza del lenguaje y de los tipos de estructuras de datos que ellos nos ofrecen.
En el vdeo nos centramos en Javascript, sin dejar de mencionar que si vas a Java tendrs otras
estructuras ya listas y sus funciones, as como en Python, PHP, etc.

En el siguiente vdeo encontrars mucha ms informacin, as que te recomendamos


concentrarte durante unos minutos para aprovecharlo al mximo y conocer algunas de las
cosas tpicas que se hacen en todos los programas, tanto los ms simples como aquellos ms
complejos. Si te gusta el vdeo, no dejes de darle al botoncito con el pulgar levantado!

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/estructuras-datos-programacion.html

Este artculo es obra de Jos Dimas Lujn


Fue publicado por primera vez en 29/04/2015
Disponible online en http://desarrolloweb.com/articulos/estructuras-datos-
programacion.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 42 de 45
Curso de programacin

Historia y los tipos de lenguajes de


programacin

Es una clase en la que profundizamos en los distintos tipos de lenguajes de


programacin, con una breve introduccin histrica y una completa clasificacin
atendiendo a sus caractersticas.

En este vdeo vamos a realizar un estudio de los distintos tipos lenguajes de programacin,
para conocer sus principales caractersticas y entender qu nos aporta cada uno y el motivo de
su existencia. Se trata de un conocimiento general que cualquier programador debera tener,
que le ayudar a entender mejor la disciplina de la programacin, y en definitiva su profesin.

Esta es la ltima clase del Curso de Programacin bsico que hemos realizado en
DesarrolloWeb.com y EscuelaIT y la imparti Eduard Toms @eiximenis. Al final de este texto
encontrars el vdeo con la grabacin de la clase. La clase est dividida en dos partes, en una se
trata la historia de los lenguajes de programacin y en otra se ve ms acerca de los tipos de
lenguajes que han ido apareciendo con sus detalles particulares.

Historia de los lenguajes de programacin


En la primera parte de esta clase se habl de la historia de la programacin, con un repaso
rpido, comenzando por Charles Babagge (1791 - 1871), un matemtico que desarroll una
mquina de clculo que se poda programar. La mquina nunca se lleg a construir por
problemas tecnolgicos de la poca. Luego Ada Lovelace (1815 - 1852) que fue la primera
programadora. Ella dise el primer algoritmo para la mquina de Babagge.

Se comenta en la exposicin una serie de datos curiosos cronolgicos que nos hacen una idea
buena de como ha evolucionado toda esta disciplina de la programacin. Los primeros
lenguajes, los primeros bug, los primeros ordenadores hasta llegar al 1960 con el primer
circuito integrado o 1971 el primer microprocesador o 1981 el PC.

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 43 de 45
Curso de programacin

Se introducen tambin cronolgicamente un listado de lenguajes de programacin, junto con


su fecha de lanzamiento, que seran los lenguajes "padre" a partir de los cuales se han creado
toda una variedad de lenguajes que siguen sus filosofas. En los 50 y los 60 la primera
generacin de lenguajes: Fortran, Algol, Lisp, Cobol, Simula, CPL. En los 70 lenguajes como
Pascal, C, Prolog, ML, Scheme, SQL. En los 80 se presentan los lenguajes imperativos, C++,
Matlab, Eiffel, Erlang, Perl. En los 90 Haskell, Python, Ruby, Clos, Java, Javascript, C#.
Incluso en la actualidad se siguen creando lenguajes, Dart, Swift...

Vista area de los lenguajes de desarrollo


En esta segunda parte de la clase nos centramos en la clasificacin de los lenguajes atendiendo
a diversas caractersticas y ver ejemplos de implementacin de un mismo cdigo en diferentes
lenguajes que nos permitan entender mejor sus filosofas.

El objetivo no es fijarse en los detalles sintcticos, que son aspectos determinados de un


lenguaje y que abordas cuando te pones a aprenderlo. Ms bien hay que fijarse en los
conceptos, estructuras y tipologas ms all de de cmo se escribe un lenguaje.

En cuanto a clasificacin se coment las diferencias y distintos enfoques de los lenguajes de


programacin atendiendo a tipado y su paradigma.

En cuanto a tipado se habl de los lenguajes con y sin tipos, con tipado esttico y dinmico o
fuerte o dbil. Incluso de otros conceptos como el Duck Typing o Estructural Typing.

En cuanto a Paradigma hay dos tipos de lenguajes, imperativos (que son los que ms se
conocen) y el declarativo. Los imperativos se dividen en secuenciales, estructurados,
procedurales y orientados a objetos. Los declarativos a su vez se dividen en lgicos y
funcionales. Cada uno de estos tipos se explicaron con detalle, explicando sus caractersticas y
ejemplos de lenguajes representativos de cada caso.

A partir de ah se vieron ejemplos ya con cdigo de algoritmos realizados con diferentes


lenguajes, representativos de cada uno de los tipos mencionados, como Basic, C, Pascal,
Javascript, Lisp, Prolog... y se mencionaron las novedades ms importantes que presentaron
cada uno de ellos y que represent una innovacin en su poca.

Conclusin
En resumen, esta clase significa un bao de conocimiento que sera muy interesante para que
las personas que quieren aprender programacin consigan tener una idea global de las cosas
que pueden encontrarse mediante el cual ubicar tambin las tecnologas que estn utilizando.

Como siempre, en este resumen solamente te estamos aportando una pequea parte de esta
charla dedicada a la programacin y encontrars mucha ms informacin de utilidad si te ves
el vdeo completo que puedes encontrar a continuacin.

Para ver este vdeo es necesario visitar el artculo original en:


http://desarrolloweb.com/articulos/historia-tipos-lenguajes-programacion.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 44 de 45
Curso de programacin

Finalizacin del Curso de Programacin


Con este vdeo finaliza este Curso de los Fundamentos de la Programacin. Si lo has seguido
hasta aqu tendrs una serie de conceptos esenciales que son importantes de conocer antes de
abordar con seriedad cualquier tipo de lenguaje. Los profesores y organizadores de este curso
esperamos que te haya servido de utilidad.

Estaremos agradecidos si nos das cualquier tipo de opinin o comentario, tanto a los
profesores como a @deswebcom en general. Recuerda que tienes muchos otros manuales en
nuestra web que te pueden ensear de manera detallada muchos tipos de lenguajes.

Este artculo es obra de Eduard Toms


Fue publicado por primera vez en 16/06/2015
Disponible online en http://desarrolloweb.com/articulos/historia-tipos-lenguajes-
programacion.html

http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html Pgina 45 de 45

Potrebbero piacerti anche