Come illustrato nei capitoli precedenti, pag. da 1 a 6, la fase di elaborazione degli algoritmi è essenzialmente basata su principi matematici e algebrici. Durante questa fase, gli algoritmi trasformano i dati in ingresso seguendo precise istruzioni. Questa fase è fondamentale, poiché determina non solo il modo in cui i dati vengono manipolati per produrre l'output desiderato, ma anche l'efficienza e l'accuratezza dell'intero processo. Le operazioni che possono essere eseguite includono: addizioni, sottrazioni, moltiplicazioni e divisioni sono impiegate per effettuare calcoli sui dati numerici. Queste operazioni possono essere estese a funzioni matematiche più complesse, come il calcolo di radici quadrate, esponenziali o logaritmi, a seconda delle esigenze del problema. Per coloro che si avvicinano per la prima volta alla matematica, è fondamentale comprendere le operazioni di base che costituiscono il fondamento di calcoli più complessi. Analizziamo nel dettaglio queste operazioni fondamentali.- 1. Addizione: La Somma di Numeri
- 2. Sottrazione: La Differenza tra Numeri
- 3. Moltiplicazione: L'Addizione Ripetuta
- 4. Divisione: La Distribuzione Equa
- 5. Radice Quadrata (√):
La radice quadrata di un numero è il valore che, moltiplicato per se stesso, restituisce il numero originale.
Esempio: La radice quadrata di 100 è 10, poiché 10 moltiplicato per se stesso dà 100. (10x10=100) √100 = 10. 6. Esponenziale (^):L'operazione esponenziale eleva un numero (base)=(a) a una potenza (esponente)=(n), indicando quante volte moltiplicare la base per se stessa.
Esempio: 100 elevato alla terza potenza (100^3) / 1003 equivale a 100×100×100, risultato 1.000.000. (an)8. Logaritmo (log): Il logaritmo è l'operazione inversa dell'esponenziale; determina l'esponente a cui elevare una base per ottenere un certo numero. La formula generale del logaritmo è: [logb(an)= c
] dove "a" è la base del logaritmo, "b" è l'argomento del logaritmo, "c" è l'esponente al quale elevare la base per ottenere "𝑏".
La base di un logaritmo può variare a seconda del contesto e delle esigenze specifiche. Le basi più comuni sono:1. Base 10 (logaritmo decimale): Utilizzato frequentemente in contesti scientifici e ingegneristici.2. Base 2 (logaritmo binario): Fondamentale in informatica, poiché i computer operano in base 2.3. Base "𝑒"(logaritmo naturale): Dove "𝑒" è una costante matematica approssimativamente uguale a 2,71828. Questo logaritmo è ampiamente utilizzato in matematica e fisica, specialmente in contesti che coinvolgono crescita esponenziale e decadenza.
Per calcolare il logaritmo in base 2 di 1.000.000, dobbiamo ricorrere alla formula del cambio di base, poiché non è possibile calcolare log2(1.000.000) direttamente con una formula semplice senza ricorrere al cambio di base o ad algoritmi numerici implementati da software o calcolatrici:
[logb(x) = logk(x) / logk(b)] dove:
"b" è la base desiderata (in questo caso 2),"x" è il numero di cui vogliamo calcolare il logaritmo (1.000.000),"k" è una base di riferimento comune, come "10" o "𝑒" (la base dei logaritmi naturali).Applicazione pratica:
log2(1.000.000) = log10(1.000.000) / log10(2) risultato = 6 / log10(2)
Dove:
log2(1.000.000) rappresenta il logaritmo in base 2 di 1.000.000.log10(1.000.000) è il logaritmo in base 10 di 1.000.000, che è 6, poiché 1.000.000 è uguale a 106.log10(2) è il logaritmo in base 10 di 2, che è approssimativamente 0.30103.Quindi, applicando la formula del cambiamento di base:
log2(1.000.000) = 6 / 0.30103 ≈ 19.9315 Questo significa che 2 elevato a circa 19.9315 è approssimativamente uguale a 1.000.000.
In conclusione questa sezione ha esplorato alcune operazioni matematiche basilari che costituiscono i mattoni di molti algoritmi. È importante ricordare che questa selezione è limitata e non rappresenta la totalità delle operazioni impiegate nell'informatica. Ne esistono molte altre, ad esempio:
Gli operatori di confronto sono strumenti essenziali nel linguaggio di programmazione, utilizzati per stabilire relazioni tra valori e variabili. Questi operatori permettono di effettuare confronti per determinare se un valore è maggiore, minore, uguale o diverso da un altro. Le relazioni che si possono esprimere includono: "maggiore di", "minore di", "uguale a", "diverso da", "maggiore o uguale a" e "minore o uguale a". La loro importanza si estende oltre il semplice confronto numerico; infatti, sono fondamentali per il funzionamento delle strutture di controllo nel codice, come le istruzioni condizionali, ad esempio con le dichiarazioni "if" e "switch", che permettono di eseguire diverse azioni in base ai risultati dei confronti. Le operazioni di confronto costituiscono la base per la logica condizionale all'interno di un algoritmo e sono cruciali per la gestione del flusso di controllo nei programmi. Senza di esse, sarebbe impossibile implementare logiche complesse e interattive. Inoltre, gli operatori di confronto sono utilizzati anche all'interno dei cicli, come nei costrutti "while" e "for", per determinare quando continuare o terminare l'esecuzione di un blocco di codice. Comprendere il funzionamento e l'applicazione degli operatori di confronto è quindi cruciale per chiunque desideri scrivere programmi efficaci e logici, poiché essi consentono di prendere decisioni automatizzate e di controllare il flusso dell'esecuzione, rendendo il codice non solo più dinamico, ma anche più potente.
Per comprendere meglio come utilizzare questi operatori nella pratica, è utile esaminare alcuni esempi concreti, passiamo quindi agli esempi pratici e alle descrizioni dettagliate:
1. Maggiore di ( > ) : Restituisce vero se il valore a sinistra è maggiore di quello a destra.
Maggiore di ( > ) esempio:
# Inizializziamo le variabili numero1 e numero2
numero1 = 8
numero2 = 5
# Verifichiamo se numero1 è maggiore di numero2
if numero1 > numero2:
print("Numero 1 è maggiore di Numero 2.") # Stampa se numero1 è maggiore
else:
print("Numero 1 non è maggiore di Numero 2.") # Stampa se numero1 non è maggiore
Descrizione: In questo esempio, confrontiamo due numeri, numero 1 e numero 2, utilizzando l'operatore di confronto ">". Se numero 1 è maggiore di numero 2, il programma stamperà che numero1 è maggiore. Altrimenti, stamperà che non lo è.
-------------------------------
2. Minore di ( < ) : Restituisce vero se il valore a sinistra è minore di quello a destra.
Minore di ( < ) esempio:
# Dichiarazione delle variabili
numero1 = 3
numero2 = 7
# Verifica se numero1 è minore di numero2
if numero1 < numero2:
print("Numero 1 è minore di Numero 2.") # Stampa se la condizione è vera
else:
print("Numero 1 non è minore di Numero 2.") # Stampa se la condizione è falsa
Descrizione: Qui stiamo verificando se numero 1 è inferiore a numero 2 usando l'operatore "<". Se la condizione è vera, viene stampato un messaggio che indica che numero 1 è minore; altrimenti, viene fornito un messaggio alternativo.
-------------------------------
3. Uguale a (==) : Restituisce vero se i valori a sinistra e a destra sono uguali.
Uguale a (==) esempio:
# Definiamo due variabili
valore1 = 10
valore2 = 10
# Controlliamo se i due valori sono uguali
if valore1 == valore2:
print("I valori sono uguali.")
# Se i valori non sono uguali, stampa un messaggio diverso
else:
print("I valori sono diversi.")
Descrizione: In questo esempio, controlliamo se due valori sono uguali utilizzando l'operatore di uguaglianza "==". Se valore 1 è uguale a valore 2, il programma stamperà un messaggio di uguaglianza; in caso contrario, stamperà che i valori sono diversi.
-------------------------------
4. Diverso da (!=) : Restituisce vero se i valori a sinistra e a destra non sono uguali.
Diverso da (!=) esempio:
# Assegnazione dei frutti
frutto1 = "mela"
frutto2 = "banana"
# Controlla se i frutti sono diversi
if frutto1 != frutto2:
print("I frutti sono diversi.") # Se i frutti sono diversi, stampa un messaggio
else:
print("I frutti sono uguali.") # Se sono uguali, stampa un altro messaggio
Descrizione: Qui utilizziamo l'operatore "!=". per verificare se due frutti, frutto 1 e frutto 2, sono diversi. Se lo sono, il programma stamperà un messaggio che indica che sono diversi; altrimenti, dirà che sono uguali.
-------------------------------
5. Maggiore o uguale a (≥) : Restituisce vero se il valore a sinistra è maggiore o uguale a quello a destra.
Maggiore o uguale a (≥) esempio:
# Definiamo l'età
eta = 17
# Verifichiamo se l'età è maggiore o uguale a 18
if eta >= 18:
print("Sei maggiorenne.")
else:
print("Sei minorenne.")
Descrizione: In questo esempio, controlliamo se una persona è maggiorenne utilizzando l'operatore "≥". Se l'età è maggiore o uguale a 18, viene stampato un messaggio di maggiorenne; in caso contrario, si indica che la persona è minorenne.
-------------------------------
6. Minore o uguale a (≤) : Restituisce vero se il valore a sinistra è minore o uguale a quello a destra.
Minore o uguale a (≤) esempio:
# Assegniamo un punteggio
punteggio = 85
# Verifichiamo se il punteggio è sufficiente
if punteggio <= 60: # Se il punteggio è minore o uguale a 60
print("Non hai superato l'esame.") # Stampa un messaggio di insuccesso
else: # Altrimenti, se il punteggio è maggiore di 60
print("Hai superato l'esame.") # Stampa un messaggio di successo
Descrizione: Qui controlliamo se un punteggio è sufficiente per superare un esame, utilizzando l'operatore "!<=". Se il punteggio è minore o uguale a 60, il messaggio indicherà il fallimento; altrimenti, dirà che l'esame è stato superato.
-------------------------------
Inoltre, gli operatori di confronto sono spesso utilizzati all'interno delle strutture di controllo per valutare condizioni logiche. Queste condizioni determinano quale ramo di codice verrà eseguito, come nel caso delle istruzioni "if", che attivano il codice solo se la condizione è vera, o nei cicli "for" e "while", che si ripetono fino a quando la condizione rimane valida.
strutture di controllo:
7. Condizione (if) : Esegue un blocco di codice se la condizione specificata è vera.
Istruzione (if) esempio:
# Definiamo la variabile giorno e assegnamo un valore
giorno = 3
# Controlliamo il valore di giorno e stampiamo il nome del giorno corrispondente
if giorno == 1:
print("Lunedì")
# Se giorno è 2, stampa Martedì
if giorno == 2:
print("Martedì")
# Se giorno è 3, stampa Mercoledì
if giorno == 3:
print("Mercoledì")
# Se giorno è 4, stampa Giovedì
if giorno == 4:
print("Giovedì")
# Se giorno è 5, stampa Venerdì
if giorno == 5:
print("Venerdì")
# Se giorno è maggiore di 5, stampa "Fine settimana"
if giorno > 5:
print("Fine settimana")
Descrizione: In questo caso, ogni condizione "if" è valutata separatamente. Se giorno è uguale a 3, verrà stampato "Mercoledì". Se il valore di giorno è maggiore di 5, verrà stampato "Fine settimana". Unitamente all'istruzione if, si utilizza spesso anche "elif", che è una contrazione di "else if". È utilizzato per aggiungere ulteriori condizioni a una struttura di controllo if. Quando utilizzi elif, se la condizione dell'if iniziale è falsa, verranno valutate le condizioni successive.
-------------------------------
7.2 Condizione (if, elif e else) :
Istruzione (if, elif e else) esempio:
# Definiamo la variabile giorno
giorno = 3
# Controlliamo il giorno e stampiamo il corrispondente giorno della settimana
if giorno == 1: # Se è Lunedì
print("Lunedì")
elif giorno == 2: # Se è Martedì
print("Martedì")
elif giorno == 3: # Se è Mercoledì
print("Mercoledì")
elif giorno == 4: # Se è Giovedì
print("Giovedì")
elif giorno == 5: # Se è Venerdì
print("Venerdì")
else: # Se non è un giorno della settimana valido
print("Fine settimana")
Descrizione: se la condizione dell'"if" iniziale è falsa, Python verifica la condizione dell'elif. Se questa è vera, esegue il blocco di codice associato a quell'elif. Puoi avere più "elif" in una struttura di controllo "if". In questo esempio, se giorno è uguale a 3, verrà stampato "Mercoledì". Se giorno non corrisponde a nessuno dei valori specificati (1-5), verrà stampato "Fine settimana".
-------------------------------
7.3 Condizione (if, elif e else) :
Istruzione (if, elif e else) : esempio:
# Chiediamo all'utente di inserire un punteggio
punteggio = float(input("Inserisci il punteggio (0-100): "))
# Verifichiamo che il punteggio sia valido
if punteggio < 0 or punteggio > 100:
print("Il punteggio deve essere compreso tra 0 e 100.")
else:
# Classificazione del punteggio
if punteggio < 60:
classificazione = "Insufficiente"
elif punteggio < 70:
classificazione = "Sufficiente"
elif punteggio < 80:
classificazione = "Buono"
elif punteggio < 90:
classificazione = "Ottimo"
else:
classificazione = "Eccellente"
# Stampa il risultato
print(f"La classificazione del punteggio è: {classificazione}")
Descrizione: Qui un esempio + complesso che usa le istruzioni if, elif ed else per determinare la classificazione di un voto scolastico sulla base di un punteggio fornito dall'utente. In questo caso, il programma classifica il punteggio in diverse categorie, come "Insufficiente", "Sufficiente", "Buono", "Ottimo" e "Eccellente". La funzione input() viene utilizzata per chiedere all'utente di inserire un punteggio, che viene poi convertito in un numero decimale tramite float() e assegnato alla variabile punteggio. Successivamente, verifica la validità del punteggio, assicurandosi che sia compreso tra 0 e 100; in caso contrario, stampa un messaggio di errore. Se il punteggio è valido, utilizza una serie di istruzioni if, elif ed else per classificarlo: sotto 60 è "Insufficiente", tra 60 e 69 è "Sufficiente", tra 70 e 79 è "Buono", tra 80 e 89 è "Ottimo", mentre 90 o più è "Eccellente". Infine, il programma stampa il risultato della classificazione.
-------------------------------
--> PAG. 8, continua la Sezione "Elaborazione" (Operatori di Confronto).