- Saper definire e validare un intervallo numerico come unico insieme logico.
- Integrare l'operatore AND all'interno di cicli per la validazione degli input.
- Combinare selezioni multiple (switch) e condizioni composte (if con &&) per risolvere problemi gestionali.
L'operatore logico AND, rappresentato in C++ dal simbolo &&, è definito un operatore "severo". Esso restituisce Vero (true) solo ed esclusivamente se tutte le condizioni collegate sono vere contemporaneamente.
Pensa all'AND come a una serratura che richiede due chiavi diverse girate nello stesso momento per aprirsi.
Sintassi e Tabella di Verità
if (condizione1 && condizione2) {
// Questo codice viene eseguito solo se ENTRAMBE sono vere
}
| A | B | A && B |
|---|---|---|
| Vero | Vero | Vero |
| Vero | Falso | Falso |
| Falso | Vero | Falso |
| Falso | Falso | Falso |
L'Insieme Numerico: Il concetto di "Intervallo"
Nella logica di programmazione, quando diciamo che un numero deve essere compreso tra due valori (ad esempio tra 10 e 20), stiamo definendo un unico insieme numerico.
Perché questo insieme sia valido, il numero deve soddisfare contemporaneamente due limiti:
- Deve essere maggiore (o uguale) al limite inferiore.
- Deve essere minore (o uguale) al limite superiore.
&& funge da collante: se una delle due condizioni cade fuori dal limite, l'intero numero è fuori dall'insieme.
(x > 10 && x < 20).
LABORATORIO AVANZATO
Integrazione AND, Switch e Cicli
1 Esercizio: Biglietteria Cinema con Sconti Agevolati
Un cinema offre diverse tipologie di biglietti tramite un menu (switch). Tuttavia, lo sconto "Ridotto Speciale" viene applicato solo se l'età dell'utente rientra in un determinato intervallo.
#include <iostream>
using namespace std;
int main() {
int scelta, eta;
float prezzo = 10.0;
cout << "\t--- CINEMA MULTIPLEX ---\n";
cout << "1. Film d'Azione\n2. Film d'Animazione\n3. Documentario\nScelta: ";
cin >> scelta;
cout << "Inserisci la tua eta: ";
cin >> eta;
switch (scelta) {
case 1: case 2: case 3:
// Applichiamo lo sconto solo se l'eta e compresa tra 12 e 18 anni (Intervallo Junior)
if (eta >= 12 && eta <= 18) {
prezzo = prezzo * 0.5; // Sconto 50%
cout << "\n\t[OFFERTA] Applicato sconto fascia Junior (12-18 anni)!";
}
cout << "\nPrezzo finale da pagare: " << prezzo << " Euro";
break;
default:
cout << "\nScelta non valida.";
}
return 0;
}
2 Esercizio in autonomia: Acquisto Abbonamento Palestra
Un centro sportivo vende abbonamenti. L'utente sceglie il tipo (1. Mensile, 2. Trimestrale, 3. Annuale).
- Validazione Input: Verificate che l'età sia corretta
- Struttura Switch: Gestite le tre opzioni: 1. Mensile (40€), 2. Trimestrale (100€), 3. Annuale (350€).
- Condizioni Logiche Composti: Applicate gli sconti nei seguenti casi:
- Mensile: Sconto di 5€ se l'utente è un bambino (età tra 5 e 12 anni).
- Trimestrale: Sconto di 15€ se l'utente è un Senior (età tra 65 e 90 anni).
- Annuale: Sconto "Studenti" di 50€ se l'età è compresa tra 18 e 25 anni.
4 Esercizio in autonomia: Booking Parco Avventura
Il Parco Avventura "Extreme C++" richiede un software per il calcolo del costo del biglietto e la verifica dei requisiti di sicurezza per l'accesso ai percorsi.
Specifiche tecniche richieste:- Validazione Input: Utilizzate un ciclo
whileper assicurarvi che l'altezza inserita sia tra 100 e 220 cm. - Menu Percorsi: Gestite tre tipologie tramite
switch:- 1. Percorso Verde (Bambini): Costo 15€.
- 2. Percorso Blu (Standard): Costo 25€.
- 3. Percorso Rosso (Esperti): Costo 35€.
- Applicate le seguenti regole:
- Percorso Verde: Sconto di 5€ se l'altezza è tra 100 e 130 cm E l'età è inferiore a 10 anni.
- Percorso Blu: Accesso consentito solo se l'altezza è tra 140 e 190 cm E il peso (da chiedere in input) è inferiore a 100 kg.
- Percorso Rosso: Prezzo maggiorato di 10€ (assicurazione casco) se l'età è tra 18 e 30 anni (fascia considerata ad alto rischio).
Sfida di formattazione: Generate un ticket finale usando \t per allineare i prezzi e una cornice di # per simulare il biglietto cartaceo.