libri-javascript-python

Realizziamo un algoritmo che sviluppi il triangolo di Tartaglia in C.

Definizione triangolo di Tartaglia

In matematica il triangolo di Tartaglia è una tabella di numeri naturali disposti a triangolo e dove ciascun elemento è detto coefficiente binomiale perché coincide con i coefficienti delle potenze di un binomio.

Come si ottiene?

Al vertice e lungo i due lati esterni si inserisce il numero 1 mentre ogni elemento interno si ottiene dalla somma dei numeri della riga precedente sopra di esso.

tartaglia

Ad esempio nella terza riga il 2 è ottenuto come somma dei due uno che stanno sopra; o ancora nella quarta riga il 3 è ottenuto sommando gli elementi che stanno sopra 1 e 2. E così via.

Vogliamo realizzare un programma che rappresenti il triangolo di Tartaglia in C.


Procedimento algoritmo triangolo di Tartaglia in C

Dapprima chiediamo quante righe vogliamo visualizzare e lo facciamo controllando, come sempre, che il numero di righe non sia inferiore a 1 o che non superi il limite massimo.

Dopo inizializziamo la prima riga che avrà il vertice uguale a 1 e tutti gli altri elementi saranno a 0. Quindi a(0,0)=1.

Poi calcoliamo le altre righe, quindi utilizziamo due cicli, partendo dalla seconda riga ovvero da i=1.
Il primo elemento di ciascuna riga, in quanto elemento esterno, abbiamo detto che deve essere 1, quindi: a[i][0]=1;

Se ad esempio n=6 in questo modo tutti gli elementi da a(1,0) ad a(5,0) saranno uguali a 1. L’elemento a(0,0) lo abbiamo impostato prima.

Tutti gli altri elementi seguiranno questo calcolo:

a[i][j]=a[i-1][j-1]+a[i-1][j];


Ad esempio se consideriamo la seconda riga avremo:

a(1,0)=1

a(1,1)=a((i-1),(j-1))+a((i-1),(j)) ovvero: a(1,1)=a(0,0)+a(0,1)=1+0=1


Se consideriamo la terza riga avremo:

a(2,0)=1

a(2,1)=a(1,0)+a(1,1)=1+1=2

a(2,2)=a(1,1)+a(1,2)=1+0=1

E così via per le altre righe.

Non ci resta che visualizzarlo con due semplici cicli for.

Allego il listato completo.

#include<stdio.h>
#define N 100

int main(){
	int n,i,j,a[N][N];
		
	do {
		printf("Dammi il numero di righe: ");
		scanf("%d", &n);
	} while ((n>=N) || (n<1));
	
	//inizializzo la prima riga
	a[0][0]=1;
	for(j=1;j<n;j++)
	   a[0][j]=0;
			
	//calcolo le altre righe		
	for(i=1;i<n;i++) {
	  a[i][0]=1;
	  for(j=1;j<n;j++)
	      a[i][j]=a[i-1][j-1]+a[i-1][j];
	}

    //visualizzazione triangolo di tartaglia
	for(i=0;i<n;i++){
		for(j=0;j<=i;j++)
			printf("%d ", a[i][j]);
		printf("\n"); //va a capo
	}
}

Sviluppato in questo modo per n=6 si avrà questo risultato:

triangolo di tartaglia

Sarebbe più gradevole visualizzare il triangolo di Tartaglia inserendo gli spazi vuoti.

Basterà modificare solo la parte della visualizzazione in questo modo:

  //visualizzazione triangolo di tartaglia
   for(i=0;i<n;i++){
      for (j=1; j<(n-i)*4;j++)
      printf(" "); //inserisce gli spazi bianchi
	   for(j=0;j<=i;j++)
		   printf("%8d ", a[i][j]);
           printf("\n");
	}

Ecco un possibile sviluppo del triangolo di Tartaglia in C.

Alcuni link utili

Media per riga e per colonna

Somma elementi diagonale principale di una matrice

Sommare elementi cornice esterna

Somma di due matrici

Sommare dei numeri di una matrice

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Insertion Sort in C