Das gewichtete Produkt und harmonische Mittel eines 1D arrays

toruko61

Grünschnabel
Hallo zusammen,

ich bin ein c++ (etwas erfahrung mit vba) anfänger und habe bisher nicht mit arrays gearbeitet, weiß daher nicht genau wie ich die einzelnen werte verwenden kann.

daher fällt es mir auch schwer geeignete for-schleifen für das gewichtete produkt und das harmonische mittel für ein array bestehend aus 10 werten zu erstellen.

könntet ihr mir daher eine kleine hilfestellung geben, wie ich für

n=10

aprod = a1/ 1 x a2/2 x a3/3 x ... x an/n und

aharm = n/ 1/a1 + 1/a2 + 1/a3 + ... +1/an


geeignete schleifen erstelle?


ich bedanke mich schon mal für eure antworten.
 
Hallo toruko61

Grundsätzlich ist der Umgang mit Arrays nicht schwer. Ein Array hat indices die bei 0 starten und bei <länge des Arrays> - 1 aufhören. Das heisst wenn du ein Array mit 10 Elementen hast gibt es indices von 0 bis 9. Du musst also eine for-Schleife machen, die bei 0 startet und bei 9 aufhört. Dazu hast du 2 Möglichkeiten (eine mit i = 0, i < 10 und die andere mit i = 0, i <= 9).

Viele Grüsse
Cromon
 
Hi,

ein kleines konkretes Beispiel für ein Array "int arr[10];" :
C++:
int aprod = 1;
int i;
for(i = 0; i < 10; i++)
{
    aprod = aprod * arr[i];
}
 
vielen dank für eure antworten.
wäre das so in ordnung?

Code:
 # include <iostream >
	using namespace std ;
	int main (){
		double a [10] = {21.4 ,53.27 ,51.75 ,65.14 ,29.39 ,
				25.99 ,15.84 ,89.1 ,37.0 ,14.14};
		double prod , harm ;
		int i;
		prod = 1
		
	for (i = 0; i<10; i++)
		prod = prod x a[i]/i
 


	cout << " Gewichtetes   Produkt : " << prod << endl ;
	cout << " Harmonisches   Mittel : " << harm << endl ;
	return 0;
 	}
 
Zuletzt bearbeitet:
Hallo toruko61

Bei deinem Code gibt es drei Sachen:
1. Du hast Syntaxfehler (nach prod = 1 das ; vergessen zum Beispiel)
2. Formatierung ist wild zusammen geworfen
3. Du berechnest das harmonische Mittel nicht

Die ersten 2 Punkte sehen behoben so aus:
C++:
#include <iostream>

int main() {
	double a[10] = { 21.4, 53.27, 51.75, 65.14, 29.39,
		25.99, 15.84, 89.1, 37.0, 14.14 };

	double prod, harm;
	int i;
	prod = 1;

	for (i = 0; i < 10; i++) {
		prod = prod * a[i] / i;
	}

	std::cout << " Gewichtetes   Produkt : " << prod << std::endl;
	std::cout << " Harmonisches   Mittel : " << harm << std::endl;

	return 0;
}
 
Zurück