#define LED_BLAU 8
#define TASTER 11
#define MAX_ARRAY 100
int Array[MAX_ARRAY];
int Flankenmerker;
int Intervall;
unsigned long Time;
int Zaehler;
long randomnumber;
int gerade;
int ungerade;
int Toggle;
void setup() {
Serial.begin(9600);
pinMode(LED_BLAU, OUTPUT);
pinMode(TASTER, INPUT_PULLUP);
Flankenmerker = 0;
Intervall = 3000;
Zaehler = 0;
Time = millis();
}
void loop() {
// randomnumber = random(1,100);
if (millis() - Time >= Intervall) {
Toggle = !Toggle;
digitalWrite(LED_BLAU, Toggle);
for (int i = 0; i < MAX_ARRAY; i++) {
Array[i] = random(1, 100);
}
Time = millis();
}
if (digitalRead(TASTER) == LOW && Flankenmerker == 0) {
geradeungerade();
Serial.println("Auswertung:");
Serial.println("-----------");
Serial.print("Maximum: ");
Serial.print(maximum());
Serial.print(" ;");
Serial.print("Minimum: ");
Serial.println(minimum());
Serial.print("Anz.gerade: ");
Serial.print(gerade);
Serial.print(" ;");
Serial.print("Anz.ungerade: ");
Serial.println(ungerade);
Haeufigkeit();
Flankenmerker = 1;
delay(20);
}
if (digitalRead(TASTER) == HIGH)
Flankenmerker = 0;
delay(20);
}
int maximum() {
int maximum = 0;
for (int i = 0; i < MAX_ARRAY; i++) {
if (Array[i] > maximum) {
maximum = Array[i];
}
}
return maximum;
}
int minimum() {
int minimum = 0;
for (int i = 0; i > MAX_ARRAY; i++) {
if (Array[i] < minimum) {
minimum = Array[i];
}
}
return minimum;
}
void geradeungerade() {
int geradeerg = 0;
int ungeradeerg = 0;
for (int i = 0; i < MAX_ARRAY; i++) {
if (Array[i] % 2 == 0) {
geradeerg++;
} else {
ungeradeerg++;
}
}
ungerade = ungeradeerg;
gerade = geradeerg;
}
void Haeufigkeit() {
int Haeufigkeit[MAX_ARRAY];
int maxval = 0;
for (int i = 0; i < MAX_ARRAY; i++) {
Haeufigkeit[Array[i]]++;
}
for (int i = 0; i < MAX_ARRAY; i++) {
if (Haeufigkeit[i] > maxval)
maxval = Haeufigkeit[i];
}
for (int i = maxval; i >= 0; i--) {
Serial.print("Anzahl: ");
Serial.print(i);
Serial.print("; Zahl: ");
for (int j = 0; j < MAX_ARRAY; j++) {
if (Haeufigkeit[j] == i)
{
Serial.print(j);
Serial.print(",");
}
}
Serial.println();
}
}