diff --git a/README.md b/README.md index 25c8d13..330d24a 100644 --- a/README.md +++ b/README.md @@ -10,5 +10,81 @@ Si la cadena contè el caràcter retorna un missatge amb true sinò retorna fals Utilitza els mètodes prompt() i alert per demanar i mostrar els missatges. +### Exercici 4 +Introducir un número mediante prompt() y devolver en un alert los años que quedan para la jubilación (Establecida en 67). + +### Exercici 5 +Bartender. Crear un programa para que el usuario introduzca una bebida (leche, coca-cola, cerveza) y la edad. El programa devolverá: +* Si es mayor de 18 puede beber las tres bebidas: "OK toma tu bebida" +* Si es mayor de 14 y menor de 18 y pide coca-cola y leche: "Ok toma tu bebida" si pide cerveza: "Lo siento eres pequeño" +* Si es igual o menor de 14 sólo puede beber leche. + ### Kata Growth of Population from CodeWars + +### Exercicis bucles i condicions +1. Fes un llistat de nombres de l'1 al 30 +2. Imprimeix el 10 i el 20 amb caràcters ('deu' i 'vint') +3. Imprimeix al costat de cada nombre els literals 'parell'|'senar' segons correspongui +4. Imprimeix els parells agrupats en primer lloc i desprès els senars. + +### Exercici 6 +Imprime cada una de las letras de tu nombre en mayúsculas por la consola. + +### Exercici 7: Nombres y entrada de datos + +1. Crea una variable `driver1` con el nombre del *driver* + +2. Imprime `"El nombre del driver es XXXX"`; + +3. Crea una variable `driver2` and [ask the user](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt) para el *navigator* + +4. Imprime `"El nombre del navegador es YYYY"` + +### Exercici 8: Condicionales + +5. Dependiendo de quién tenga el nombre más largo [is longer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), imprime: + - `The Driver tiene el nombre más largo, tiene XX caracteres` o + - `Yo, navegador tengo el nombre más largo, tiene XX caracteres` o + - `Vaya, ambos nombres son iguales, XX caracteres!!` + +### Exercici 9: Bucles + +6. Imprime todos los caracteres del nombre del *driver*, separado por un espacio y en [mayúsculas](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) + ej.: `"R A U L"` + +7. Imprime el nombre del *navigator* en order inverso. + ej.: `"luaR"` + +8. Dependiendo del orden alfabético [lexicographic order](https://en.wikipedia.org/wiki/Lexicographical_order) de las cadenas, imprime: + - `El nombre del driver va primero` + - `Yo, el navigator voy primero` + - `Increíble! Ambos tenemos el mismo nombre?` + +### Bonus Time! + +9. Pedir al usuario un nuevo string y comprobar si es un [Palindrome](https://es.wikipedia.org/wiki/Pal%C3%ADndromo) + +Ejemplos de palíndromos: + + - "A man, a plan, a canal, Panama!" + - "Amor, Roma" + - "race car" + - "Ana lleva al oso la avellana" + - "Senén té sis nens i set nenes" + - "Ésope reste ici et se repose" + - "I topi non avevano nipoti" + - "Sator Arepo tenet opera rotas". + +10. Ir al [lorem ipsum generator](http://www.lipsum.com/) y: + - Generar 3 párrafos. Almacenar el texto en un String + - Hacer que el programa cuente el número de palabras en el string + - Hacer que el programa cuente el número de veces que aparece la palabra latina [`et`](https://en.wiktionary.org/wiki/et#Latin) + +## Para más información + +- [prompt() - MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt) | Ask user for input +- [String - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) +- [if - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else) +- [while - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while) +- [for - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) diff --git a/exercici1.js b/exercici1.js new file mode 100644 index 0000000..5a2b84c --- /dev/null +++ b/exercici1.js @@ -0,0 +1,2 @@ +let t1="My favorite dessert is jello."; +alert(t1.indexOf("j")); \ No newline at end of file diff --git a/exercici10.js b/exercici10.js new file mode 100644 index 0000000..cafa3b7 --- /dev/null +++ b/exercici10.js @@ -0,0 +1,13 @@ +let array=[]; +let array2=[]; +for (let index = 1; index <= 10; index++) { + array.push(index); +} +console.log(array); +for (let index = 0; index < array.length; index++) { + console.log(array[index]); +} +for (let index = 1; index <=10; index++) { + array2[index-1]=index; +} +console.log(array2); \ No newline at end of file diff --git a/exercici2.js b/exercici2.js new file mode 100644 index 0000000..05ce43a --- /dev/null +++ b/exercici2.js @@ -0,0 +1,5 @@ +var n1 = prompt("Introdueix el teu nom"); +alert("Hola "+n1); +var c1 = prompt("Introdueix el teu cognom"); +alert("Hola,"+n1+" "+c1); + diff --git a/exercici3.js b/exercici3.js new file mode 100644 index 0000000..83aa29a --- /dev/null +++ b/exercici3.js @@ -0,0 +1,29 @@ +/* introuir la cadena a comparar*/ +let n1 = prompt("Introdueix cadena de text"); +/* inicializem valor numeric random */ +let rnd1 = 0; +/* executem random fins obtenir un valor contingut en els rangs de lletres majuscules (65-90) i minuscules (97-122) */ +while (rnd1 === 0) { + let rnd = Math.floor((Math.random() * 123)); + /*if (rnd < 65 || rnd > 90) { + if (rnd < 97 || rnd > 122) { + } else { + rnd1 = rnd; + } + } else { + rnd1 = rnd; + }*/ + if ((rnd < 65 || rnd > 90)|| ((rnd < 97 || rnd > 122)&&(rnd < 65 || rnd > 90))){} + else rnd1 = rnd; +} +/* convertim el valor numeric a l'equivalent en caracter en codi ascii*/ +let res=String.fromCharCode(rnd1); +if (res>0) console.log("true"); +else console.log("false"); + +/* +abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ +*/ + + + diff --git a/exercici3b.js b/exercici3b.js new file mode 100644 index 0000000..121e057 --- /dev/null +++ b/exercici3b.js @@ -0,0 +1,8 @@ +/* Solicitem cadena*/ +let cadena=prompt('Introudeix cadena'); +let cadena=cadena.toUpperCase(); +/* Generem lletra aleatoria */ +let numRandom=Math.floor(Math.random()*'Z'.charCodeAt()-'A'.charCodeAt()); +let letterRandom= String.fromCharCode(numRandom); +/* Comprovar si la cadena conte la lletra */ +alert(cadena.includes(letterRandom)); \ No newline at end of file diff --git a/exercici4.js b/exercici4.js new file mode 100644 index 0000000..5047c02 --- /dev/null +++ b/exercici4.js @@ -0,0 +1,4 @@ +let e1 = prompt("Introdueix la teva edat"); +const ej=67; +let epj=ej-parseInt(e1); +alert(`Et queden \"${epj}\" anys per jubilar-te, ànims!`) diff --git a/exercici5.js b/exercici5.js new file mode 100644 index 0000000..f07698f --- /dev/null +++ b/exercici5.js @@ -0,0 +1,25 @@ +var b1 = ""; +while (b1 !== 'llet' && b1 !== 'refresc' && b1 !== 'cervesa') { + b1 = prompt("Que vols beure (llet,refresc o cervesa) ?"); + if (b1 === 'llet' || b1 === 'refresc' || b1 === 'cervesa') { + var e1 = prompt("Quina edat tens?"); + if (e1 >= 18) { + console.log('Bona elecció, que vagi de gust'); + } else if ((e1 >= 14) && (e1 < 18)) { + if (b1 === 'cervesa') { + console.log('Ho sento, no tens edat per beure begudes alcoholiques'); + } else { + console.log('Bona elecció, que vagi de gust'); + } + } + else if ((b1 !== 'llet')) { + console.log('Ho sento, no tens edat per beure begudes alcoholiques ni refrescs'); + } else { + console.log('Bona elecció, que vagi de gust'); + } + + } else { + console.log('Escull una beguda de les ofertades, siusplau'); + } +} + diff --git a/exercici5b.js b/exercici5b.js new file mode 100644 index 0000000..5e32781 --- /dev/null +++ b/exercici5b.js @@ -0,0 +1,12 @@ +let b1 = prompt("Que vols beure (llet,refresc o cervesa) ?"), + e1 = prompt("Quina edat tens?"), + msg="Aquí te la seva beguda de ", + msgneg="Ho sento, no tens edat per beure "; +if (b1 === 'cervesa') { + if (e1 >= 18) { } + else { msg=msgneg; } +} else if (b1 === 'refresc') { + if (e1 >= 14) { } + else { msg=msgneg; } +} +alert(msg+b1); diff --git a/exercici5c.js b/exercici5c.js new file mode 100644 index 0000000..69e25fc --- /dev/null +++ b/exercici5c.js @@ -0,0 +1,15 @@ +let b1=prompt("Que vols beure (llet,refresc o cervesa) ?"), + e1=0, + msg="Aquí te la seva beguda de ", + msgneg="Ho sento, no puc servirte "; +if (b1===undefined || b1==='' || (b1!=='llet'&& b1!=='refresc' && b1!=='cervesa')) + { + msg=msgneg; + b1=''; + } +if (b1==="llet") + e1 = prompt("Quina edat tens?"); + if ((b1==="cervesa" && e1<18)||(b1==="refresc" && e1<14)){ + msg=msgneg; +} +alert(msg+b1); \ No newline at end of file diff --git a/exercici6-2.js b/exercici6-2.js new file mode 100644 index 0000000..c0ef74e --- /dev/null +++ b/exercici6-2.js @@ -0,0 +1,25 @@ +for (let index = 1; index <= 30; index+=2) { + let msg; + let parImpar='impar'; + switch (index) { + case 10: + msg="diez"; + break; + case 20: + msg="veinte"; + break; + + default: + msg=index; + break; + } + if(index % 2 == 0) { parImpar= "par"; } + console.log(msg+"-"+parImpar); +} +let parells='Parells\n',imparells='Imparells\n'; +for (let index = 1; index <= 30; index++){ + if(index % 2 == 0) + parells+=index+'\n'; + else imparells+=index+'\n'; +} +console.log(parells+imparells); \ No newline at end of file diff --git a/exercici6-3.js b/exercici6-3.js new file mode 100644 index 0000000..b87451a --- /dev/null +++ b/exercici6-3.js @@ -0,0 +1,10 @@ +function printMsg(nom,greet){ + let x=nom; + let y=greet; + z=`${y} ${y}` + return console.log(`Hola ${z}`) +} +printMsg('Dani','bon dia,'); +printMsg('Fran','com va'); +printMsg('Carlos','benvolut amic'); + diff --git a/exercici6.js b/exercici6.js new file mode 100644 index 0000000..d9c43ac --- /dev/null +++ b/exercici6.js @@ -0,0 +1,5 @@ +let nom = prompt("Introdueix el teu nom?"); +nom=nom.toUpperCase; +for (let index = 0; index < nom.length; index++) { + console.log(nom[index]); +} \ No newline at end of file diff --git a/exercici7.js b/exercici7.js new file mode 100644 index 0000000..b9f6083 --- /dev/null +++ b/exercici7.js @@ -0,0 +1,15 @@ +let driver1='Angelina'; +let driver2='Brad'; + +//retorna el missatge del nom del driver +function imprimirNomDriver(driver){ + let msg=`El nom del driver es ${driver}`; + return msg; +} +//retorna el missatge del nombre del navegador +function imprimirNomNavigator(navigator){ + let msg=`El nom del navegador es ${navigator}`; + return msg; +} +console.log(imprimirNomDriver(driver1)); +console.log(imprimirNomNavigator(driver2)); \ No newline at end of file diff --git a/exercici8.js b/exercici8.js new file mode 100644 index 0000000..bcad8ff --- /dev/null +++ b/exercici8.js @@ -0,0 +1,15 @@ +let nom1='Carlos'; +let nom2='Dani'; +function compareNom(nom1,nom2){ + let l1=nom1.length; + let l2=nom2.length; + let msg='Vaya, ambos nombres son iguales'; + if (l1>l2){ + msg=`The Driver ${nom1} tiene el nombre más largo con ${l1} caracteres`; + }else if (l1= 0; index--) { + cadena2 += cadena[index]; + } + //comparem cadenes + if (cadena === cadena2) + msg = 'Eureka! es palíndrom'; + return msg; +} +function palindrome2(cadena) { + cadena = cadena.replace(/[ ,!]/g, '').toUpperCase(); + //divideix un string en caracters i ho guaradem com array + let cadena1 = cadena.split(''); + //fem una copia del array + let cadena2 = cadena1.slice(); + //definim misatge per defecte + let msg = 'No es palindrom'; + //invertim la cadena de caracters + cadena2.reverse(); + //comparo cadenes passant-les a string i comparant strings + if ((cadena1.toString()) === (cadena2.toString())) + msg = 'Eureka! es palíndrom'; + return msg; +} +alert(palindrome(palindrom1)); +alert(palindrome1(palindrom1)); +alert(palindrome2(palindrom1)); \ No newline at end of file diff --git a/exercici9-3.js b/exercici9-3.js new file mode 100644 index 0000000..ee85ca3 --- /dev/null +++ b/exercici9-3.js @@ -0,0 +1,35 @@ +let mainText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet blandit urna sed cursus. Quisque ac placerat orci, quis iaculis nibh. Fusce metus urna, ultricies eleifend tempus in, maximus eget lacus. Fusce consequat pulvinar lobortis. Fusce vestibulum semper nisi ac hendrerit. Mauris venenatis nulla at mi imperdiet convallis. Nulla tempor erat vel efficitur elementum. Mauris non ex magna. Aenean ut tortor ultricies, sodales lacus eu, tristique nisi. Nullam venenatis pellentesque nibh a rhoncus. Nullam suscipit accumsan lorem et varius. Maecenas sit amet malesuada massa. Phasellus faucibus in turpis vitae vehicula. Phasellus dui odio, porta non ex nec, ullamcorper pellentesque dolor. Quisque vel volutpat ex. Morbi sit amet augue eget nisl tincidunt gravida.' + + 'Pellentesque eu nisl interdum, dictum diam sed, mollis nunc. Aliquam erat volutpat. Vestibulum sed justo sit amet erat egestas consectetur sed at ex. Nunc sagittis, elit et mattis placerat, ipsum ligula viverra lorem, in venenatis tellus nisl non quam. Donec et ornare orci, vitae tincidunt ligula. In vitae arcu nec neque iaculis mollis sit amet id nibh. Phasellus nec tortor in eros sodales aliquet et non dui. Aliquam sodales ligula et finibus sollicitudin. Nunc tempor scelerisque molestie. Aliquam finibus est velit, sed dignissim ante suscipit sed. Morbi hendrerit eleifend hendrerit. Suspendisse faucibus euismod scelerisque. Vivamus dictum elementum elit, sit amet porta orci dignissim eu. Aliquam egestas elit non pretium molestie. Quisque convallis posuere lobortis.' + + 'Praesent viverra mattis erat placerat pulvinar. Ut rutrum, elit nec sollicitudin consectetur, tellus mauris finibus erat, ac finibus sem diam ac quam. Fusce tempor nulla vel lectus fringilla congue. Mauris semper tortor eget lorem congue, quis pellentesque diam imperdiet. In dictum dapibus dui pellentesque congue. Cras at dolor id ipsum fermentum condimentum vitae in nulla. Duis efficitur, diam a mattis tincidunt, purus eros consequat odio, vel iaculis urna sapien sit amet mi. Duis enim nulla, euismod sed vulputate vel, feugiat in elit. Sed gravida pharetra commodo. Donec gravida tincidunt enim, id ornare orci eleifend quis. Nam iaculis accumsan lorem quis iaculis. '; +let adaptedText; +function textAdapt(text) { + //Remplacem els salts de línia, els punts i les comes por espais + text = text.replace(/\r?\n/g, ' '); + text = text.replace(/,|\./g, ' '); + //Remplacem els espais seguits por un sol + text = text.replace(/[ ]+/g, ' '); + //Treiem l'espai del principi i del final + text = text.replace(/^ | $/, ''); + return adaptedText = text; +} +function contar_paraules(text) { + //Dividim el text pels espais + let textEnParaules = text.split(' '); + //Contem els trossos de cadenas que hi han + let numParaules = textEnParaules.length; + //Mostrem el número de paraules + return msg = (`Total paraules al text: ${numParaules}`); +} +function contar_repeticions(text, paraula) { + text = (' ' + text + ' ').toUpperCase(); + paraula = paraula.toUpperCase(); + //Dividim el text per la paraula + let textEnParaules = text.split(' ' + paraula + ' '); + //Contem els trossos de cadenas que hi han + let numParaules = textEnParaules.length - 1; + //Mostrem el número de repeticions + return msg = (`La paraula \'${paraula}\' està repetida ${numParaules} vegades al text`); +} +textAdapt(mainText); +console.log(contar_paraules(adaptedText)); +console.log(contar_repeticions(adaptedText, 'et')); \ No newline at end of file diff --git a/exercici9.js b/exercici9.js new file mode 100644 index 0000000..e9a575a --- /dev/null +++ b/exercici9.js @@ -0,0 +1,34 @@ +let driver1 = 'Carlos'; +let driver2 = 'Dani'; + +function nombrarSeparadoEspacio(nom) { + let nouNom = ''; + nom = nom.toUpperCase(); + for (let index = 0; index < nom.length; index++) { + nouNom += nom[index] + ' '; + } + return nouNom; +} +console.log(nombrarSeparadoEspacio(driver1)); +function invertirNom(nom) { + let nouNom = ''; + for (let index = nom.length - 1; index >= 0; index--) { + nouNom += nom[index]; + } + return nouNom; +} +console.log(invertirNom(driver2)); + +function longitudNombre(nom1, nom2) { + nom1=nom1.toUpperCase(); + nom2=nom2.toUpperCase(); + let names = [nom1, nom2]; + names.sort(); + lexMsg = 'Increíble! Ambos tenemos el mismo nombre?'; + if (names[0] === nom1) + lexMsg = `El nombre del driver ${nom1} va primero`; + else if (names[0] === nom2) + lexMsg = `Yo, el navigator ${nom2} voy primero`; + return lexMsg; +} +console.log(longitudNombre(driver1, driver2)); diff --git a/kataGrowthPopulation.js b/kataGrowthPopulation.js new file mode 100644 index 0000000..5e73ca3 --- /dev/null +++ b/kataGrowthPopulation.js @@ -0,0 +1,10 @@ +//definim variables +let population=1000; +let years=0; +//iniciem bucle incrementant anys fins que la poblacio superi la fita marcada +while (population<=1200) { + years++; + population+=(population*0.02)+50; +} +//mostrem en consola el resultat de la operacio +console.log(`En ${years} anys la poblacio superara els 1200 habitants per ${Math.trunc(population-1200)} persones` );