At My Fingertips
Proseguiamo la nostra avventura con le bandiere delle nazioni del mondo. In questa attività dovrai costruire la bandiera della Svizzera.
Lo scopo dell'attività è quindi quello di tradurre lo pseudocodice, tenendo a portata di mano lo pseudocodice grafico che hai creato in precedenza, in codice Python.
Con questa attività ti eserciterai:
Nell'immagine sopra è visibile la bandiera della Svizzera, che sicuramente conosci già. Al tuo occhio attento sarà stato subito chiaro che questa bandiera si differenzia dalle altre per qualcosa di fondamentale.
La descrizione che hai fornito dovrebbe mettere in evidenza che la bandiera, a differenza di quelle create fino ad ora, è di forma quadrata. Le sue proporzioni sono quindi di 1:1. Inoltre dovresti aver parlato della croce, per la quale però non esiste un istruzione nella libreria PyTamaro. Avrai però intuito che è possibile costruire la croce utilizzando due rettangoli bianchi, opportunamente sovrapposti.
Dovresti aver menzionato almeno rettangolo e sovrapponi. Queste due operazioni ci permettono già di ottenere la bandiera corretta. Potresti aver fornito anche un'ulteriore istruzione: se fosse il caso prova ad utilizzarla qui sotto per creare la bandiera: ne discuteremo più avanti!
Prova a completare il codice qui sotto in modo da creare la bandiera richiesta. Suggerimento: fai capo alla documentazione delle operazioni, passando con il cursore sui nomi qui sopra e utilizza lo schema delle proporzioni qui sotto.
Se non viene visualizzata la croce, non è detto che sia tutto sbagliato: verifica l'ordine in cui sovrapponi la croce e lo sfondo.
I colori corretti per la bandiera della Svizzera sono i seguenti:
Il rosso e il bianco utilizzati per questa bandiera si trovano entrambi ai vertici del cubo RGB: il rosso ha infatti solo la componente rosso al valore massimo (255), mentre le componenti verde e blu sono a zero; il bianco infine è puro, avendo tutte e tre le componenti impostate a 255. Sono entrambi colori notevoli e per questo motivo sono già disponibili nella libreria con i nomi rosso e bianco.
Non è quindi necessario creare dei colori speciali in questo caso.
Come anticipato è possibile creare la bandiera utilizzando un'istruzione aggiuntiva: in questo caso l'istruzione in più ci permette di creare una forma primitiva in meno quando creiamo la nostra croce.
Ai programmatori, e quindi anche a noi, questo piace: stiamo infatti scomponendo il compito di creare la bandiera della Svizzera in due sottocompiti più semplici, che sono creare lo sfondo e creare la croce. A sua volta scomponiamo il compito di creare la croce in due sottocompiti: creare il braccio orizzontale e il braccio verticale.
Proprio in questo ultimo passaggio della scomposizione, possiamo utilizzare l'istruzione aggiuntiva: possiamo creare il braccio orizzontale e poi ruotarlo, per ottenere il braccio verticale. L'istruzione che ci serve è quindi ruota.
Copia nel riquadro qui sotto il tuo codice per la bandiera della Svizzera e modificalo in modo da creare il braccio verticale con l'istruzione ruota.
In questa attività ti sei esercitato a utilizzare le istruzioni sovrapponi
e ruota
, importandole dalla libreria, per costruire la bandiera della Svizzera.
Per le proporzioni hai dovuto inserire i calcoli necessari, derivati dallo schema per la costruzione della bandiera.
Hai inoltre potuto confrontarti con l'idea di scomporre la bandiera nelle sue componenti fondamentali: lo sfondo e il braccio orizzontale della croce. Per il quadrato hai potuto utilizzare l'istruzione rettangolo
, con larghezza e altezza uguali; il braccio della croce orizzontale, un semplice rettangolo, che, ruotato di 90 gradi, diventava anche il braccio verticale.
Infine hai ragionato ancora sulla rappresentazione RGB dei colori, per ottenere una bandiera più fedele all'originale, notando però che i colori già presenti nella libreria in questo caso erano quelli corretti.
This activity has been created by Sulmoni and is licensed under CC BY-SA 4.0.
It is derived from this activity.
Bandiere in Python - Svizzera
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 4735132 (Sat, 12 Oct 2024 10:20:26 GMT)