Innanzitutto creo un collegamento al sito con il tag a. Dopo inserisco, subito sotto, il pulsante che rimuoverà l’attributo quando verrà fatto clic su di esso.
Il metodo removeAttributeNode(), rimuove l’attributo specificato da un elemento e restituisce l’attributo rimosso come oggetto Attr.
Potrei allora costruire la funzione di prima in questo modo:
function link() {
var elemento = document.getElementById("collegamento");
var attr = elemento.getAttributeNode("href");
elemento.removeAttributeNode(attr);
}
Quindi con la funzione getAttributeNode() recupero il nodo dell’attributo e poi con removeAttributeNode() lo rimuovo.
Chiaramente questi sono solo dei semplici esempi per imparare a rimuovere attributi agli elementi del dom con JavaScript.
Analizziamo oggi alcuni esempi con gli operatori logici in C++.
Nei precedenti tutorial abbiamo definito cosa sono gli operatori logici e abbiamo realizzato un piccolo esempio.
Facciamo altri esempi con gli operatori logici in C++.
Primo esempio
Preso un numero in input controllare se è interno all’intervallo [10,20].
Basta controllare se il numero è maggiore o uguale a 10 e minore o uguale a 20 per dire che è interno all’intervallo.
Quindi utilizzo: if(numero>=10 && numero<=20)
Allego il listato completo dell’esempio.
#include<iostream>
using namespace std;
int main() {
int numero;
const int a=10;
const int b=20;
cout<<"inserisci un numero: ";
cin>>numero;
if(numero>=a && numero<=b)
cout<<"il numero e' interno";
else
cout<<"il numero e' esterno";
return 0;
}
Secondo esempio
Inserire un carattere e dire se è numerico oppure è una lettera dell’alfabeto oppure un’altra cifra qualunque.
if (c >= ‘0’ && c <= ‘9’)
con questa istruzione si vede se il carattere è numerico
if (c >= ‘a’ && c <= ‘z’)
con questa istruzione si vede se il carattere è una lettera minuscola
if (c >= ‘A’ && c <= ‘Z’)
infine, con questa istruzione si vede se il carattere è una lettera maiuscola.
Ecco dunque il listato completo.
#include <iostream>;
using namespace std;
int main(){
char c;
cout<<"inserisci un carattere:";
cin>>c;
if (c>='0' && c<='9')
cout<<"Cifra numerica";
else if (c>='a' && c<='z')
cout<<"Carattere dell'alfabeto minuscolo";
else if (c>='A' && c<='Z')
cout<<"Carattere dell'alfabeto maiuscolo";
else
cout<<"Altro carattere";
return 0;
}
Terzo esempio
Inserire un carattere in input, se tale carattere è numerico o una lettera dell’alfabeto visualizzare ‘carattere valido’, altrimenti visualizzare ‘carattere non valido’.
Quindi questa volta ad esempio posso fare un solo if dove unisco le tre condizioni:
if ((c >= ‘0’ && c <= ‘9’) || (c >= ‘a’ && c <= ‘z’) || (c >= ‘A’ && c <= ‘Z’))
Se una di queste condizioni si verifica allora il carattere è valido, altrimenti non lo è.
#include <iostream>;
using namespace std;
int main(){
char c;
cout<<"inserisci un carattere:";
cin>>c;
if ((c>='0' && c<='9') || (c>='a' && c<='z') || (c>='A' && c<='Z'))
cout<<"Carattere valido";
else
cout<<"Carattere non valido";
return 0;
}
Quarto esempio
Dati in input 3 caratteri, il primo che rappresenta la classe, il secondo che rappresenta la sezione e il terzo che rappresenta l’indirizzo, dire se la sequenza può essere una classe di un determinato istituto scolastico.
Ipotizziamo che l’istituto abbia le classi che vanno dalla prima alla quinta e che le sezioni possono variare dalla A alla E e che gli indirizzi hanno le seguenti lettere: I=Informatica, E=Elettronica, M=Meccanica e C=Chimica.
Quindi alcune combinazioni possibili possosno essere:
3AI, 2BE, 1CC, 5EM, ecc…
Allora potrei fare questo controllo: prendo in input le variabili c, z e i che rappresentano rispettivamente la classe, la sezione e l’indirizzo.
Se vera visualizzo ‘è una classe del nostro istituto’; altrimenti se falsa che non lo è.
Oppure potrei usare delle variabili di tipo booleano, dove vado a memorizzare le operazioni logiche:
flagc=(c>=1 && c<=5);
flags=(z>=’A’ && z<=’E’);
flagi=(i==’I’ || i==’E’ || i==’C’ || i==’M’);
E quindi scrivere:
if (flagc && flags && flagi)
Inoltre, guardando la codifica ASCII, per convertire ciascun carattere da minuscolo a maiuscolo basta effettuare questa operazione:
if (z >= ‘a’ && z <= ‘z’) z -= 32;
Analogamente per l’indirizzo.
Quindi anche se l’utente dovesse inserire da tastiera ad esempio la sequenza di caratteri 2ai, il programma li convertirà in 2AI.
Ecco quindi il listato completo.
#include <iostream>
using namespace std;
int main(){
int c;
char z,i;
bool flagc, flags, flagi;
cout<<"inserisci la classe:\n";
cin>>c;
cout<<"inserisci la sezione:\n";
cin>>z;
cout<<"inserisci l'indirizzo:\n";
cin>>i;
if (z>='a' && z<='z')
z-= 32;
if (i>='a' && i<='z')
i-= 32;
flagc=(c>=1 && c<=5);
flags=(z>='A' && z<='E');
flagi=(i=='I' || i=='E' || i=='C' || i=='M');
if (flagc && flags && flagi)
cout<<c<<z<<i<<" E' una classe del nostro istituto";
else
cout<<"non puo' essere una classe del nostro istituto";
return 0;
}
Chiaramente ho proposto possibili soluzioni agli esempi con gli operatori logici in C++. Proponete pure la vostra soluzione.
Analizziamo un esempio con gli operatori logici in C++, al fine di comprendere meglio il funzionamento di detti operatori. Nel precedente tutorial ne abbiamo dato la definizione e visto l’ordine di precedenza.
Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%. Quindi, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, rischiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.
Modifichiamo l’esercizio in modo tale che, sia inserendo le lettere minuscole sia le maiuscole, il programma funzioni ugualmente.
Basterà allora trasformare gli if in questo modo:
if (categoria==’P’ || categoria==’p’ )
Cioè se categoria=’P’ oppure categoria=’p’.
E così tutti gli altri.
Il resto del programma rimane chiaramente invariato.
Allego il listato completo dell’esempio con gli operatori logici in C++.
#include<iostream>
using namespace std;
main(){
char categoria;
float costo;
cout<<"Inserisci la categoria:\ncategoria P = pensionati, S = studenti, D = disoccupati):\t ";
cin>>categoria ;
cout<<"prezzo biglietto:\t ";
cin>>costo;
if (categoria=='P' || categoria=='p' )
costo *= 0.9;
else if (categoria=='S' || categoria=='s')
costo *= 0.85;
else if (categoria=='D' || categoria=='d')
costo *= 0.75;
else
cout<<"la categoria inserita non ha sconti\n"<<endl;
cout<<"Pagherai: \t"<<costo<<endl;
return 0;
}
Chiaramente questo è solo un semplice esempio con gli operatori logici in C++. Nel prossimo tutorial proporrò degli altri esempi in modo da esercitarci ulteriormente.