Vai al contenuto
Tag:

Olimpiadi di Informatica – Fase scolastica – 16-11-2017 – n. 19

La grafica della tartaruga prevede che si possano impartire degli ordini di movimento a una tartaruga, che li eseguirà lasciando sul terreno una traccia dei suoi movimenti, come se avesse una penna attaccata sulla pancia.
Gli ordini possono essere impartiti tramite un semplice linguaggio, stando attenti che:

  • l’istruzione avanti fa avanzare la tartaruga: il numero che segue esprime la lunghezza del movimento in passi;
  • le istruzioni destra e sinistra sono relative all’orientamento attuale della tartaruga, e il numero che segue è un angolo di rotazione (rispettivamente orario e antiorario) espresso in gradi;
  • le istruzioni pennasu e pennagiu sollevano e abbassano rispettivamente la penna sotto la pancia della tartaruga: quando la penna è sollevata ovviamente non lascia tracce sul terreno;
  • l’istruzione ripeti fa ripetere il blocco che segue, delimitato da parentesi graffe, per un numero di volte indicato a fianco dell’istruzione.

Inizialmente la tartaruga si trova nel vertice D, guarda verso l’alto ed è nella condizione pennagiu.
Si consideri il seguente codice e si indichi in quale vertice V si trova la tartaruga al termine dell’esecuzione e si dica se ha disegnato tutti i tratti mostrati in figura oppure no (DISEGNO=SI o DISEGNO=NO).
I numeri di riga sono mostrati tra parentesi quadre all’inizio di ogni riga del programma.

[1] ripeti 4 {
[2]    avanti 5
[3]    destra 90
[4] }
[5] destra 90
[6] pennasu
[7] avanti 1
[8] sinistra 90
[9] pennagiu
[10] avanti 2
[11] destra 90
[12] avanti 1
[13] destra 90
[14] avanti 2
[15] sinistra 90
[16] pennasu
[17] avanti 1
[18] sinistra 90
[19] avanti 3
[20] pennagiu
[21] ripeti 4 {
[22]    avanti 1
[23]    destra 90
[24] }
[25] pennasu
[26] avanti 2
[27] destra 90
[28] avanti 2
[29] sinistra 120
[30] pennagiu
[31] avanti 5
[32] sinistra 120
[33] avanti 5


Traduci le istruzioni e moltiplica per 10 le distanze…

  • avanti 1, Turtle.Move(10)
  • sinistra 90, Turtle.Turn(-90)
  • destra 90, Turtle.Turn(90)
  • pennagiu, Turple.PenDown()
  • pennasu, Turple.PenUp()
  • ripeti 4 { … }, For i=1 To 4 … EndFor

La tartaruga termina in A dopo aver completato il disegno.

For i=1 To 4 
   Turtle.Move(50)
   Turtle.Turn(90)
EndFor
Turtle.Turn(90)
Turtle.PenUp()
Turtle.Move(10)
Turtle.Turn(-90)
Turtle.PenDown()
Turtle.Move(20)
Turtle.Turn(90)
Turtle.Move(10)
Turtle.Turn(90)
Turtle.Move(20)
Turtle.Turn(-90)
Turtle.PenUp()
Turtle.Move(10)
Turtle.Turn(-90)
Turtle.Move(30)
Turtle.PenDown()
For i=1 To 4 
   Turtle.Move(10)
   Turtle.Turn(90)
EndFor
Turtle.PenUp()
Turtle.Move(20)
Turtle.Turn(90)
Turtle.Move(20)
Turtle.Turn(-120)
Turtle.PenDown()
Turtle.Move(50)
Turtle.Turn(-120)
Turtle.Move(50)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.