Utilizzando due ripetizioni innestate (una per le righe e una per le colonne) e i se che dovessero rivelarsi necessari, realizzare le seguenti figure geometriche.
Tutte le figure devono essere parametriche rispetto alla dimensione del lato. Quelle rappresentate (a titolo di esempio) hanno lato=8, salvo diversamente specificato.
Esercizio 1: North-West triangle
********
*******
******
*****
****
***
**
*
********
* *
* *
* *
* *
* *
**
*
Esercizio 2: South-West triangle
*
**
***
****
*****
******
*******
********
*
**
* *
* *
* *
* *
* *
********
Esercizio 3: North-East triangle
********
*******
******
*****
****
***
**
*
********
* *
* *
* *
* *
* *
**
*
Esercizio 4: South-East triangle
*
**
***
****
*****
******
*******
********
*
**
* *
* *
* *
* *
* *
********
Esercizio 5: North-West Obtuse triangle
Suggerimento: tracciare un triangolo di spazi con affiancato un triangolo di asterischi.
********
*******
******
*****
****
***
**
*
********
* *
* *
* *
* *
* *
**
*
Esercizio 6: South-West Obtuse triangle
Suggerimento: tracciare un triangolo di spazi con affiancato un triangolo di asterischi.
*
**
***
****
*****
******
*******
********
*
**
* *
* *
* *
* *
* *
********
Esercizio 7: North-East Obtuse triangle
Suggerimento: tracciare un triangolo di spazi (in cui il numero di spazi è DOPPIO) con affiancato un triangolo di asterischi.
********
*******
******
*****
****
***
**
*
********
* *
* *
* *
* *
* *
**
*
Esercizio 8: South-East Obtuse triangle
Suggerimento: tracciare un triangolo di spazi (in cui il numero di spazi è DOPPIO) con affiancato un triangolo di asterischi.
*
**
***
****
*****
******
*******
********
*
**
* *
* *
* *
* *
* *
********
Esercizio 9: Square
********
********
********
********
********
********
********
********
********
* *
* *
* *
* *
* *
* *
********
Esercizio 10: Rhombus/Rhomboid
Suggerimento: tracciare un triangolo di spazi con affiancato un quadrato.
********
********
********
********
********
********
********
********
********
* *
* *
* *
* *
* *
* *
********
********
********
********
********
********
********
********
********
********
* *
* *
* *
* *
* *
* *
********
Esercizio 11: Diamond
*
***
*****
*******
*********
***********
*************
***************
*************
***********
*********
*******
*****
***
*
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
Esercizio 12: Pyramid
Suggerimento: tracciare un triangolo di spazi con affiancato un numero dispari di asterischi
*
***
*****
*******
*********
***********
*************
***************
*
* *
* *
* *
* *
* *
* *
***************
Esercizio 13: Quadrati con diagonale
********
** *
* * *
* * *
* * *
* * *
* **
********
********
* **
* * *
* * *
* * *
* * *
** *
********
********
** **
* * * *
* ** *
* ** *
* * * *
** **
********
Esercizio 13: Rombo con diagonale
Esercizio 14: Triangoli con mediana
*
**
* *
* *
* **
* * *
** *
********
********
** *
* * *
* **
* *
* *
**
*
********
* **
* * *
** *
* *
* *
**
*
*
**
* *
* *
** *
* * *
* **
********
Esercizio 15: Arrow1 LR
Suggerimento: notare che sono due triangoli ottusangoli sovrapposti
*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*
*
**
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**
*
Esercizio 16: Arrow2 LR
********
*******
******
*****
****
***
**
*
**
***
****
*****
******
*******
********
********
* *
* *
* *
* *
* *
**
*
**
* *
* *
* *
* *
* *
********
Esercizio 17: Arrow1 RL
Suggerimento: notare che sono due triangoli ottusangoli sovrapposti
*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*
*
**
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**
*
Esercizio 18: Arrow2 RL
********
*******
******
*****
****
***
**
*
**
***
****
*****
******
*******
********
********
* **
* *
* *
* *
* *
**
*
**
* *
* *
* *
* *
* *
********
Esercizio 19: HutStar
Suggerimento: piramide sovrapposta a due rettangoli
*
***
*****
*******
*********
***********
*************
***************
*** ***
*** ***
*** ***
Esercizio 20: Spunta
.........*
........*.
.......*..
......*...
.....*....
*...*.....
.*.*......
..*.......
Esercizio 21: Triple square (concentric)
Lato=1
*
Lato=2
**
**
Lato=3
***
* *
***
Lato=4
****
* *
* *
****
Lato=5
*****
* *
* * *
* *
*****
Lato=6
******
* *
* ** *
* ** *
* *
******
Lato=7
*******
* *
* *** *
* * * *
* *** *
* *
*******
Lato=8
********
* *
* **** *
* * * *
* * * *
* **** *
* *
********
Lato=9
*********
* *
* ***** *
* * * *
* * * * *
* * * *
* ***** *
* *
*********
Lato=10
**********
* *
* ****** *
* * * *
* * ** * *
* * ** * *
* * * *
* ****** *
* *
**********
Lato=11
***********
* *
* ******* *
* * * *
* * *** * *
* * * * * *
* * *** * *
* * * *
* ******* *
* *
***********
Lato=12
************
* *
* ******** *
* * * *
* * **** * *
* * * * * *
* * * * * *
* * **** * *
* * * *
* ******** *
* *
************
Esercizio 22: Righe alternate
Suggerimento: si noti che il simbolo da stampare dipende dalla parità di row.
oooooooo
++++++++
oooooooo
++++++++
oooooooo
++++++++
oooooooo
++++++++
Esercizio 23: Caratteri alternati
Suggerimento: si noti che il simbolo da stampare dipende dalla parità della somma row+col.
o+o+o+o+
+o+o+o+o
o+o+o+o+
+o+o+o+o
o+o+o+o+
+o+o+o+o
o+o+o+o+
+o+o+o+o
Esercizio 24: Triangolo
Suggerimento: si noti che il simbolo da stampare dipende da row
col.
|+++++++
o|++++++
oo|+++++
ooo|++++
oooo|+++
ooooo|++
oooooo|+
ooooooo|
Esercizio 25: Stars and alphabet
Suggerimento: in ogni riga è presente un asterisco, seguito da un numero di coppie "C*" direttamente proporzionale al numero di riga.
*
*C*
*C*C*
*C*C*C*
*C*C*C*C*
*C*C*C*C*C*
*C*C*C*C*C*C*
*C*C*C*C*C*C*C*
Esercizio 26: Symmetry
Suggerimento: il primo numero di ogni riga è esattamente il numero di riga. Tale numero deve essere incrementato fino a metà (asse di simmetria) e decrementato dopo la metà.
1
232
34543
4567654
567898765
6789ABA9876
789ABCDCBA987
89ABCDEFEDCBA98
Esercizio 27: Hourglass#1
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8
3 4 5 6 7 8
4 5 6 7 8
5 6 7 8
6 7 8
7 8
8
7 8
6 7 8
5 6 7 8
4 5 6 7 8
3 4 5 6 7 8
2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Esercizio 28: Hourglass#2
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Esercizio 29: Number pattern
1
212
32123
4321234
543212345
65432123456
7654321234567
876543212345678
7654321234567
65432123456
543212345
4321234
32123
212
1
Esercizio 30: Stars & Numbers
1
1*2
1*2*3
1*2*3*4
1*2*3*4*5
1*2*3*4*5*6
1*2*3*4*5*6*7
1*2*3*4*5*6*7*8
1*2*3*4*5*6*7
1*2*3*4*5*6
1*2*3*4*5
1*2*3*4
1*2*3
1*2
1
Esercizio 31: Floyd triangle
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
Esercizio 32: Pascal(Tartaglia) triangle
Suggerimento: per calcolare il valore in una data coordinata, si noti come nella prima colonna (col==0) e nella diagonale (col==row) ci siano tutti 1. Gli altri elementi sono calcolati sommando due numeri della riga precedente (row-1): quello con la stessa colonna e quello con la colonna precedente.
unsigned cb(unsigned row, unsigned col)
{
if (col==0 || col==row)
return 1;
else
return cb(row-1, col) + cb(row-1, col-1);
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
Esercizio 32b: Tartaglia(Pascal) triangle
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
Esercizio 33: Bell triangle
Suggerimento: per calcolare il valore in una data coordinata, si noti come nella prima riga (row==0) ci sia il valore 1, nella prima colonna (col==0) viene copiato l'ultimo valore della riga precedente. Tutte gli altri valori sono calcolati sommando i valori della colonna precedente (col-1): quello con la stessa riga e quello con la riga precedente.
unsigned bellCoeff(unsigned row, unsigned col) {
if (row==0)
return 1;
else if(col==0)
return bellCoeff(row-1, row-1);
else
return bellCoeff(row, col-1) + bellCoeff(row-1, col-1);
}
1
1 2
2 3 5
5 7 10 15
15 20 27 37 52
52 67 87 114 151 203
203 255 322 409 523 674 877
877 1080 1335 1657 2066 2589 3263 4140
Esercizio 34: Staircase#1
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | |
+---+---+---+---+---+---+---+
| | | | | | |
+---+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
| | | | |
+---+---+---+---+
| | | |
+---+---+---+
| | |
+---+---+
| |
+---+
Esercizio 35: Staircase#2
+---+
| |
+---+---+
| | |
+---+---+---+
| | | |
+---+---+---+---+
| | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+---+
| | | | | | |
+---+---+---+---+---+---+---+
| | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
Esercizio 36: Heart
AAAA AAAA
AAAAAA AAAAAA
AAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBB
BBBBBBBBBBBBBB
BBBBBBBBBBBB
BBBBBBBBBB
BBBBBBBB
BBBBBB
BBBB
BB
Esercizio 37: Ladder pattern (ripetizione singola)
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
*****
* *
* *
Esercizio 38: Trapezio rettangolo
*********
* *
* *
* *
* *
* *
* *
****************
Esercizio 39: Trapezio rettangolo
*********
* *
* *
* *
* *
* *
* *
****************
Esercizio 40: Trapezio rettangolo
****************
* *
* *
* *
* *
* *
* *
*********
Esercizio 41: Trapezio rettangolo
****************
* *
* *
* *
* *
* *
* *
*********
Esercizio 42: LatinSquare
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 1
3 4 5 6 7 8 1 2
4 5 6 7 8 1 2 3
5 6 7 8 1 2 3 4
6 7 8 1 2 3 4 5
7 8 1 2 3 4 5 6
8 1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
8 1 2 3 4 5 6 7
7 8 1 2 3 4 5 6
6 7 8 1 2 3 4 5
5 6 7 8 1 2 3 4
4 5 6 7 8 1 2 3
3 4 5 6 7 8 1 2
2 3 4 5 6 7 8 1
Esercizio 43: Letter square
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
Esercizio 4x: cross overlapping
Esercizio 44: cross
a 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 a
9 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 9
8 8 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 8 8
7 7 7 7 6 5 4 3 2 1 2 3 4 5 6 7 7 7 7
6 6 6 6 6 5 4 3 2 1 2 3 4 5 6 6 6 6 6
5 5 5 5 5 5 4 3 2 1 2 3 4 5 5 5 5 5 5
4 4 4 4 4 4 4 3 2 1 2 3 4 4 4 4 4 4 4
3 3 3 3 3 3 3 3 2 1 2 3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 2 1 2 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 3 2 1 2 3 4 4 4 4 4 4 4
5 5 5 5 5 5 4 3 2 1 2 3 4 5 5 5 5 5 5
6 6 6 6 6 5 4 3 2 1 2 3 4 5 6 6 6 6 6
7 7 7 7 6 5 4 3 2 1 2 3 4 5 6 7 7 7 7
8 8 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 8 8
9 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 9
a 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 a
Esercizio 45: squaremin #1
1 1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 2 2
1 2 3 3 3 3 3 3 3 3
1 2 3 4 4 4 4 4 4 4
1 2 3 4 5 5 5 5 5 5
1 2 3 4 5 6 6 6 6 6
1 2 3 4 5 6 7 7 7 7
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 9 9
1 2 3 4 5 6 7 8 9 a
Esercizio 46: squaremax #1
1 2 3 4 5 6 7 8 9 a
2 2 3 4 5 6 7 8 9 a
3 3 3 4 5 6 7 8 9 a
4 4 4 4 5 6 7 8 9 a
5 5 5 5 5 6 7 8 9 a
6 6 6 6 6 6 7 8 9 a
7 7 7 7 7 7 7 8 9 a
8 8 8 8 8 8 8 8 9 a
9 9 9 9 9 9 9 9 9 a
a a a a a a a a a a
Esercizio 47: squaremin #2
1 1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 2 2
1 2 3 3 3 3 3 3 3 3
1 2 3 4 4 4 4 4 4 4
1 2 3 4 5 5 5 5 5 5
1 2 3 4 5 5 5 5 5 5
1 2 3 4 5 5 4 4 4 4
1 2 3 4 5 5 4 3 3 3
1 2 3 4 5 5 4 3 2 2
1 2 3 4 5 5 4 3 2 1
Esercizio 48: squaremax #2
1 2 3 4 5 5 4 3 2 1
2 2 3 4 5 5 4 3 2 1
3 3 3 4 5 5 4 3 2 1
4 4 4 4 5 5 4 3 2 1
5 5 5 5 5 5 4 3 2 1
5 5 5 5 5 5 4 3 2 1
4 4 4 4 4 4 4 3 2 1
3 3 3 3 3 3 3 3 2 1
2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1
Esercizio 49a: diagonali principali
1 2 3 4 5 6 7 8 9 a
2 1 2 3 4 5 6 7 8 9
3 2 1 2 3 4 5 6 7 8
4 3 2 1 2 3 4 5 6 7
5 4 3 2 1 2 3 4 5 6
6 5 4 3 2 1 2 3 4 5
7 6 5 4 3 2 1 2 3 4
8 7 6 5 4 3 2 1 2 3
9 8 7 6 5 4 3 2 1 2
a 9 8 7 6 5 4 3 2 1
Esercizio 49b: diagonali secondarie
1 2 3 4 5 6 7 8 9 a
2 3 4 5 6 7 8 9 a b
3 4 5 6 7 8 9 a b c
4 5 6 7 8 9 a b c d
5 6 7 8 9 a b c d e
6 7 8 9 a b c d e f
7 8 9 a b c d e f10
8 9 a b c d e f1011
9 a b c d e f101112
a b c d e f10111213
Esercizio 50: Aztec pyramid
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 2 2 2 2 2 2 1 1
1 1 2 2 2 2 2 2 1 1
1 1 2 2 3 3 2 2 1 1
1 1 2 2 3 3 2 2 1 1
1 1 2 2 2 2 2 2 1 1
1 1 2 2 2 2 2 2 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
Esercizio 51: Bullseye matrix #1
a a a a a a a a a a a a a a a a a a a
a 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 a
a 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 a
a 9 8 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 a
a 9 8 7 6 6 6 6 6 6 6 6 6 6 6 7 8 9 a
a 9 8 7 6 5 5 5 5 5 5 5 5 5 6 7 8 9 a
a 9 8 7 6 5 4 4 4 4 4 4 4 5 6 7 8 9 a
a 9 8 7 6 5 4 3 3 3 3 3 4 5 6 7 8 9 a
a 9 8 7 6 5 4 3 2 2 2 3 4 5 6 7 8 9 a
a 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 a
a 9 8 7 6 5 4 3 2 2 2 3 4 5 6 7 8 9 a
a 9 8 7 6 5 4 3 3 3 3 3 4 5 6 7 8 9 a
a 9 8 7 6 5 4 4 4 4 4 4 4 5 6 7 8 9 a
a 9 8 7 6 5 5 5 5 5 5 5 5 5 6 7 8 9 a
a 9 8 7 6 6 6 6 6 6 6 6 6 6 6 7 8 9 a
a 9 8 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 a
a 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 a
a 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 a
a a a a a a a a a a a a a a a a a a a
Esercizio 52: Bullseye matrix #2
13121110 f e d c b a b c d e f10111213
121110 f e d c b a 9 a b c d e f101112
1110 f e d c b a 9 8 9 a b c d e f1011
10 f e d c b a 9 8 7 8 9 a b c d e f10
f e d c b a 9 8 7 6 7 8 9 a b c d e f
e d c b a 9 8 7 6 5 6 7 8 9 a b c d e
d c b a 9 8 7 6 5 4 5 6 7 8 9 a b c d
c b a 9 8 7 6 5 4 3 4 5 6 7 8 9 a b c
b a 9 8 7 6 5 4 3 2 3 4 5 6 7 8 9 a b
a 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 a
b a 9 8 7 6 5 4 3 2 3 4 5 6 7 8 9 a b
c b a 9 8 7 6 5 4 3 4 5 6 7 8 9 a b c
d c b a 9 8 7 6 5 4 5 6 7 8 9 a b c d
e d c b a 9 8 7 6 5 6 7 8 9 a b c d e
f e d c b a 9 8 7 6 7 8 9 a b c d e f
10 f e d c b a 9 8 7 8 9 a b c d e f10
1110 f e d c b a 9 8 9 a b c d e f1011
121110 f e d c b a 9 a b c d e f101112
13121110 f e d c b a b c d e f10111213
Esercizio 53: Christmas tree
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
***
***