Oh stimmt!!
Ich dachte, dass int main(int argc, char** argv)  und int main(int argc, char* argv[]) unterschiedlich sind^^ Trozdem habe ich noch Probleme und brauche noch die Hilfe 
 
 
Code: Alles auswählen
#include <stdio.h>
#include <cairoutils.h>
#include <math.h>
float * calcF(int a, int b, float c)		// Parameter a und b als ganze Zahlen, c als reelle Zahl
{
	float * arr = new float[601];			// Mittels "new" wird in C++ Speicher reserviert. Die Zahl zwischen den eckigen Klammern gibt die Anzahl der Elemente an
	int i = 0;								// i = Position
	for (float x = -3; x <= 3; x = x+0.01)	// 601 Werte
	{
		float f = ((float)a / (float)b) * (float)sin(c * x) + (float)sin(x);	// Ergebnis f
		arr[i] = f;							// f auf arr
		i = i + 1;							// i = Position
	}
	return arr;
}
int findGlobalMin (float * array2)		// Funktion gibt ganzzahligen Wert zurueck, arbeitet aber mit float
{
	float min = array2[0];				// Anfang
	int i = 0;							// i = Position
	for (int a = 1; a < 601; a++)
	{
		if (min < array2[a])			// Wenn das zuzeitige min kleiner als array2,
		{
			min = array2[a];			// dann wird min array2 (der Minimumwert)
			i = a;						// und Position array2 (Position des Minimumwertes)
		}
	}
	return i;
}
int findGlobalMax (float * array2)		// Funktion gibt ganzzahligen Wert zurueck, abertet aber mit folat
{
	float max = array2[0];			// Anfang
	int i = 0;							// i = Position
	for (int a = 1; a < 601; a++)
	{
		if (max > array2[a])			// Wenn das zuzeitige max groeszer als arry2,
		{
			max = array2[a];			// dann wird max array2 (der Maximumwert)
			i = a;						// und Position array2	(Position des Maximumwertes)
		}
	}
	return i;
}
int main(int argc, char** argv) 
{
	int a, b;
	float c;
	printf("- Eingabe dreier Parameter\n  ------------------------\n");
	printf("Parameter a (ganze Zahl): ");
	scanf("%d", &a);
	printf("Parameter b (ganze Zahl): ");
	scanf("%d", &b);
	printf("Parameter c: \n");
	scanf("%f", &c);
	float * array2 = calcF(a, b, c);
	printf("a = %d, b = %d, c = %f\n", a ,b, c);
	printf("Minimum bei %d\n", findGlobalMin(array2));
	printf("Maximum bei %d\n", findGlobalMax(array2));
	//open drawing window, window size will be 640x480
	if (cairoUtils_initialize() == CAIROUTILS_RESULT_INITCAIROWINDOW_SUCCESS)
	{
		cairoUtils_clear(0,0,0);	//black blackground
		//Zeichenen der y-Achse
		cairoUtils_drawLine(20,10,20,420,1,0,0,1);		//Linie y-Achse
		cairoUtils_drawLine(20,10,15,20,1,0,0,1);		//Linker Teil Pfeil y-Achse
		cairoUtils_drawLine(20,10,25,20,1,0,0,1);		//Rechter Teil Pfeil y-Achse
		cairoUtils_drawText(2,20,12,"Y",1,0,0,1);		//Beschriftung y-Achse
		//Zeichnen der x-Achse	
		cairoUtils_drawLine(11,410,620,410,0,0,1,1);	//Linie x-Achse
		cairoUtils_drawLine(610,405,620,410,0,0,1,1);	//Oberer Teil Pfeil x-Achse
		cairoUtils_drawLine(610,415,620,410,0,0,1,1);	//Unterer Teil Pfeil x-Achse
		cairoUtils_drawText(600,425,12,"X",0,0,1,1);	//Beschriftung X-Achse
		float max = array2[findGlobalMax(array2)], min = array2[findGlobalMin(array2)];
		float b = max - min;
		for(int i = 1; i < 600; i++)
		{
			int y_wert				=	(((array2[i] - min) * 400) / b);
			int y_wert_naechster	=	(((array2[i + 1] - min) * 400) / b);
			cairoUtils_drawLine(20 + i, 10 + y_wert, 22 + i, 10 + y_wert_naechster, 0, 1, 0, 1);
		}
		//Zecihnen der MAX/MIN-Kästchen
		cairoUtils_drawRect(findGlobalMax(array2)+15, (((array2[findGlobalMax(array2)] - array2[findGlobalMin(array2)]) * 400) / b) + 5,10,10,1,1,0,1);
		cairoUtils_drawRect(findGlobalMin(array2)+15,5, 10,10, 1,1,0, 1);
		fflush(stdin);
		printf("Press ENTER to bestaetigen.\n");
		//wait for user pressing ENTER
		getchar();
		//close drawing window
		cairoUtils_close();
		return 0;
	}
	else
	{
		fprintf(stderr, "Function cairoUtils_initialize returned error.\n");
		return -1;
	}
}
Das ist das ganze Programm und ich hab noch Fragen dazu und zwar das Ganze hier:
Code: Alles auswählen
		float max = array2[findGlobalMax(array2)], min = array2[findGlobalMin(array2)];
		float b = max - min;
		for(int i = 1; i < 600; i++)
		{
			int y_wert				=	(((array2[i] - min) * 400) / b);
			int y_wert_naechster	=	(((array2[i + 1] - min) * 400) / b);
			cairoUtils_drawLine(20 + i, 10 + y_wert, 22 + i, 10 + y_wert_naechster, 0, 1, 0, 1);
		}
habe ich nicht verstanden, wozu max - min muss?
und das hier "float max = array2[findGlobalMax(array2)], min = array2[findGlobalMin(array2)];" habe ich noch nie gesehen was heisst das denn, neben array2 gibt es [] und wiederum gibt es noch (array2) in []??
Code: Alles auswählen
		for(int i = 1; i < 600; i++)
		{
			int y_wert				=	(((array2[i] - min) * 400) / b);
			int y_wert_naechster	=	(((array2[i + 1] - min) * 400) / b);
			cairoUtils_drawLine(20 + i, 10 + y_wert, 22 + i, 10 + y_wert_naechster, 0, 1, 0, 1);
		}
Was versteht man unter dem Ganzen? und wo kommt die 400 her?
 
 
   
   
   
   
 
vielen vielen Danke
Arnont