Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 342

cr1

Curso práctico

Desde www.ra-ma.es podrá


descargar material adicional.

Carlos Serrano

Ra-Ma-® ---
https://dogramcode.com/programacion
TypeScript
Curso práctico

Carlos Serrano

Ra-Ma�

g
Regalame un like para motivarmos a seguir subiendo más material

or
n.
https://www.facebook.com/dogr4mcode.web

io
ac
Grupo de Programación en Facebook:
am
https://www.facebook.com/groups/librosyrecursosdeprogramacion
gr
ro
op
od

Accede a nuestra Biblioteca Online Gratis!


et
.d

https://dogramcode.com/biblioteca
w
w
w

Usuario: dogramocode
Contraseña: 123

https://dogramcode.com/programacion
La ley prohíbe
fotocopiar este libro
Type.Script. Curso práctico
© Carlos Serrano
© De la edición: Ra-!vla 2020
ivLA.RCAS COMERCIALES. Las designaciones utilizadas por las empresas para distinguir sus productos (hardware, software, sistemas

g
operativos, etc.) suelen ser marcas registradas. RA-l.\1A ha intentado a lo largo de este libro distinguir las marcas comerciales de los

or
ténninos descriptivos, siguiendo el estilo que utiliza el fabricante, sin intención de infringir la marca y solo en beneficio del propietario de

n.
la misma. Los datos de los ejemplos y pantallas son ficticios a no ser que se especifique lo contrario.

io
R.A.-l.\1Aes marc.a comercial registrada.

ac
Se ha puesto el máximo empeño en ofrecer al lector una información completa y precisa. Sin embargo, R.A.-ivLA. Editorial no asume ninguna
responsabilidad derivada de su uso ni tampoco de cualquier violación de patentes ni otros derechos de terceras partes que pudieran ocurrir.
am
Esta publicación tiene por objeto proporcionar unos conocimientos precisos y acreditados sobre el tema tratado. Su venta no supone para el
editor ninguna forma de asistencia legal, administrativa o de ningún otro tipo. En caso de precisarse asesoría legal u otra fonna de ayuda
experta, deben buscarse los servicios de un profesional competente.
gr

Reservados todos los derechos de publicación en cualquier idioma.


ro

Según lo dispuesto en el Código Penal vigente, ninguna parte de este libro puede ser reproducida, grabada en sistema de almacenamiento o
op

transmitida en forma alguna ni por cualquier procedimiento, ya se.a electrónico, mecánico, reprográfico, magnético o cualquier otro sin
autorización previa y por escrito de RA-!vLA.; su contenido está protegido por la ley vigente, que establece penas de p risión y/o multas a
od

quienes, intencionadamente, reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o cien.tífica.
Editado por:
et

R.A.-l.\1AEditorial
.d

Calle Jararna, 3A, Polígono Industrial lgarsa


28860 PARACUELLOS DE JARA1v!A, Madrid
w

Teléfono: 91 658 42 80
w

Fax: 91 662 81 39
Correo electrónico: [email protected]
w

Internet: ,v1vw.ra-ma.es y W\Vw.ra-ma.com


ISBN: 978-84-9964-914-6
Depósito legal: M-7949-2020
Maquetación: Antonio García Tomé
Diseño de portada: Carlos Serrano
Filmación e impresión: Safekat
Impreso en España en marzo de

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
Parte 1
FUNDAMENTOS DE TYPESCRIPT

g
La importancia de JavaScript o EcmaScript hoy en día es indiscutible, por lo que TypeScript, siendo

or
un superset de estos lenguajes, es una potente herramienta en el mundo del desarrollo de software.

n.
Descubre por qué TypeScript se está convirtiendo en uno de los lenguajes de programación más

io
influyentes actualmente, tanto en frontend, como en backend.

ac
Su origen, evolución y futuro te darán una amplia perspectiva del entorno profesional actual.
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
1
¿POR QUÉ APRENDER TYPESCRIPT?

g
Ésta es, sin duda, la primera pregunta que se debe responder para justificar la decisión de comenzar

or
a desarrollar en este lenguaje de programación. Conocer su origen, su evolución, su estado actual

n.
del arte y su futuro son claves necesarias para encontrar las razones y motivaciones suficientes antes

io
comenzar este proyecto.

