Sintaxi del llenguatge II
Contingut
Introducció
Aquesta pràctica té per objectiu iniciar-se en l'aprenentatge i familiarització de la sintaxi de Javascript, i continua amb les següents pràctiques. Així mateix s'explica el procediment i la pauta que seguirem mentre s'explica la teoria i es fa la pràctica.
El tutorial que seguirem per aprendre Javascript és el de http://www.w3schools.com/ (en anglès). En aquest tutorial, tots els exemples estan orientats a la web. El procediment que seguirem serà:
- el professor explicarà la teoria.
- els alumnes faran i provaran els exercicis proposats (en un entorn HTML). Els fitxers generats tindran doncs extensió .html.
- els alumnes assimilaran els conceptes i miraran d'ampliar coneixements, fer provatures,...
Referències
- http://www.w3schools.com/js/js_datatypes.asp
- http://www.w3schools.com/js/js_objects.asp
- http://www.w3schools.com/js/js_functions.asp
- http://www.w3schools.com/js/js_operators.asp
- http://www.w3schools.com/js/js_comparisons.asp
- http://www.w3schools.com/js/js_if_else.asp
- http://www.w3schools.com/js/js_switch.asp
- http://www.w3schools.com/js/js_popup.asp
- http://www.w3schools.com/js/js_loop_for.asp
- http://www.w3schools.com/js/js_loop_while.asp
Desenvolupament
Els alumnes provaran amb l'ordre proposat tots els exemples que s'han explicat a classe. Es genenraran els fitxers .html
Exercici de classe 2-10-2017
- Taules de multiplicar amb dos for 'anidats'
- Amb if-else if, detecta primavera, estiu, tardor i hivern
primavera: 21 març - 20 juny estiu: 21 juny - 20 set tardor: 21 set - 20 des hivern: 21 des - 20 mar var fecha = new Date(); dia = fecha.getDate(); mes=fecha.getMonth(); console.log(dia); console.log(mes);
solució:
$ node taulamult.js
for (var i=1;i<=10;i++){
console.log('\nTaula del ' + i);
for(var j=1;j<=10;j++){
var res=i*j;
console.log (i + '*' + j + '=' + res);
}
}
$ node estacions.js
//té prioritat el AND lògic sobre el OR lògic?
//console.log (true && true || false );
//tenen la mateixa prioritat. S'opera d'esquerra a dreta.
function decirEstacion(mes,dia){
if( (mes==11 && dia>=21) || mes==0 || mes==1 || (mes==2 && dia<21) ) {
console.log("Es invierno");
} else if ( (mes==2 && dia>=21) || mes==3 || mes==4 || (mes==5 && dia<21) ) {
console.log("Es primavera");
} else if ( (mes==5 && dia>=21) || mes==6 || mes==7 || (mes==8 && dia<21) ) {
console.log("Es verano");
} else if ((mes==8 && dia>=21) || mes==9 || mes==10 || (mes==11 && dia<21) ) {
console.log("Es otono");
}
}
var fecha = new Date();
dia = fecha.getDate();
mes=fecha.getMonth();
console.log(dia);
//recordar que getMonth() dóna valors de 0 a 11 (gener a desembre)
console.log(mes);
decirEstacion(mes,dia);
Exercici 2-oct-2018
Donats n números (n=10, n=100, n=1000), trobar el valor més gran.
Ha de ser una solució que et valgui tant per 10 com per 100 o 1000.
Posarem els valors que vols comparar en una matriu.
Solució1:
var array = [1,123,23,43,46];
valor = array[0];
for (var i = 0; i<array.length-1; i++ ) {
//console.log(array[i]);
if (valor<array[i+1]) valor = array[i+1];
}
console.log ("El valor més gran és: " + valor);
//https://www.w3schools.com/js/js_array_methods.asp
//Finding Max and Min Values in an Array
//There are no built-in functions for finding the highest or lowest value in a JavaScript array.
//You will learn how you solve this problem in the next chapter of this tutorial.
//https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Math/max
//spread operator (...)
console.log(Math.max(...array));
//https://www.w3schools.com/js/js_array_sort.asp
//array_ordenat = array.sort(); //ordenació alfabètica
array_ordenat = array.sort(function(a, b){return a - b}); //ordenació numèrica
console.log(array_ordenat);
console.log(array_ordenat[array_ordenat.length-1]);
Solució2 (generem 1000 números aleatoris):
var array = new Array(1000);
//compte!! toFixed: Convert a number into a string, keeping only two decimals
for (var i = 0;i<1000;i++) {
array[i] = parseFloat((Math.random()*5000).toFixed(2));
}
valor = array[0];
console.log(typeof array[0]);
for (var i = 0; i<array.length-1; i++ ) {
//console.log(array[i]);
if (valor<array[i+1]) valor = array[i+1];
}
console.log ("El valor més gran és: " + valor);
//https://www.w3schools.com/js/js_array_methods.asp
//Finding Max and Min Values in an Array
//There are no built-in functions for finding the highest or lowest value in a JavaScript array.
//You will learn how you solve this problem in the next chapter of this tutorial.
//https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Math/max
//spread operator (...)
console.log(Math.max(...array));
//https://www.w3schools.com/js/js_array_sort.asp
//array_ordenat = array.sort(); //ordenació alfabètica
array_ordenat = array.sort(function(a, b){return a - b}); //ordenació numèrica
//console.log(array_ordenat);
console.log(array_ordenat[array_ordenat.length-1]);
Bateria d'exercicis proposats
(a classe veurem algun d'aquests exercicis)
concretament, faràs:
Entrega
Els alumnes entregaran al Schoology tots els fitxers generats (fitxers html). S'empaquetaran tots aquests fitxers i es pujaran al Moodle dins del termini d'entrega de la pràctica.
Recorda la normativa per entregar les pràctiques al Google Classroom: ASIX-M10-UF2#Normativa_d.27entrega_de_les_pr.C3.A0ctiques_al_Google_Classroom
creat per Joan Quintana Compte, setembre 2018