function sakk(fajlnev, n) # a versenyzok neveit tartalmazo tomb nevek = {'A. Grischuk' 'V. Anand' 'N. Short' 'M. Adams' 'A. Morozevich' 'L. van Wely' 'L. Bruzon' 'V. Kramnik' 'V. Topalov' 'R. Ponomariov' 'J. Polgar' 'P. Svidler' 'I. Sokolov','P. Leko'}; # beolvasas f = fopen(fajlnev); fgets(f); k = 0; i = 0; while 1 s = fgets(f); if s == -1; break; end if s(1) == '=' k++; else i++; fordulo(i) = k; [t s] = strtok(s, '-:'); vilagos(i) = find(strcmp(nevek, t)); [t s] = strtok(s, '-:'); sotet(i) = find(strcmp(nevek, t)); [t s] = strtok(s, '-:'); vilagospont(i) = str2num(t); [t s] = strtok(s, '-:'); sotetpont(i) = str2num(t); end end fclose(f); # pontok osszeadasa m = length(nevek); pont = zeros(m, 1); for i = find(fordulo <= n) v = vilagos(i); s = sotet(i); pont(v) += vilagospont(i); pont(s) += sotetpont(i); end # allas kiirasa [pont2 k] = sort(pont, 'descend'); for i = 1 : m j = k(i); p = find(pont2 == pont(j)); if length(p) == 1 fprintf('%5d. %-13s %2.1f\n', p(1), nevek{j}, pont(j)); else fprintf('%2d-%2d. %-13s %2.1f\n', p(1), p(end), nevek{j}, pont(j)); end end end