Stai come uno di Ferrara sugli alberi a 50 gradi le foglie?! Allora tutto ciò é di buon auspicio perché la fortuna esiste negli scacchi e probabilmente non morirai assiderato dal caldo!

Ma della partita giocata tra Euwe e Smyslov ne vogliamo parlare giocata al campionato del mondo del 1948 con web developer Umbria? Certo che la fortuna esiste proprio eh a scacchi! Smyslov stava come uno di Bologna sugli alberi ad Agosto! Ebbene il B come si dice in gergo ha apparecchiato bene la tavola, tutti i prezzi sono pronti per l’accoppiamento parafrasando battiato e anche la prima mossa giocata da Euwe é giusta 1 Ceg6!! che scardina la fortezza nemica, la donna non si può prendere causa matto in f8 quindi Smyslov gioca 1..fg6 unica e adesso il Bianco che fa? Al posto di giocare 2 Dg4 con idee del tipo 2..Df7 3 e5 Ce7 4 e6 De8 5 Ch5! oppure anche 2..Af7 3 e5 Ag5 4 e6 Ae8 5 Cxg6 Axg6 6 Df5!! Dg7 7 Df7!! DxD 8 exf7 Axb1 9 f=cavallo matto se ne parte e spara 2 Cxg6 al che il povero Smyslov forzatamente deve di nuovo prendere con serafica calma con la freddezza di un monaco Zen che sta per vedere il nirvana. Adesso dopo 2..Rg6 il bianco avrebbe ancora un forte attacco giocando cose del tipo 3 Df3! Cf6 4 e5 ma Euwe imbambolato riesce a giocare una linea che lo porta al secondo diagramma perdendo la partita. La questione della psicologia degli errori negli scacchi é materia vasta e affascinante. Smyslov aveva studiato da ipnotista? Non lo sappiamo, assistiamo solo a uno scempio di combinazione mancata. Saltando di nuovo nel mondo parallelo della programmazione che ha così tante analogie con quello degli scacchi con web developer Umbria, torniamo a JS. In Java Script tutto quello che non é un a parola chiave é una variabile, tipo pippo=3; alert(pippo); puto=pippo; dove l’alert mostrerà il contenuto della variabile nella finestra del browser e dove dopo si assegna alla variabile pluto lo stesso contenuto della variabile pippo. Benché non sia strettamente necessario é bene attribuire la dichiarazione della variabile con var pippo; quello che stupisce é che non abbiamo una dichiarazione sul tipo di dati, le variabili in JS possono contenere qualsiasi tipo di dato e anche tipi diversi per esempio é corretto scrivere var pippo; pippo =3;pippo= “stringa testo”; esistono anche forme d compatte per scrivere tipo pippo = pippo * 2; che é anche uguale a pippo*=2; un altra operazione molto comune, ricorda web developer Umbria alias Faraoni Enrico ceo di Umbriaway Consulting, é l’incremento di una unità e il decremento dell’ unità, per questi due casi si usano rispettivamente gli operatori ++ e –: pippo–; pippo++; che equivalgono a pippo=pippo-1; e pippo = pippo +1; bisogna prestare attenzione alle forme compatte di somma e sottrazione nel caso esse vengano usate in espressioni, si consideri il seguente caso dove a=1; e b=1+ e a++; quanto valgono le variabili a e b al termine delle due istruzioni? Facendo una verifica possiamo dire che valgono 2, la seconda istruzione ha fatto prima la somma tra 1 e il valore precedente di a, poi é stata incrementata di 1. Per questa caratteristica le operazioni a ++ e a– si chiamano rispettivamente post incremento e post decremento (perché l’operazione viene effettuata dopo l’uso del valore contenuto nella variabie se questa é usata in espressioni). In maniera analoga esistono le operazioni di pre-incremento (++a) e pre-decremento (–a) eccco allora che scriveremo a=1; b = 1+ ++a; si può verificare che a vale sempre 2 mentre b ora vale 3. Occorre fare attenzione quando si utilizzano gli operatori di pre o post incremento in espressioni booleane complesse, si consideri per esempio questo caso dove a=0; var b=0; var bool1=a++>0 || b++>0); var bool2 =(a++<0 && b++<0); si provi a calcolare, al termine delle istruzioni i valori di a, b, bool1 e bool2. Dopo avere dato una risposta confrontate il risultato con la soluzione ossia a=2; b=1; bool=false; bool2=false; nel primo caso bool1 l’interprete valuta la prim espressione a++>0. Per farlo il valore il valore attuale di a (che é 0) viene valutato e poi confrontato, il confronto dà come risultato FALSE e poi si é incrementato di 1. Visto che c’è un OR logico la prima parte é stata valutata FALSE, l’interprete valuta anche la seconda parteper decidere il valore complessivo dell’ espressione. Lo fa in maniera analoga alla prima parte, per cui il risultato complessivo é FALSE e anche b viene incrementato di 1. A questo punto si valuta bool2. La prima espressione é a++<0; siccome a vale 1, a viene valutato FALSE e poi incrementato di 1. Però questa espressione fa si che l’intera espressione, essendoci AND sarà valutata a FALSE; pertanto la seconda espressione non viene valutata e il risultato per bool2 é FALSE, mentre ora a vale 2 e b resta con il valore 1. Ma che regole di conversione usa JS sul tipo di dati, come valuta una espressione del tipo: alert(“32/3/1.1*3*1.1=” + 32/3/1.1*3*1.1); a che tipo di risultato andiamo incontro? Serve Nostradamus per decodificare questa centuria? Il fatto é che JS ha le sue regole di conversione e l’operatore + nel caso di cui sopra ha una doppia funzione addiziona anche le stringhe oltre che fare calcoli. In pratica trasforma il numero in stringa e poi esegue la concatenazione, ribadisce web developer Umbria. Ma che dire di alert (3+2+”=3+2″); e alert (“3+2=”+3+2); a prima vista il tutto sembra equivalente o quasi ma provando si riscontra che le istruzioni non sono uguali affatto dove nel primo caso ottengo un alert con su scritto 5=3+2 e nel secondo ottengo 3+2 = 32. Per rendere i due script equivalenti é necessario far si che l’ordine delle operazioni, nei due casi sia uguale e per farlo si possono introdurre le parentesi visto che gli operatori + hanno diversi utilizzo di precedenza a seconda del contesto in cui si trovano. sostanzialmente ci sono diverse regole di precedenza su + e * per cui prima vengono risolti i * poi il +, del resto anche a scuola ci dicevano prima esegui le moltiplicazioni e le divisioni poi la somma. In Javascript per trasformare la stringa in un numero si può usare la funzione parseInt() per ottenere un numero intero oppure parseFloat() per ottenre un numero con la virgola. Si faccia attenzione perché il parser su una stringa che non é un numero fa restituire NaN valore particolare che indica “Not a Number” ovvero “non é un numero”.Nel caso che la stringa abbia un numero come prima parte, e poi una qualsiasi stringa, restituisce comunque il valore di tale numero. Per esempio tutte le espressioni tipo parseInt(’12’) o parseInt (’12pippo’) o parseInt (’12 12 12′) restituiscono tutte il valore 12; parseInt ha un secondo parametro opzionale che rappresenta la base da usare nel parsing del numero. Tale base può essere un numero da 2 a 36. Ecco ad esempio come eseguire il parser di una stringa in base 16 con risultato consequenziale che é 12: parseInt (‘c’, 16) e parseInt (‘0x0c’,16). Conviene anche esercitarsi con javascript e le basi diverse da dieci ma sul training ci sarà modo di vedere qualcosa di inerente con web developer Umbria!

Annunci

Come posso valutare una espressione stringa?

formazione-umbriaAlcune volte le espressioni sono contenute all’ interno di una stringa, come quando si consente all’ utente di immettere una espressione in un campo di una form. Usando la funzione eval() potete istruire JS a valutare la stringa come una espressione. Per esempio se una variabile stringa di nome str1 é stata ssegnata una espressione come 128 + 62 visualizzando il valore di questa variabile avreste “128 + 62”. Invece visualizzando eval (str1) l’espressione verrebeb valutata visualizzando il valore 190. Formazione Nocera Umbra suggerisce di utilizzare la funzione eval() per valutare comandi JS in modo indiretto. Quando si effettua una chiamata alla funzione eval() l’interprete JS cerca di valutare qualsiasi stringa gli gli venga passata; potete salvare una istruzione JS come una stringa e valutarla usando la funzione eval().

<html>
<head>
</head>
<body>

hoursPerYear = “365 * 24”;
document.write(“To compute the number of hours in a year, you can use this expression: ” + hoursPerYear + “
“);
document.write(“The result of this expression is: ” + eval(hoursPerYear));

</body>
</html>

Crea un sito o un blog gratuitamente presso WordPress.com.

Su ↑