WindowTitle "Demo: Zweithäufigstes und Zweitwenigstes Element ermitteln"
font 2:randomize:cls rnd(8^8)
' Lineare Häufigkeitsverteilung in k% Klassen im Bereich low% bis high%
var k%=20 : var low%=10 : var high%=99
declare h%[k%-1]
WhileLoop 0,k%-1
h%[&Loop]=rnd(high%-low%+1) + low%
print &Loop,h%[&Loop]
Endwhile
' Häufigstes Element
declare max%,maxptr%
max%=0
WhileLoop 0,k%-1
if h%[&Loop]>max%
maxptr%=&Loop
max%=h%[&Loop]
endif
Endwhile
print
print maxptr%,max%,h%[maxptr%]," ",
' Zweithäufigstes Element
declare max2%,maxptr2%
max2%=0
WhileLoop 0,k%-1
if &Loop<>maxptr%
if h%[&Loop]>max2%
maxptr2%=&Loop
max2%=h%[&Loop]
endif
endif
Endwhile
print maxptr2%,max2%,h%[maxptr2%]," ",
' Wenigstes Element
declare min%,minptr%
min%=99999
WhileLoop 0,k%-1
if h%[&Loop]<min%
minptr%=&Loop
min%=h%[&Loop]
endif
Endwhile
print minptr%,min%,h%[minptr%]," ",
' Zweitwenigstes Element
declare min2%,minptr2%
min2%=99999
WhileLoop 0,k%-1
if &Loop<>minptr%
if h%[&Loop]<min2%
minptr2%=&Loop
min2%=h%[&Loop]
endif
endif
Endwhile
print minptr2%,min2%,h%[minptr2%]
locate maxptr%+1,10:print "< Maximum"
locate maxptr2%+1,10:print "< Next-to-Max"
locate minptr%+1,10:print "< Minimum"
locate minptr2%+1,10:print "< Next-to-Min"
Waitinput