ac
Para situarnos en el estado actual emplearemos una imagen que representa el top 3 del ranking
am
PYPL (PopularitY Programming Language). Esta clasificación está basada en el número de
tutoriales de lenguajes de programación buscados en Google.
gr
ro

Rank Change Language Share Trend


op

1 Python 28.73 % +4.5 %


od

2 Java 20.0 % -2.1 %


et
.d

3 Javascript 8.35 % -0.1 %


w
w
w

Ranking lenguajes PYPL y su tendencia respecto al 2018


Sin duda, JavaScript es uno de los lenguajes más influyentes y empleados en el desarrollo web y
multiplataforma. Basta con revisar el número de repositorio en Github basados en esta tecnología,
más de un millón en el momento en el que se escribe este documento, para entender la impo1tancia
que tiene en el entorno profesional actual.

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
• Ecmascript 2019: proporciona algunos métodos para Arrays, String, Simbols y mejoras en el
parsing de JSON.

No obstante, tal como se ha explicado, el gran problema del desarrollo frontend es que la
implementación actual de JavaScript depende del navegador y, en pocos casos, se incluyen las
nuevas funcionalidades de las especificaciones más recientes.
¿Solución?
Programar con funcionalidades avanzadas de EcmaScript 2015+, y transpilar el código con
herramientas como Babel. Es decir, Babel genera JavaScript compatible con la mayoría de
navegadores añadiendo scripts Polyfills que hacen posible ejecutar nuevas funcionalidades en
navegadores que aún no las soportan. Por eso no se habla de compilar. No consiste en transformar
un lenguaje de alto nivel a un lenguaje máquina o de bajo nível, síno de transformar una

g
especificación EcmaScript en implementación JavaScript, ambos lenguajes de alto nivel. No

or
obstante, coloquialmente, se usa en ocasiones, la palabra compilar.

n.
io
¿QUÉ ES TYPESCRIPT?

ac
TypeScript es un superset de EcmaScript, es decir, incluye todas las funcionalidades de las últimas
am
especificaciones y apo11a otras que son fundamentales para la ingeniería del software, como son:
gr

• Detección de errores en el proceso de transpilación para depurar el código.


ro

• Uso de decoradores e inyecciones de dependencia.


op

• Tipado.
od
et
.d
w
w
w

https://dogramcode.com/programacion
JavaScript Next

JS Today

g
or
n.
io
ac
am
TypeScript es un superset de JS y ES
Se puede justificar su existencia conociendo la necesidad de dar estabilidad a los procesos de
gr

desarrollo en frontend. El motor de transpilado de TypeScript permite a los equipos de trabajo


ro

despreocuparse de los problemas de incompatibilidades entre navegadores. También Babel


op

proporciona esta capa de abstracción, sin embargo, carece de otras funcionalidades de ES y, ante
todo, la posibilidad de programar de forma orientada a objetos con tipado e inyección de
od

dependencias. El sistema de gestión de módulos de TypeScript permite generar grandes proyectos


et

de forma escalada e íntegra.


.d

TypeScript es un lenguaje de código abie1to creado por Microsoft. Anders Hejlsberg, arquitecto
w

principal del lenguaje de programación C#, es el principal participante en el nacimiento de este


w

lenguaje.
w

A pesar de su reciente existencia, cuenta con una gran comunidad respaldando su crecimiento y con
los principales frameworks de desarrollo apostando por la incorporación de TypeScript en sus
nuevas versiones. Entre ellos, podemos destacar:

Framework desarrollado por un equipo de Facebook para realizar aplicaciones web, PWA y nativas,
mediante React Native.

Framework desarrollado por un equipo de Google y orientado al desarrollo de aplicaciones web y

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
g
or
n.
io
ac
am
gr
ro
op
od
et
.d
w
w
w

https://dogramcode.com/programacion
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
opr
og
ra
m
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
w
w
w
.d
et
od
op
ro
gr
am
ac
io
n.
or
g
Dogram Code - comparte libros desde el año 2017

Material para los amantes de la


Programación Java,
C/C++/C#,Visual.Net, SQL,
Python, Javascript, Oracle,
Algoritmos, CSS, Desarrollo
Web, Joomla, jquery, Ajax y
Mucho Mas…

https://dogramcode.com/programacion

También podría gustarte