Gioco indovina numero con Algobuild

Gioco indovina numero con Algobuild

Proponiamo in questo articolo il semplice gioco indovina numero con Algobuild, proveremo cioè a creare il diagramma a blocchi di questo gioco.

Per realizzare questo algoritmo ci servirà la funzione random() che in Algobuild restituisce un numero casuale tra 0.0 e 0.99999999999999.

E ci servirà anche la funzione floor() che arrotonda un intero per difetto.

Il semplice gioco funziona in questo modo: la macchina produce un numero a caso e un utente deve provare ad indovinarlo.


Diagramma a blocchi per il gioco indovina numero con Algobuild

Quindi serviranno queste forme:

Ellisse per l’inizio e per la fine;

Rettangolo per effettuare le operazioni e per l’assegnamento;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere il numero e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso.


Procedimento

Dapprima memorizziamo in una variabile n il numero random generato dalla macchina. Questo numero sarà compreso tra 1 e 10 quindi imposto la funzione in questo modo:

n=floor(random()*10+1)

con la funzione floor arrotondo i numeri.

Poi chiediamo all’utente di inserire un numero e lo confrontiamo con il numero generato.

Se è uguale allora ha vinto, altrimenti ha perso. Alla fine diciamo in ogni caso il numero che il computer ha generato.

Ecco il diagramma a blocchi completo:

random javascript

Ma possiamo fare di meglio, chiedendo ad esempio all’utente per tre volte di inserire il numero e precisare inoltre se il numero generato dal computer è più alto o più basso.

Come fare? Mi serviranno le strutture cicliche.


Ecco allora un’altra implementazione del gioco indovina numero con Algobuild.

Quindi realizziamo un ciclo che utilizza un contatore che parte da 0 e arriva a 3 e ogni volta chiede di inserire un numero. Dopo, per ciascun numero, farà il test per vedere se il numero è più grande o più piccolo.

Il ciclo si fermerà quando l’utente ha esaurito tutti i tentativi oppure ha indovinato il numero. Ho inserito una variabile flag che quando trova il numero diventa 1. Ho chiamato questa variabile indovinato.

Allego tutto il diagramma a blocchi completo:

Gioco algobuild

Questa è solo una possibile soluzione del gioco indovina numero con algobuild.

Alcuni link utili

Indice argomenti diagramma a blocchi

Numeri primi da 1 a 100

Array con algobuild

Divisori di un numero con algobuild

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con algobuild

Fibonacci con algobuild

Serie buffa con algobuild

Numeri amicabili con algobuild

Numeri perfetti con algobuild

Massimo fra tre numeri

Minore fra tre numeri

Esercizi con Algobuild

Esercizi con Algobuild

In questo articolo realizzeremo degli esercizi con Algobuild.

Esercizio 1 con Algobuild

Conoscendo il prezzo di un oggetto (prezzo) e i soldi a disposizione nel proprio portafoglio, determinare se è possibile acquistare o no l’oggetto. Inoltre, se è possibile, verificare se e quanti soldi rimangono nel portafoglio dopo l’acquisto.

Questo semplice algoritmo si risolve quindi con le strutture di selezione.

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere il prezzo e i soldi a disposizione e per visualizzare in output il risultato;

Rettangolo per compiere le operazioni;

Rombo per effettuare un test che può essere vero o falso. In questo caso si effettua un solo test.


Procedimento

Innanzitutto chiediamo in input il prezzo del prodotto e i soldi a disposizione. Quindi le due variabili che prenderemo in input sono prezzo e soldi.

Dopo controlliamo se il prezzo è maggiore dei soldi, cioè: prezzo>soldi.

Se è vero non è possibile acquistare il prodotto e visualizziamo il messaggio in output. Altrimenti se è falso vuol dire che il prezzo è minore o uguale ai soldi, dunque è possibile comprare l’oggetto.

In quest’ultimo caso calcoliamo quanto resterà nel portafoglio semplicemente facendo la differenza tra i soldi che abbiamo e il prezzo del prodotto: d=soldi-prezzo.

N.B. Ricordiamo che l’opposto di > è <=, non <.

Risoluzione con Algobuild

