Skip to content

Commit 1acea93

Browse files
#2 - typescript
1 parent 8a32935 commit 1acea93

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
/*
2+
* EJERCICIO:
3+
* - Crea ejemplos de funciones básicas que representen las diferentes
4+
* posibilidades del lenguaje:
5+
* Sin parámetros ni retorno, con uno o varios parámetros, con retorno...*/
6+
function sinParametros(){
7+
console.log("prueba de función sin parametros");
8+
}
9+
10+
function conParametro(texto: string){
11+
console.log(`prueba de función con parametro: ${texto}`)
12+
}
13+
14+
function conParametros(texto1: string, texto2: string){
15+
console.log(`prueba de función con parametros: ${texto1} y ${texto2}`)
16+
}
17+
18+
function conRetorno(): string{
19+
return "prueba de función con retorno";
20+
}
21+
22+
function conRetornoParametrosOpcionales(valor1:number, valor2?:number): string{
23+
let res: string;
24+
if(valor2){
25+
let suma= valor1+valor2;
26+
res=`la suma de ambos valores es: ${suma}`;
27+
} else {
28+
res=`el único parámetro ingresado es: ${valor1}`;
29+
}
30+
return res;
31+
}
32+
33+
function conParametrosPorDefecto(valor1: number, valor2: number=4){
34+
let suma:number=valor1+valor2;
35+
console.log(`la suma de ${valor1} mas ${valor2} es: ${suma}`)
36+
}
37+
38+
//Otra característica de TypeScript es la posibilidad de pasar una lista indefinida de valores y que los reciba un vector.
39+
//El concepto de parámetro Rest se logra antecediendo tres puntos al nombre del parámetro:
40+
function conParametroRest(...valores:number[]){
41+
let suma:number=0;
42+
for(let i of valores){
43+
suma+=i;
44+
}
45+
console.log(`la suma de todos los parametros es: ${suma}`)
46+
}
47+
48+
sinParametros();
49+
conParametro("parámetro");
50+
conParametros("var1", "var2");
51+
console.log(conRetorno());
52+
console.log(conRetornoParametrosOpcionales(3));
53+
console.log(conRetornoParametrosOpcionales(3,5));
54+
conParametrosPorDefecto(7);
55+
conParametroRest(3,4,5);
56+
/**El operador Spread permite descomponer una estructura de datos en elementos individuales.
57+
Es la operación inversa de los parámetros Rest. La sintaxis se aplica anteponiendo al nombre de la variable tres puntos:*/
58+
function sumar(valor1:number, valor2:number, valor3:number):number {
59+
return valor1+valor2+valor3;
60+
}
61+
62+
const vec=[10,20,30] as const;
63+
console.log(`la suma de los datos es: ${sumar(...vec)}`);
64+
65+
/*
66+
* - Comprueba si puedes crear funciones dentro de funciones.*/
67+
function funcionPrincipal(){
68+
console.log("llamado de la primera función")
69+
function funcionAnidada(){
70+
console.log("llamado a la función anidada")
71+
}
72+
funcionAnidada();
73+
}
74+
funcionPrincipal();
75+
76+
77+
/*
78+
* - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.*/
79+
function contarLetrasEnFrase(frase: string){
80+
console.log(`la frase "${frase}" contiene ${frase.length} caracteres incluyendo espacios`);
81+
}
82+
contarLetrasEnFrase("Probando funciones ya creadas en typescript");
83+
84+
/*
85+
* - Pon a prueba el concepto de variable LOCAL y GLOBAL.*/
86+
let varGlobal:boolean=true;
87+
function testVarGlobal(){
88+
let varLocal:boolean=false;
89+
if(varGlobal && varLocal){
90+
console.log("puedo usar la variable global y la local dentro del método")
91+
}
92+
}
93+
console.log(`puedo acceder a la variable global con el valor ${varGlobal} pero es imposible acceder al la variable local (dentro del método)`)
94+
95+
/*
96+
* DIFICULTAD EXTRA (opcional):
97+
* Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
98+
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
99+
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
100+
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
101+
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
102+
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
103+
*
104+
* Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
105+
* Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
106+
*/
107+
108+
function returnNumber(texto1: string, texto2: string):number{
109+
let count:number=0;
110+
for(let i=0; i<100; i++){
111+
if(i%3==0 && i%5==0){
112+
console.log(`los dos parámetros son ${texto1} y ${texto2}`);
113+
} else if(i%3==0){
114+
console.log(`primer parámetro: ${texto1}`);
115+
} else if (i%5==0){
116+
console.log(`segundo parámetro: ${texto2}`);
117+
} else {
118+
console.log(i);
119+
count++;
120+
}
121+
}
122+
return count;
123+
}
124+
125+
console.log("El número total de números mostrados es: "+returnNumber("valor1","valor2"));

0 commit comments

Comments
 (0)