Escribe aquí los miembros del grupo. El primero es el representante o encargado.
- Alejandro de la Maza Villalba
- David Balsas Martín
- Alejandro Ruiz López
El profesor llevará una cajita llena de papelitos con los nombres de distintos lenguajes de programación. Los encargados de cada grupo meterán la mano en la caja y sacarán dos papelitos, de los cuales el grupo elegirá uno. Se permite hacer intercambio de papelitos entre grupos.
Escribe el lenguaje de programación elegido por el grupo.
- TypeScript
Los papelitos se han recortado de este documento.
TypeScript es un lenguaje de programación libre y de código abierto desarrollado y mantenido por Microsoft, e implementa muchos de los mecanismos más habituales de la programación orientada a objetos, pudiendo extraer grandes beneficios que serán especialmente deseables en aplicaciones grandes, capaces de escalar correctamente durante todo su tiempo de mantenimiento. Este puede ser usado para desarrollar aplicaciones que se ejecutarán en el lado del cliente o del servidor.
La característica fundamental de TypeScript es que compila en Javascript nativo, por lo que se puede usar en todo proyecto donde este use; y el navegador, o cualquier otra plataforma donde se ejecuta, nunca llegará a enterarse del código original.
En resumen, TypeScript es lo que se conoce como un "superset" de Javascript, aportando herramientas avanzadas para la programación que traen grandes beneficios a los proyectos.
La ventaja de los superset es que los lenguajes basados en un estándar evolucionan mucho más lento que las necesidades de los desarrolladores. Entonces surgen estos para expandir un lenguaje, aportando todas las herramientas que no tienen los originales para desarrollar en mejores condiciones.
Enlaces de las páginas fuentes=
Para empezar a programar en TypeScript, necesitamos instalar primero Node.js, preferiblemente la version LTS que podemos encontrar en su página oficial:
Una vez instalado abrimos el terminal y escribimos el comando:
npm install typescript -g
Si usamos Visual Studio Code no tendremos que seguir pasos adicionales, el mismo reconoce los archivos que creemos con la extension .ts por defecto.
Para trabajar con Netbeans en windows tendremos que instalar aparte la consola Cygwin:
Necesitaremos tambien instalar el complemento nbm para Netbeans
Lo instalaremos en Netbeans en el menú Tools > Plugins > Add plugins. Reiniciamos Netbeans y listo.
Para usar Typescript también podemos usar Sublime Text 3, y es tan sencillo como irnos a: package control (control + shift + p)
install package
typescript
y ya podemos seleccionar Typescript en la ventana de abajo para empezar a usarlo.
Pon en práctica el lenguaje de programación realizando los siguientes ejercicios. Para cada uno de los ejercicios, pega el código fuente de la solución y una captura de pantalla.
Creamos un archivo html:
<html>
<head>
<title>Hola mundo</title>
</head>
<body>
<script src="HolaMundo.js"></script>
</body>
</html>
Creamos un archivo HolaMundo.ts:
alert('hello world in TypeScript!');
y lo compilamos poniendo en la consola:
tsc C:\ruta del archivo .ts\
Como resultado ontendremos el archivo .js al que llamamos en el anterior html, al abrir el html con un navegador nos mostrara la siguiente ventana:
/* Prueba.ts */
alert("Introduce Altura");
let altura = ~~(prompt());
alert("Introduce Caracter");
let caracter = prompt();
//let altura = 5;
//let caracter = "*";
let cantEsp = 0;
let cantPint = 0;
let espacio = " ";
// Operaciones y Salida de Datos
for (let i = 0; i < altura; i++) {
cantEsp = altura - i;
cantPint = i + (i + 1);
// Pintar
let pintarEspacios = ""; // Creo una variable que contiene los espacios
let pintarAsteriscos = ""; // // Creo una variable que contiene los asteriscos
for (let j = 1; j <= cantEsp; j++) {
pintarEspacios += " ";// concateno los espacios
}
for (let k = 1; k <= cantPint; k++) {
pintarAsteriscos += caracter; // concateno los asteriscos
}
console.log(pintarEspacios+pintarAsteriscos);
}
Como resultado en la consola primero nos pedira que introduzcamos la altura:
Al aceptar nos mostrara la piramide de asteriscos con la altura dada:
// Defino Array
let conjuntoNumeros = [];
let contNumInt = 0;
let totNum = 20;
// Introducción de datos y coperaciones
do {
let numAle = (Math.random() * 100);
let numEntero = ~~numAle; // Casting a entero
conjuntoNumeros[contNumInt] = numEntero;
contNumInt++;
} while (contNumInt < totNum);
// Array Desordenado
let pintaArray = "";
for (let k = 0; k <= (totNum - 1); k++) {
pintaArray += conjuntoNumeros[k] + " ";
}
console.log("Array Desordenado: "+pintaArray);
//Array de primos y no primos
let conjuntoPrimos = [];
let contadorPrimos = 0;
let conjuntoNoPrimos = [];
let contadoNoPrimos = 0;
let contDivisores = 2;
for (let k = 0; k <= (totNum - 1); k++) {
let cifra = conjuntoNumeros[k];
contDivisores = 2; // No puede ser 1
let pregPrimo = true; //Presupone que el número es primo
do {
if (cifra % contDivisores == 0 && cifra != contDivisores) {
pregPrimo = false; // Si encuentra un divisor: Ya no es primo
}
contDivisores++;
} while (contDivisores < cifra && pregPrimo == false);
// Es menor que "<" porque np ùede ser el misom número
if (pregPrimo == true) {
conjuntoPrimos[contadorPrimos] = cifra;
contadorPrimos++;
} else {
conjuntoNoPrimos[contadoNoPrimos] = cifra;
contadoNoPrimos++;
}
}
// Pintar Array Primos
let pintaArrayPrimos = "";
for (let k = 0; k <= (contadorPrimos-1); k++) {
pintaArrayPrimos += conjuntoPrimos[k] + " ";
}
console.log("Array Auxiliar de Primos: "+pintaArrayPrimos);
// Pintar Array No Primos
let pintaArrayNoPrimos = "";
for (let k = 0; k <= (contadoNoPrimos-1); k++) {
pintaArrayNoPrimos += conjuntoNoPrimos[k] + " ";
}
console.log("Array Auxiliar de No Primos: "+pintaArrayNoPrimos);
// Componer Array Final
let conjuntoFinal = [];
for (let k = 0; k <= (totNum - 1); k++) {
if (k <= (contadorPrimos-1) ) {
conjuntoFinal[k] = conjuntoPrimos[k];
} else {
conjuntoFinal[k] = conjuntoNoPrimos[(k-contadorPrimos)];
}
}
// Pintar Array Final
let pintaArrayFinal = "";
for (let k = 0; k <= (totNum - 1); k++) {
pintaArrayFinal += conjuntoFinal[k] + " ";
}
console.log("Array Ordenado: "+pintaArrayFinal);
Como resultado en la consola obtendremos:
Cada equipo explicará al resto de la clase lo aprendido durante la realización del ejercicio. Todos los miembros de cada equipo deben participar en la explicación. Se puede utilizar como material de base para la presentación el repositorio de GitHub.
-
Todos los alumnos que realicen correctamente la actividad tendrán 0'25 puntos extra en la nota del trimestre.
-
Los miembros del equipo más votado ganarán un premio.
⭐ Si te ha gustado este ejercicio, dale una estrellita al repositorio original.