Presentiamo adesso la soluzione all’algoritmo proposto con Algobuild.

esercizi con algobuild

Questo è uno dei semplici esercizi con Algobuild che volevo proporvi oggi.

Esercizio 2 con Algobuild

Un’agenzia noleggia auto ai propri clienti a 30€ al giorno. Se i giorni di noleggio sono maggiori di 6 si applica uno sconto del 10% sul totale. Calcolare il prezzo da pagare.

Anche questo semplice algoritmo si risolve con le strutture di selezione:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso i giorni e per visualizzare in output il totale da pagare;

Rettangolo per compiere le operazioni, ed assegnare un valore alla costante prezzo;

Rombo per effettuare un test che può essere vero o falso. In questo caso si effettua un solo test.


Procedimento

Chiediamo in input i giorni e assegniamo a prezzo il valore di 30. Notate che prezzo non è un input ma un valore costante, quindi si deve utilizzare il rettangolo.

Dopo facciamo un test sui giorni e se sono minori o uguali a 6 calcoliamo il prezzo senza sconto, altrimenti effettuiamo uno sconto del 10% sul totale.

Allego quindi l’esercizio completo creato con Algobuild.

esercizio algobuild

Questi sono solo alcuni semplici esercizi con algobuild, più avanti ne presenterò degli altri.

Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli


Algoritmo anno bisestile

Algoritmo anno bisestile

In quest’articolo studieremo un algoritmo che controlla se un anno è bisestile oppure no.

Regola per calcolare se un anno è bisestile

Nel mese di febbraio ogni 4 anni viene aggiunto un giorno per evitare lo slittamento delle stagioni. Quindi ogni 4 anni avremo 366 giorni anziché 365.

Per vedere se un anno è bisestile dobbiamo dividerlo per 400; se è divisibile allora è sicuramente un anno bisestile; altrimenti saranno bisestili solo quegli anni che si possono dividere per 4 ma non per 100.

Esempi di anni bisestili sono:

1600, 1604, 1608 fino al 1696. Il 1700 non è bisestile. E ancora il 1704, 1708 fino a 1796. Il 1800 non è bisestile. Allo stesso modo neanche il 1900 è bisestile e così via.

In definitiva per apportare un’ulteriore approssimazione si è stabilito di non rendere bisestili gli anni secolari, eccetto quelli divisibili per 400.

Potete seguire tutta la spiegazione su focus scienza se volete approfondire.

Algoritmo anno bisestile con i diagrammi di flusso

Realizziamo questo semplice algoritmo con i diagrammi di flusso.

Per realizzare l’algoritmo servono dunque le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere l’anno e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso. In questo caso si effettuano due test.

Quindi chiediamo in input l’anno e poi verifichiamo se è divisibile per 400. Se è vero diciamo che l’anno è bisestile, altrimenti verifichiamo se l’anno è divisibile per 4 ma non per 100 come detto sopra.

Utilizzeremo l’operatore % , che è l’operatore modulo, che serve a trovare il resto della divisione.

Lo spiego con un esempio:

2400%400 indica il resto della divisione che in questo caso è 0; in quanto 2400 diviso 400 fa 6 con resto zero;

invece 2400/400 indica un quoziente e in questo caso è 6.

Per fare il test usiamo l’operatore di confronto che ricordo si esprime con il doppio uguale.

Allego l’algoritmo completo che verifica se un anno è bisestile.

algoritmo anno bisestile

Potremmo anche adottare questo procedimento:

anno bisestile

In questo modo si controlla se un anno è bisestile con un solo test, ovvero un solo se.


Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli

Algoritmo figure equivalenti

Algoritmo figure equivalenti

Realizziamo un algoritmo per stabilire se due figure sono equivalenti con i diagrammi di flusso.

Innanzitutto diamo la definizione di due figure equivalenti:

In geometria piana, due figure si dicono equivalenti quando hanno la stessa area, cioè occupano la stessa estensione.

Ipotizziamo dunque questo problema:

Dati in input l’ipotenusa e il cateto di un triangolo rettangolo e il lato di un quadrato verificare se le due figure sono equivalenti.

Algoritmo con i diagrammi di flusso per vedere se due figure sono equivalenti

