Сортировка строк паскаль
Задание:
Для программы на сортировку строк напишите принципиальный алгоритм (последовательность блоков), а также опишите, что означает каждая переменная
Не могу найти ошибку, при запуске данного кода сортировка только по первой и второй строке, а нужно чтобы сортировка была по всем строкам в файле input.txt. В файле следующие данные
Петров;1997;4
Абрамов;1996;5
Иванов;1994;3
Богданов;1997;5
И что значит "напишите принципиальный алгоритм (последовательность блоков)" не понимаю
Код:
var
  temp_s, s1: string; //объявление строковых переменных
  s: array[1..255]of string; //array - объявление массива; string - строковая переменная
  ball, year: array[1..255]of integer; //integer - используется для определения целых чисел
  i, j, n, pos1, kod, k: integer; //объявление целых чисел
  input, output: text;//input, output - системные файлы для связи с внешними устройствами ввода/вывода текстовые файлы
begin// начало блока
  assign(input, 'input.txt'); //ассоциация переменной input с файлом input.txt
  reset(input); //открытие файла связанного с переменной input на чтение
  i := 1;
  while not eof(input) do //пока не конец файла input
  begin//начало блока
    readln(input, temp_s); //чтение переменной input в строке-накопителе
    pos1 := pos(';', temp_s); //позиция первого пробела
    s[i] := copy(temp_s, 1, pos1 - 1); //копирует из строки temp_s начиная с первого символа символ номер один
    delete(temp_s, 1, pos1); //удаление символов из строки temp_s начиная с первого символа символ номер один
    pos1 := pos(';', temp_s); //позиция второго пробела
    s1 := copy(temp_s, 1, pos1 - 1); //копируем подстроку до второго пробела
    val(s1, year[i], kod); //Преобразует строку в число
    delete(temp_s, 1, pos1); //удаляем все до второго пробела включительно
    s1 := temp_s;
    val(s1, ball[i], kod); //Преобразует строку в число
    writeln(s[i], ';', year[i], ';', ball[i]); //writeln - перенос на новую строку
    i := i + 1;
  end; //конец блока
  n := i - 1;
  writeln('---всего ', n, ' записей---');
  //сортировка
  for i := 1 to (n - 1) do
    for j := 1 to (n - i) do
      if s[j] > s[j + 1] then;
  begin//начало блока
    temp_s := s[j];
    s[j] := s[j + 1];
    s[j + 1] := temp_s;
    k := year[j];
    year[j] := year[j + 1];
    year[j + 1] := k;
    k := ball[j];
    ball[j] := ball[j + 1];
    ball[j + 1] := k;
  end; //конец блока
  assign(output, 'output.txt'); // ассоциация переменной output с файлом output.txt
  rewrite(output); // открытие файла, связанного с переменной output, на запись
  assign(output, 'output.txt'); //вывод в output.txt
  writeln('---После сортировки---');
  for i := 1 to n do
    writeln(s[i], ' ', year[i], ' ', ball[i]);
  assign(output, 'output.csv'); //вывод в CSV-файл
  rewrite(output); //открытие файла output на запись
  for i := 1 to n do //чтение элементов от 1 до n
    writeln(output, s[i], ';', year[i], ';', ball[i]);
  close(output); //закрытие файла output
  close(input); // закрытие файла связанного с input
end. //конец блока

