Imparare un nuovo linguaggio di programmazione può essere divertente. Ogni volta che cerco di impararne uno nuovo, mi concentro sulla definizione delle variabili, sulla scrittura di uno statement e sulla valutazione delle espressioni. Una volta che ho una comprensione generale di questi concetti, di solito posso capire il resto da solo. La maggior parte dei linguaggi di programmazione hanno alcune somiglianze, quindi una volta che si conosce un linguaggio di programmazione, imparare quello successivo è una questione di capire i dettagli unici e riconoscere le differenze in esso.

Per aiutarmi a praticare un nuovo linguaggio di programmazione, mi piace scrivere alcuni programmi di prova. Un programma di esempio che scrivo spesso è un semplice programma “indovina il numero”, dove il computer sceglie un numero tra uno e 100 e mi chiede di indovinare il numero. Il programma va in loop finché non indovino correttamente.

Il programma “indovina il numero” esercita diversi concetti nei linguaggi di programmazione: come assegnare valori alle variabili, come scrivere dichiarazioni e come eseguire valutazioni condizionali e loop. È un ottimo esperimento pratico per imparare un nuovo linguaggio di programmazione.

Indovina il numero in Bash

Bash è la shell standard della maggior parte dei sistemi Linux. Oltre a fornire una ricca interfaccia utente a riga di comando, Bash supporta anche un linguaggio di programmazione completo sotto forma di script.

Se non hai familiarità con Bash, ti consiglio queste introduzioni:

  • Che cos’è Bash?
  • Inizia con la programmazione in Bash
  • Inizia con lo scripting in Bash per sysadmin
  • Come scrivere funzioni in Bash
  • Leggi di più su Bash

Puoi esplorare Bash scrivendo una versione del gioco “indovina il numero”. Ecco la mia implementazione:

Smontare lo script

La prima linea nello script, #!/bin/bash dice a Linux di eseguire questo script usando la shell Bash. Ogni script inizia con la coppia di caratteri #!, che indica che questo è uno script di shell. Ciò che segue immediatamente #! è la shell da eseguire. In questo caso, /bin/bash è la shell Bash.

Per assegnare un valore a una variabile, elencate il nome della variabile seguito dal segno =. Per esempio, l’istruzione guess=0 assegna un valore zero alla variabile guess.

Puoi anche chiedere all’utente di inserire un valore usando l’istruzione read. Se scrivi read guess, Bash aspetta che l’utente inserisca del testo e poi memorizza quel valore nella variabile guess.

Per fare riferimento al valore di una variabile, usa $ prima del nome della variabile. Così, avendo memorizzato un valore nella variabile guess, puoi recuperarlo usando $guess.

Puoi usare qualsiasi nome tu voglia per le variabili, ma Bash si riserva alcuni nomi speciali per le variabili. Una variabile speciale è RANDOM, che genera un numero casuale molto grande ogni volta che si fa riferimento ad essa.

Se si vuole eseguire un’operazione nello stesso momento in cui si memorizza un valore, è necessario racchiudere la dichiarazione tra parentesi speciali. Questo dice a Bash di eseguire quell’istruzione per prima, e il = memorizza il valore risultante nella variabile. Per valutare un’espressione matematica, usa $(( )) intorno all’istruzione. Le doppie parentesi indicano un’espressione aritmetica. Nel mio esempio, number=$(( $RANDOM % 100 + 1 )) valuta l’espressione $RANDOM % 100 + 1 e poi memorizza il valore nella variabile number.

Si applicano gli operatori aritmetici standard come + (più), - (meno), * (moltiplica), / (dividi) e % (modulo).

Questo significa che l’istruzione number=$(( $RANDOM % 100 + 1 )) genera un numero casuale tra uno e 100. L’operatore modulo (%) restituisce il resto dopo aver diviso due numeri. In questo caso, Bash divide un numero casuale per 100, lasciando un resto nell’intervallo da zero a 99. Aggiungendo uno a questo valore, si ottiene un numero casuale tra uno e 100.

Bash supporta le espressioni condizionali e il controllo del flusso come i cicli. Nel gioco “indovina il numero”, Bash continua il ciclo finché il valore in guess non è uguale a number. Se l’indovinello è inferiore al numero casuale, Bash stampa “Troppo basso”, e se l’indovinello è maggiore del numero, Bash stampa “Troppo alto”.

Come funziona

Ora che hai scritto il tuo script Bash, puoi eseguirlo per giocare al gioco “indovina il numero”. Continuate a indovinare finché non trovate il numero corretto:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Ogni volta che eseguite lo script, Bash sceglierà un numero casuale diverso.

Questo gioco “indovina il numero” è un ottimo programma introduttivo quando si impara un nuovo linguaggio di programmazione perché esercita diversi concetti comuni di programmazione in un modo piuttosto semplice. Implementando questo semplice gioco in diversi linguaggi di programmazione, è possibile dimostrare alcuni concetti fondamentali e confrontare i dettagli in ogni linguaggio.

Hai un linguaggio di programmazione preferito? Come scriveresti il gioco “indovina il numero” in esso? Seguite questa serie di articoli per vedere esempi di altri linguaggi di programmazione che potrebbero interessarvi.

Si prega di non dimenticare il vostro linguaggio di programmazione.