Var f:file of char; i,j,counter,FileLen:integer; s:string; val:char; ar:array[1..n] of integer; coms:array[1..n] of integer; begin for i:=1 to n do coms[i]:=i; assign(f,'input.csv'); reset(f);i:=1; //столбец матрицы counter:=1; //количество прочитанных элементов FileLen:=filesize(f); //количество элементов в файле (включая разделители) read(f,val); //на случай, если первая строка пуста repeat while (ord(val)<>10) and (ord(val)<>13) do //каждая строка заканчивается символами 10 и 13, а элементы разделяются ; begin if (val<>';') and (ord(val)<>10) and (ord(val)<>13) then begin ar[i]+=strtoint(val); //вводим значение из ячейки в переменную суммы read(f,val); //cчитываем следующее значение inc(counter); //увеличиваем количество прочитанных end else begin read(f,val); //пропускаем разделитель inc(counter); end; end; if (ord(val)=10) and (counter<FileLen) then //в конце каждой строки стоят символы с кодами 10 и 13, пропускаем их begin read(f,val); inc(counter); end; if (ord(val)=13) and (counter<FileLen) then //когда дошли до конца строки begin inc(i); read(f,val); //читаем с новой строки inc(counter); end; until(counter=FileLen); //читаем пока количество элементов в файле не сравняется с количеством прочитанных close(f); for i:=1 to n-1 do //когда лень писать быструю сортировку for j:=i+1 to n do if ar[i]<ar[j] then begin counter:=ar[i]; ar[i]:=ar[j]; ar[j]:=counter; counter:=coms[i]; coms[i]:=coms[j]; coms[j]:=counter; end; for i:=1 to n do writeln(i,'st place-',coms[i],' command -',ar[i],' points'); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Вкоробке лежат 31(8) шар.из них 17(8) желтые, а 12(8) красные. докажите, что ошибки нет.