Arrays, Funktionen, Schleifen und Zufallszahlen - Beispiel

Angabe / Beschreibung

Der Benutzer gibt die Anzahl der zu erstellenden Zufallszahlen ein und das Programm generiert die Zufallszahlen (zw. 1991 und 2018) und speichert diese in ein Array. Danach wird der Mittelwert und die Summe der zufällig generierten Zahlen berechnet.

Lösung

/* Beispiel: Arrays, Funktionen, Schleifen und Zufallszahlen
   Filename: main.cpp
   Author: Lahmer
   Title: Berechnung des Mittelwerts und der Summe von Zufallszahlen
   Description: Der Benutzer gibt die Anzahl der zu erstellenden Zufallszahlen ein und das Programm generiert die Zufallszahlen (zw. 1991 und 2018) und speichert diese in ein Array. Danach wird der Mittelwert und die Summe der zufällig generierten Zahlen berechnet.
   Last Change:16.01.2018
*/
//Header-Dateien
#include <iostream>
#include <stdlib.h> 
#include <time.h>
 
//Namensraum
using namespace std;
 
//Funktionsdeklaration
//Funktion, die das Array mit Zufallswerten befüllt
void erstelleArray(int *feld, int anzahl);    //äquivalent zu void erstelleArray(int feld[]); -> Rückgabewert void (nichts), Parameterübergabe per Pointer (feld) und per Wert (anzahl)
void ausgabe(int feld[], int anzahl);	//Rückgabewert void (nichts), Parameterübergabe per Pointer (feld) und per Wert (anzahl)
int summe(int feld[], int anzahl);	//Rückgabewert int (ganzzahlige Zahl), Parameterübergabe per Pointer (feld) und per Wert (anzahl)
float mittelwert(int summe, int anzahl);	//Rückgabewert float (Gleitkommazahl), Parameterübergabe per Wert (summe, anzahl)
 
 
//Hauptprogramm
int main(int argc, char** argv) {
 
	//Lokale Variablendeklaration
	int anz=0;
 
	cout << "Geben Sie bitte die Anzahl der Werte des Arrays an: ";
	//Einlesen einer ganzzahligen Zahl
	cin >> anz;
 
	//Lokale Variablendeklaration
	int array[anz];		//Deklaration eines Arrays namens array mit der Größe anz
	int sum=0;	
	float mittel=0.0;	//Deklaration der Variable mittel und Initialisierung mit 0.0
 
	//Funktionsaufruf	
	erstelleArray(&array[0],anz);   //äquivalent zu erstelleArray(feld,anzahl);
	ausgabe(&array[0],anz);
	sum=summe(&array[0], anz);
	mittel=mittelwert(sum, anz);
 
	//Ausgabe des Mittelwerts
	cout << endl << "Mittelwert: " << mittel;
 
	return 0;
}
 
//Funktionsdefinition 
//Erzeugt Zufallszahlen im Bereich von 1991-2018, 10-90
void erstelleArray(int *feld, int anzahl) 
{
	srand(time(0)); //time(0) liefert die Sekunden seit 1.1.1970 --> dadurch wird der Zufallsgenerator initialisiert
 
	for(int i=0; i<anzahl; i++)
	{
		feld[i]=rand() % 28 +1991;		//*(feld+i)=rand(0);
	}
 
}
 
//Ausgabe des Arrays
void ausgabe(int feld[], int anzahl)
{
	for(int j=0; j<anzahl; j++)
	{
		cout << feld[j] << endl;   //äquivalent zu *(feld+j);
	}
}
//Berechnet die Summe aller Zahlen im Array und gibt diese zurück
int summe(int feld[], int anzahl) {
 
	int sum=0;
 
	//Berechne die Summe aller Zahlen des Arrays
	for (int i=0; i<anzahl; i++)
	{
		sum=sum+feld[i];
	}
 
	//Rückgabe des Inhalts von sum an das Hauptprogramm
	return sum;
 
}
//Berechnet den Mittelwert aller Zahlen und gibt diesen als Gleitkommazahl zurück
float mittelwert(int summe, int anzahl) 
{
	float mittel=0.0;
	mittel=summe/anzahl;
 
	//Rückgabe des Inhalts von mittel an das Hauptprogramm
	return mittel;
}

Ausgabe

Geben Sie bitte die Anzahl der Werte des Arrays an: 13
2017
2002
1996
1991
2000
2015
2005
1992
2001
1993
2006
1999
2003

Mittelwert: 2001
--------------------------------
Process exited after 3.698 seconds with return value 0
Drücken Sie eine beliebige Taste . . .