Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Seltenste Zahl ausgeben (Felder) (https://www.delphipraxis.net/111202-seltenste-zahl-ausgeben-felder.html)

Avicenna 31. Mär 2008 15:14


Seltenste Zahl ausgeben (Felder)
 
Hallo,
ich habe ein Programm mit einem Eingabefeld (+Button) und einem Ausgabelabel. In das Eingabefeld gibt man eine Zahl zwischen 0 und 15 ein, diese Zahl wird gespeichert und das Programm merkt sich, welche Zahl wie oft eingegeben wurde (z. B. 3x5, 2x6, 0x7). Das wurde mit einem Feld (Name: noten) realisiert.

Nun soll ausgegeben werden, welche Zahl am seltensten eingegeben wurde.

Die Grundidee der Umsetzung ist mir klar: Es wird eine Schleife von 0 bis 15 gestartet, wobei für jede Zahl überprüft wird, ob ihre Anzahl kleiner ist als die seltenste (Variable: seltenste) Anzahl. Ich weiß aber nicht, welchen Startwert ich nehmen soll.
So sieht es bisher aus:

Delphi-Quellcode:
 begin
   seltenste:=0;
   for i:=0 to 15 do
       if noten[i]<seltenste then
       seltenste:=i;
   result:=seltenste;
 end;
Der Startwert 0 ist selbstverständlich unsinnig, da er nie unterboten wird. Auch eine andere Zahl ist unsinnig, denn seltenste bekommt nach dem ersten Durchlauf den Wert 0 zugewiesen (es sei denn die Zahl 0 wurde schon eingegeben). Es wird nämlich nach jedem Buttonklick die genannte Methode aufgerufen.

Wie ich die Aufgabe lösen?

Vielen Dank,
Avicenna

SirThornberry 31. Mär 2008 15:17

Re: Seltenste Zahl ausgeben (Felder)
 
Delphi-Quellcode:
begin
   seltenste:=noten[0];
   for i:=1 to 15 do
     if noten[i]<seltenste then
         seltenste:=i;
   result:=seltenste;
end;

shmia 31. Mär 2008 15:21

Re: Seltenste Zahl ausgeben (Felder)
 
Du brauchst zwei Variablen: minimum und min_Index.
Delphi-Quellcode:
var
  minimum, min_index : integer;
begin
  minimum := noten[0];
  min_Index := 0;
  for i := 1 to 15 do
  begin
    if minimum > noten[i] then
    begin
      minimum := noten[i];
      min_index := i;
    end;
  end;
Du kannst übrigens auch zusätzlich das Maximum in dieser Schleife ermitteln.

PS: HA ! Erwischt. Sir Thornberry hat einem Fehler gemacht ;-)

Avicenna 31. Mär 2008 15:48

Re: Seltenste Zahl ausgeben (Felder)
 
Vielen Dank euch beiden;

so wie shmia es geschrieben hat klappt es :)

Viele Grüße,
Avicenna


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz