Proponiamo in quest’articolo un semplice esercizio con if else in C++, al fine di esercitarci con le istruzioni condizionali.
Questo semplice esercizio in genere viene proposto agli alunni di seconda superiore.
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.
Risoluzione dell’esercizio con if else in C++
Prendiamo dunque in input la categoria e il costo del biglietto. Modifichiamo poi il costo del biglietto in base alla categoria, applicando la scontistica richiesta.
Nel caso in cui l’utente non appartiene a nessuna delle categorie indicate allora il costo del biglietto non sarà scontato.
#include<iostream>
using namespace std;
int 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')
costo -= costo * 0.1;
else if (categoria == 'S')
costo -= costo * 0.15;
else if (categoria == 'D')
costo -= costo * 0.25;
else
cout << "la categoria inserita non ha sconti\n" << endl;
cout << "Pagherai : \n" << costo << endl;
system ("pause");
}
Ricordiamo inoltre quanto già abbiamo detto nella precedente lezione:
+= somma e assegna
Ad esempioa+=b; equivale a fare a=a+b;
-= sottrae e assegna
Ad esempioa-=b; equivale a fare a=a-b;
*= moltiplica e assegna
Ad esempioa*=b; equivale a fare a=a*b;
/= divide e assegna
Ad esempioa/=b; equivale a fare a=a/b;
Quindi nell’esercizio di prima l’istruzione:
costo -= costo * 0.1;
equivale a:
costo=costo-costo*0.1.
Ovviamente avrei anche potuto scrivere costo*= 0.9 al posto di costo -= costo * 0.1, risparmiando così un’operazione.
Ma attenzione! Ricordiamo che il C++ è case-sensitive, quindi inserire ad esempio nell’esercizio di prima P o p produce effetti diversi.
Chiaramente possono esserci tante altre soluzioni all’esercizio con if else in C++ proposto.
In quest’articolo studieremo il funzionamento dell’istruzione if else in C++.
Quando vogliamo eseguire un’istruzione al verificarsi di una certa condizione possiamo utilizzare infatti l’istruzione if … else.
Sintassi if else in C++
La sintassi è dunque questa:
if(espressione)
istruzioni_if
else
istruzioni_else
Se espressione è vera vengono eseguite le istruzioni_if, altrimenti se è falsa il programma esegue le istruzioni_else.
L’istruzione può anche essere una sola.
Nel caso di più istruzioni si usano le parentesi graffe.
Se non necessaria, l’istruzione else può anche essere omessa.
Facciamo subito un classico esempio per capire meglio il funzionamento dell’istruzione if else in C++.
Esempio con l’uso di if else in C++
Prendere in input l’età di una persona e controllare se è maggiorenne.
if (eta>=18) //se l’età è maggiore o uguale a 18 cout<<“Maggiorenne “; //allora stampo a video : “Maggiorenne “ else //altrimenti sè minore di 18 cout<<“Minorenne “; //allora stampo a video : “Minorenne”
Per sviluppare l’esercizio ho utilizzato inoltre gli operatori di confronto.
Gli operatori di confronto ricordiamo si indicano in questo modo:
> maggiore
< minore
== uguale
>= maggiore o uguale
<= minore o uguale
!= diverso
Ecco il listato completo sull’uso dell’istruzione if else in C++:
#include <iostream>
using namespace std;
int main() {
int eta;
cout<<"Inserisci l'eta': ";
cin>>eta;
if(eta>=18)
cout<<"Maggiorenne ";
else
cout<<"Minorenne";
return 0;
}
If annidati
All’interno delle istruzioni if ed else è possibile inserire altri if.
Esempio con l’uso degli if annidati
Facciamo anche qui un esempio per capire meglio:
#include <iostream>
using namespace std;
int main() {
int voto;
cout<<"Inserisci un numero: ";
cin>>voto;
if(voto<10)
if (voto<6)
cout<<"Mi spiace non sei sufficiente. Ti daro' possibilita' di recuperare! ";
else
cout<<"Bravo!";
return 0;
}
In questo esempio sull’utilizzo di if annidati, realizzato a scopo didattico, abbiamo dapprima valutato il voto e se tale voto è minore di 10 abbiamo valutato se è anche minore di 6 oppure no, dando in entrambi i casi un messaggio in output.
Quindi il secondo if, con tutte le sue istruzioni, non verrà valutato se il voto di partenza non è minore di 10.
Inoltre notate anche che non ho inserito l’else del primo if, in quanto in questo specifico esempio non era necessario.
Facciamo adesso un altro esempio.
Esempio 3
#include <iostream>
using namespace std;
int main() {
int numero;
cout<<"Inserisci un numero: ";
cin>>numero;
if(numero<100)
if (numero>0)
cout<<"Il numero e' minore 100 e maggiore di 0. ";
else
cout<<"Il numero e' minore di 0.";
else
if (numero==100)
cout<<"Il numero e' uguale a 100. ";
else
cout<<"Il numero e' maggiore di 100. ";
return 0;
}
In questo caso ho inserito l’else al primo if.
If else a cascata
Le decisioni a più vie possono essere risolte con l’uso di più if else a cascata.
Esempio 4
Prendere un numero e controllare se positivo, negativo o nullo.
Prendiamo un numero intero in input e con l’istruzione if controllo se il numero è negativo. Se la condizione è vera visualizzo in output che il numero è negativo, se è falsa allora controllo se il numero è nullo. Se quest’ultima condizione è vera stampo in ouptut che il numero è nullo, altrimenti il numero sarà positivo e visualizzo in output il relativo messaggio (è importante evitare di inserire un altro se!).
Opero in questo modo:
if (numero<0) //se il numero è negativo cout<<“Numero negativo “; //allora stampo a video : “Numero negativo” else if (numero==0) //altrimenti se il numero è nullo cout<<“Numero nullo “; //allora stampo a video : “Numero nullo” else //altrimenti se il numero è positivo cout<<“Numero positivo “; //allora stampo a video : “Numero positivo”
Ecco il listato compelo sull’esempio di if else a cascata in C++:
#include <iostream>
using namespace std;
int main() {
int numero;
cout<<"Inserisci un numero: ";
cin>>numero;
if(numero<0)
cout<<"Numero negativo ";
else if (numero==0)
cout<<"Numero nullo ";
else
cout<<"Numero positivo ";
return 0;
}
Questi sono solo alcuni semplici esempi di utilizzo di if else in C.
CreateAttribute() – creare attributi agli elementi nel DOM con JavaScript
Con il metodo createAttribute() si possono aggiungere uno o più attributi agli elementi creati.
La sintassi è dunque questa:
element.createAttribute(nome_attributo);
dove nome_attributo è un attributo qualsiasi del tag creato.
Creare attributi agli elementi nel DOM con JavaScript – esempio 1
Dopo aver creato l’attributo con createAttribute(), utilizzeremo il metodo setAttributeNode(), per associare l’attributo ad un elemento.
Facciamo quindi un esempio per capire meglio il funzionamento.
Qui inserirò il collegamento:
Provate quindi a cliccare sul pulsante sopra, apparirà il link al sito Coding Creativo. Se cliccate sopra al link si aprirà una nuova pagina, che ad ogni modo potete chiudere per ritornare al tutorial.
Procedimento
Quindi innanzitutto creo il livello dove visualizzare il collegamento che voglio creare. Subito sotto creo il pulsante che dovrà essere cliccato per far comparire il nuovo collegamento.
<div id="collegamento">Qui inserirò il collegamento: </div>
<input type="submit" onclick="inserimento()" value="insert">
Passo adesso a creare il codice JavaScript. Creo quindi una funzione inserimento() che verrà richiamata quando verrà attivato l’evento onclick sul pulsante.
Quindi, all’interno della funzione, creo il nuovo elemento a con il metodo createElement(), come abbiamo fatto nel precedente tutorial.
Dopo tra il tag di apertura e di chiusura scrivo il testo Coding Creativo utilizzando la proprietà innerHTML.
Creo una variabile a cui assegno l’attributo creato con il metodo createAttribute(), in questo caso href. Successivamente gli dò il valore del sito web: https://www.codingcreativo.it.
Infine con setAttributeNode() associo l’attributo appena creato al tag a.
Dopo creo l’attributo blank=_target con la stessa modalità per far sì che il sito si apra in una nuova pagina.
Infine con il metodo getElementById() ricavo l’id del livello e con appendChild() aggiungo il tag creato con i suoi attributi.
function inserimento() {
var link = document.createElement("a");
link.innerHTML = "Coding Creativo ";
var att = document.createAttribute("href");
att.value = "https://www.codingcreativo.it";
link.setAttributeNode(att);
var newpage = document.createAttribute("target");
newpage.value = "_blank";
link.setAttributeNode(newpage);
document.getElementById("collegamento").appendChild(link);
}
Creare attributi agli elementi nel DOM con JavaScript – esempio 2
Facciamo adesso un altro esempio con l’utilizzo di createAttribute().
Qui inserirò l’immagine:
Provate quindi a cliccare sul pulsante, apparirà un’immagine di dimensione 200px. Se cliccate nuovamente, come negli altri casi si riproduce il tag.
Procedimento
Come prima creiamo il livello dove far apparire l’immagine ed il pulsante:
Poi in maniera simile all’esempio precedente creo il codice javascript:
function inserimento() {
var image = document.createElement("img");
var att = document.createAttribute("src");
att.value = "img/angoli.jpg";
image.setAttributeNode(att);
var larghezza = document.createAttribute("width");
larghezza.value = "200";
image.setAttributeNode(larghezza);
document.getElementById("immagine").appendChild(image);
}
Questa volta mi sono serviti l’attributo src per indicare il percorso dell’immagine e l’attributo width per la larghezza.
Chiaramente dovete indicare il percorso della vostra immagine.
Conclusione
Questi sono solo alcuni esempi di come creare nuovi attributi con createAttribute() e setAttributeNode().