Wyciągnięcie indeksu tablicy

0

witam mam programik i w jednym miejscu, gdzie szuka najwyzszej sredniej potrzebuje zeby zwracal numer indeksu tej najwyzszej sredniej i nie wiem jak to zrobic

Function SredniaPrzedmiotu(pomocOceny:tabOceny):real;
  Var i,j:byte;
      suma:array[1..W]of real;
      c,max:real;
  Begin

        For i:=1 to W Do suma[i]:=0;

        For i:=1 to K Do
                For j:=1 to W Do Begin
                        suma[i]:=(suma[i]+pomocOceny[j,i]);
                End;

        For i:=1 To K Do suma[i]:=suma[i]/W;

        c:=suma[1];

        For i:=2 To W Do Begin
                If c> suma[i] Then max:=c Else max:=suma[i];
                c:=max;
        End;

        SredniaPrzedmiotu:=c;
  End; 

pozdrawiam

0

w miejscu (petla) w ktorym stwierdzasz ze srednia jest najwieksza z dotychczasowych, zapisuj w jakiejs zmiennej indeks.
btw jak masz tylko jedna operacje do wykonania w petli to nie musisz jej zamykac w bloku begin..end:

        For i:=1 to K Do
                For j:=1 to W Do
                        suma[i]:=(suma[i]+pomocOceny[j,i]);

i troche za duze wciecia robisz. no ale i tak dobrze ze robisz :)

0

No właśnie, ale gdzie, jest albo indeks 1, albo drugi przy ifie więc nie wiem jak to zrobić

0

powiem tak.. ja nie dokonca ten Twoj kod lapie i nie chce mi sie wgryzac w niego. dodaj jakies komentarze do kodu chociaz.
napisze wiec przyklad:

var tab:array[0..255] of integer;
    i:integer;
    max:integer;
    indeks:integer;
begin
  {...} //tu jakies operacje na tablicy, np przypisanie wartosci
  
//teraz szukasz najwiekszej liczby w tablicy i jednoczesnie zapamietujesz jej index
  max:=tab[0];
  indeks:=0;
  for i:=1 to 255 do
    if tab[i]>max then
      begin
        max:=tab[i];
        index:=i; //TO TUU
      end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1