Pascalsches Dreieck(C++)

Aus IT074-Wiki

Wechseln zu: Navigation, Suche

Dies ist erstmal die Funktion, die das Pascal'sche Dreieck berechnet und ausgibt.

Der Parameter "depth" gibt die Anzahl der Stufen an, die berechnet werden sollen. Da die Zahlenfolgen relativ schnell relativ groß werden, ist der Code mit Vorsicht zu genießen, da bisher in der Richtung noch nicht wirkliche Sicherheitsabfragen eingebaut sind.

int pascal(int depth);
#define ARRAY_SIZE_RESULT 20
 
...
 
int pascal(int depth)
{
	if (depth > ARRAY_SIZE_RESULT)
		return 1;
 
	int result[ARRAY_SIZE_RESULT];	
	int result_[ARRAY_SIZE_RESULT];	
	for(int n = 0; n < size; n++)
	{
		result[n] = 0;
		result_[n] = 0;
	}
 
	result[0] = 1;
	for (int k = 0; k < depth ; k++)
	{		
		printf("%d:\t", k + 1);
		for(int n = 0; n < depth + 1; n++)
		{
			result_[n+1] = result[n+1] + result[n];
		}
		for (int n = 0; n < depth +1; n++)
		{
			result[n] = result_[n];
			if (result[n])
				printf("%d ", result[n]);
		}
		printf("\n");
	}
	return 0;
}

Der Aufruf der Funktion erfolgt z.B. in der main() über:

...
pascal( Tiefe );
...

Bemerkungen / TODO:
- Sicherheitsabfragen einbauen
- Speicher für result / result_ variabel reservieren
- Gesamtoptimierung