Per realizzare l’algoritmo servono dunque le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere l’ipotenusa, il cateto e il lato e per visualizzare in output il risultato;

Rettangolo per compiere le operazioni;

Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: AreaQ è uguale AreaT?

Quindi prendiamo in input il cateto c1, l’ipotenusa i del triangolo rettangolo e il lato l del quadrato e calcoliamo le due aree.

Per calcolare l’area del triangolo rettangolo abbiamo bisogno di ricavare il cateto, usando questa formula:

c2=sqrt(i*i-c1*c1); dove sqrt è la funzione per la radice quadrata.

Dopo calcoliamo AreaT=c1*c2/2 e l’AreaQ=l*l

Usiamo la funzione round() per arrotondare all’intero più vicino.

Poi facciamo il confronto. Se le due aree sono uguali allora le figure sono equivalenti e le visualizziamo in output con un messaggio.

Al fine di semplificare il problema, per il momento trascuriamo i controlli che verificano se i dati presi in input possono essere quelli di un triangolo rettangolo e quelli di un quadrato.

In figura potete vedere il diagramma a blocchi realizzato con Algobuild, ma potete usare anche un foglio, sebbene Algobuild sia molto utile in quanto fa vedere i possibili errori.

figure equivalenti

Chiaramente questa è una possibile soluzione dell’algoritmo per il confronto di due figure equivalenti, proponete pure la vostra nei commenti sotto.

Alcuni link utili

Indice argomenti diagramma a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli

Algoritmi di selezione per  confrontare due numeri

Algoritmi di selezione per confrontare due numeri

Realizziamo alcuni algoritmi di selezione per confrontare due numeri.

Esempio 1 di algoritmo di selezione per confrontare due numeri

Dati due numeri naturali X e Y, aggiungere al più piccolo la somma dei due numeri, se uguali visualizzare semplicemente che i numeri sono uguali.

Per realizzare l’algoritmo servono le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso i due numeri X e Y e per visualizzare in output il risultato;

Rettangolo per compiere le operazioni;

Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: X è minore di Y? E nuovamente si usa per chiedere X è maggiore di Y?

Quindi prendo in input X e Y e dopo faccio la somma dei due numeri.

Poi chiedo se X è minore di Y, se vero aggiungo a X la somma; se falso controllo se Y è minore e se è vero aggiungo a Y la somma; altrimenti vuol dire che i numeri sono uguali.

Ecco il programma realizzato con i diagrammi a blocchi tramite il software Algobuild.

confronto tra numeri

Esempio 2 di algoritmo di selezione per confrontare due numeri

Dati 2 numeri naturali X e Y, aggiungere al più piccolo la quantità necessaria per essere uguale al più grande, se uguali visualizzare semplicemente che i numeri sono uguali.

Per realizzare l’algoritmo servono dunque le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso i due numeri X e Y e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede:  X è minore di Y? E nuovamente si usa per chiedere X è maggiore di Y?

Anche qui prendo in input X e Y e dopo chiedo se X è minore di Y, se vero aggiungo a X la differenza tra Y e X; se falso controllo se Y è minore e se è vero aggiungo a Y la la differenza tra X e Y, altrimenti vuol dire che i numeri sono uguali.

Ecco il flow chart realizzato con Algobuild.

somma al minore

Esempio 3 di algoritmi di selezione per confrontare due numeri

Dati 2 numeri naturali X e Y, aggiungere 100 al più grande, se uguali visualizzare semplicemente che i numeri sono uguali.

Per realizzare l’algoritmo servono quindi le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma per inserire l’input, ovvero in questo caso i due numeri X e Y e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: X è minore di Y? E nuovamente si usa per chiedere X è maggiore di Y?

Anche qui prendo in input X e Y e dopo chiedo se X è minore di Y, se vero aggiungo a Y il valore 100; se falso controllo se Y è minore e se è vero aggiungo a X il valore 100; altrimenti i numeri sono uguali.

Ecco il diagramma di flusso realizzato con Algobuild.

selezione algobuild

Questi sono solo alcuni esempi di algoritmi di selezione con il confronto tra due numeri, presto ne metterò degli altri.

Alcuni link utili

Indice argomenti diagramma a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli