Addition bei C/ C++ programmieren?
Kann mir jemand bitte sagen wie ich bei dieser Aufgabe vorgehen soll? bin neu bei C.

5 Antworten
An scheinend sollst du jede Addition in einen pthread auslagern, also quasie 100 pthreads initialisieren und jeden 2 zahlen addieren lassen.
Das ist schon eine nicht sehr triviale Aufgabe, vor allem für einen Anfänger.
pthread_t threads[100];
int i;
int n;
for(n = 0; n<100; n++){
pthread_create(&threads[n], NULL, addieren, (void*)n;
}for(i = 0; i < 100; i ++){
pthread_join(threads[i], NULL);
}
So könnte man zum Beispiel 100 pthreads initialisieren und ihnen die Funktion addieren sowie den Parameter n übergeben.
Hoffe diese kleine Codebeispiel hilft dir schon weiter, an sonsten vielleicht mal in die man-page von pthread_create schauen, da steht noch besser worauf man achten muss und wie das genau funktioniert.
Die Aufgabe ist unklar formuliert, weil es sich um drei Arrays handelt.
Ungeachtet dessen könnte jedes Array unabhängig von den anderen aufgebaut werden, also z.B. in drei Threads.
for( ... )
{
A[i] = i;
}
for( ... )
{
B[i] = size - i;
}
for( ... )
{
// C[i] = i + size - i
C[i] = size;
}
Ich erkenne drei Arrays A,B,C. Ausserdem sind alle Elemente von C[] identisch. Die Aufgabe ist kompletter Schwachsinn.
ein Pthread oder so was macht C[i] = C[i] + B[i] und der andere C[i] = C[i] + B[i]
die Aufgabe ist seltsam
die 2 forschleifen in pthread auslagern .
weist du wie das geht ? also wie ich es formulieren kann ?
Ein Thread könnte die Addition der Elemente 0..size/2-1 und ein anderer die Addition der Elemente size/2..size-1 übernehmen.
ich weiß leider noch nicht wie ich das Programm zum laufen bringen soll
Dazu habe ich mich speziell in C zuwenig mit Threads beschäftigt.
Ist für mich nicht unklar formuliert. A[] und B[] werden komponentenweise addiert. Und das sind zwei. In C[] wird komponentenweise das Ergebnis gespeichert.