хз что что не правильно((в 56 строке там стоит Val.программу не устраивает.единственный мой вариант что там должен стоять другой оператор но хз какой.он должен переводить строку в число.
program Project1;
var
kg{количество городов},maxi{индекс максимума},max{максимум},z,
fl1,fl2{флажки}:integer;
i,j,k,m,n1,n2:integer;{разные счетчики}
nazv: array [0..13] of string;{исходный массив городов и их населения}
tabl1,tabl2: array [0..13] of string; {окончательные масивы}
massfl: array [0..13] of integer; {массив флажков, показывают записал уже
этот город или нет}
begin
{тут пишу своей графикой кто выполнил и т.д., }
{тут опять вывожу графикой или как хочешь}
writeln ('Vvedite koli4estvo gorodov');
fl1:=0;
repeat
if fl1=1 then writeln ('Nevernoe 4islo, Vvedite koli4estvo gorodov');
Readln(Kg);
fl1:=1;
until (Kg>=2) and (kg<=14);
{тут ввдится исходный массив, }
For i:=0 to kg-1 do
begin
Writeln ('VVedite nazvanie ',i+1,'-go goroda и ego naselenie');
readln (nazv[i]);
If i=kg-1 then writeln ('&');
end;
n1:=-1;
n2:=-1;
{тут в исходном массиве поочередно ищется максимум и распределяются города
по двум другим массивам, которые ты выведешь в соотв две таблицы}
For i:=0 to kg-1 do
begin
max:=0;
for j:=0 to kg-1 do
begin
if massfl[j]=0 then {смотрю только те строки, которые еще не}
begin {распределили по таблицам }
{находим пробел, отделяющий количество людей от названия города}
fl2:=0;
for k:=Length(nazv[j]) downto 0 do
if fl2=0 then
if Copy(nazv[j],k,1)=' ' then begin {если нашел пробел,}
m:=k; { то искать прекращает}
fl2:=1;
end;
z:=Val(Copy(nazv[j],m+1,Length(nazv[j])-m));
if z>max then begin
max:=z;
maxi:=j;
end;
end;
end;
massfl[maxi]:=1;
If max > 100000 then {тут формируются массивы}
begin {В одном больше 100000,}
N1:=N1+1; {в другом меньше}
tabl1[n1]:=nazv[maxi];
end
else
begin
N2:=N2+1;
tabl2[n2]:=nazv[maxi];
end;
end;
{теперь просто вывести надо всё}
For i:=0 to n1 do
writeln (tabl1[i]);
For i:=0 to n2 do
writeln (tabl2[i]);
readln;
end.