Le basi della logica, dunque anche l'algebra di Boole,dovrebbero essere padroneggiate da chiunque si cimenti a programmare un calcolatore. Non ha importanza il livello di competenze attuali o quello a cui si vuole arrivare, basso o elevato che sia, lo studio di queste branche del sapere è
fondamentale, o per lo meno lo è conoscerne le basi.
Siano date due
metavariabili (ossia simboli che stanno per altri simboli)
A e
B, si ha che la congiunzione (AND), dove A e B sono i congiunti, produce la seguente tabella di verità
A B Y
F F F
F V F
V F F
V V V
La negazione è un operatore, o connettivo, unario che quindi si applica ad una singola (meta) variabile. Banalmente, una volta definita A come metavariabile,si ha le seguente tabella di verità:
A Y
F V
V F
La tua espressione si può sintentizzare così usando sempre le due famose metavariabili A e B,dove ^ è la congiunzione e ~ rappresenta la negazione:
~A ^ B
Con tavole della verità alla mano puoi ricavare i valori di verità dell'espressione di cui sopra, ricordando che la negazione ha la precedenza sulla congiunzione che a sua volta ha priorità maggiore rispetto alla disgiunzione inclusiva (OR).
Il tutto è in risposta a questo
Grazie migliorabile! E' proprio questo il punto. L'operatore NOT dovrebbe invertire il valore dell'espressione booleana che lo segue, perciò, dato questo ciclo while
while(!(num1>=50) && (num1<=150))
e inserendo un numero compreso tra 50 e 150 (cioè un input true) non dovrebbe invertirlo in false? Oppure sto sbagliando qualcosa?