kris33 Posted September 21, 2010 Report Share Posted September 21, 2010 Witam. Jest to mój pierwszy post na forum więc chciałem się przywitać. Potrzebuje skrypt w którym losujemy 3 największe elementy tablicy tablica[x].poziom gdzie x to liczba do 11. Mam pewien kod ale niestety nie działa. Pomożecie? repeat i:=i+1; if (tablica[i].poziom1>max) and (tablica[i].poziom1<>0) then begin max:=tablica[i].poziom1; pozm:=i; end; until i=12; i:=0; repeat i:=i+1; if (tablica[i].poziom1>max1) and (tablica[i].poziom1<>max) then begin max1:=tablica[i].poziom1; pozm1:=i; end; until i=12; repeat i:=i+1; if (tablica[i].poziom1>max2) and (tablica[i].poziom1<>max) and (tablica[i].poziom1<>max1) then begin max2:=tablica[i].poziom1; pozm2:=i; end; until i=12; writeln('Maksymalna wartoscia jest ',max:0:2,' pozycja ',pozm); writeln('Druga wartoscia jest ',max1:0:2,' pozycja ',pozm1); writeln('Trzecia wartoscia jest ',max2:0:2,' pozycja ',pozm2); Problem polega na tym, że pierwsze i trzecie losowanie nie chodzi a w drugim pokazuje najwyższa liczbę. Link to comment Share on other sites More sharing options...
Spellsinger Posted September 21, 2010 Report Share Posted September 21, 2010 Tak patrząc na szybko: może dlatego że nie zerujesz "i" przed pierwszą i trzecią pętlą? Nie widać też jak deklarujesz zmienne max, max1 i max2, a też lepiej żeby były wyzerowane chyba... Link to comment Share on other sites More sharing options...
jozekkg Posted September 22, 2010 Report Share Posted September 22, 2010 Tak jak pisze Spellsinger. Jeszcze tylko jedna uwaga, czy nie wygodniej w takich przypadkach używać pętli "for.. to.."? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.