Esercizi sugli operatori logici (superiori)
I seguenti esercizi riguardano Operatori Logici studiati nella Lezione 10 della Parte Prima. Essi sono divisi per paragrafi in modo tale da favorire la scelta degli esercizi specifici.
Esercizio x interno all'intervallo
modificaEsercizio Verifica appartenenza di un punto a un intervallo
modifica
Dopo aver inserito i valori degli estremi di un intervallo ]a,b] e un numero n scelto dall'utente il programma verifica se il punto è interno o esterno all'intervallo
La soluzione è la seguente:
#include <iostream>
using namespace std;
/* dato l'intervallo a b , verificare se il numero n appartiene all'intervallo ]a,b]
obiettivo condizione realizzata con operatori AND
*/
int main(int argc, char *argv[])
{
int a,b,n;
cout<<"inserisci il numero a "<<endl;
cin>>a;
cout<<"inserisci il numero b "<<endl;
cin>>b;
cout<<"inserisci il numero n "<<endl;
cin>>n;
if ((a<n) && (n<=b))
{
cout<<"il numero è compreso nell'intervallo";
}
else
{
cout<<"il numero non è compreso nell'intervallo";
}
system ("PAUSE");
return 0;
}
Esercizio x esterno all'intervallo
modificaEsercizio Verifica se un punto n è esterno a un intervallo
modifica
Dopo aver inserito i valori degli estremi di un intervallo ]a,b] e un numero n scelto dall'utente il programma verifica se il punto non è interno all'intervallo , per risolvere l'esercizio prima nega la condizione del precedente esercizio (quindi usa solo gli operatori not e and) e poi risolvilo usando solo l'operatore logico OR
La soluzione negando la condizione del precedente esercizio è la seguente:
#include <iostream>
using namespace std;
/* verifica se n esterno intervallo a b
obiettivo scrittura condizioni composte tramite operatori OR NOT
*/
int main(int argc, char *argv[])
{
int a,b,n;
cout<<"inserisci il numero a "<<endl;
cin>>a;
cout<<"inserisci il numero b "<<endl;
cin>>b;
cout<<"inserisci il numero n "<<endl;
cin>>n;
if (!((a<n) && (n<=b))) // oppure si poteva usare come condizione ((n<=a)||(n>b))
{
cout<<"il numero non è compreso nell'intervallo";
}
else
{
cout<<"il numero è compreso nell'intervallo";
}
system ("PAUSE");
return 0;
}
La soluzione usando l'operatore OR è la seguente:
#include <iostream>
using namespace std;
/* verifica se n esterno intervallo a b
obiettivo scrittura condizioni composte tramite operatori OR
*/
int main(int argc, char *argv[])
{
int a,b,n;
cout<<"inserisci il numero a "<<endl;
cin>>a;
cout<<"inserisci il numero b "<<endl;
cin>>b;
cout<<"inserisci il numero n "<<endl;
cin>>n;
if ((n<=a) || (n>b)))
{
cout<<"il numero è esterno all'intervallo ]a,b] ";
}
else
{
cout<<"il numero è interno all'intervallo ]a,b] ";
}
system ("PAUSE");
return 0;
}