uses Graph, CRT; const FontNames: string=('LCOM'); Tab1 = 50; Tab2 = 220; var Y : Integer; S1, S2, S3: string; d, r, Err, Y1, dY1, Y2, dY2, i, k, str_sc1, str_sc2, j: Integer; code,f,noc : Integer; population:array[1..512] of longint; z : LongInt; z1,z2:string; Cities : Array [0..512] of char; city, pop:array[1..30] of string; city_num : string; error : Integer; ch : char; spaces_sc: Integer; Label L1, L2; begin L1:clrscr; clrscr; textcolor(blue); gotoxy(10,5); writeln('Вашему вниманию предоставляется программа,'); gotoxy(25,6); writeln('которая сортирует население,'); gotoxy(25,7); writeln('вводимых городов,более 100000 и менее'); gotoxy(25,8); writeln('и располагает их в двух таблицах.'); gotoxy(40,15); writeln('Программу составила студентка' ); gotoxy(40, 16); writeln('МГУПС группы ЭИЭ-111'); gotoxy(40,17); writeln('Хворостяная Е.Ю.'); readkey; clrscr; repeat Writeln ('Введите кол-во городов, 1..14:'); {$I-} Readln(noc); error := IOResult; {$I+} if (noc <=0) or (noc>14) or (error<>0) then writeln ('Wrong cities number!'); until (noc>0) and (noc <=14) and (error = 0); writeln; Writeln('Введите названия городов и кол-во проживающих людей:'); spaces_sc := 0; i := 0; repeat Cities[i] := ReadKey; write(Cities[i]); if (Cities[i] = ' ') then spaces_sc:= spaces_sc+1; i := i +1; until (spaces_sc = noc*2); Cities[i-1] := '&'; clrscr; begin writeln; j := 0; repeat Write(Cities[j]); j := j + 1; until (Cities[j] = '&') or (j = 511); writeln(Cities[j]); writeln('Push ENTER for to continiu'); readln; end; InitGraph(d, r, 'D:\Д e \TurboPascal7\BIN'); {инициируем графику} Err:=GraphResult; if Err<>grOk then begin WriteLn(GraphErrorMsg(Err)); ReadLn; end else begin clrscr; rectangle(0, 0, getmaxX,getMaxY div 2 - 20); Line(Tab1, 0, Tab1, getmaxy div 2 - 20); Line(0, 0 + 12, getmaxX, 0 + 12); Line(Tab2, 0, Tab2, getmaxy div 2 - 20); rectangle(0, GetMaxY div 2 + 20, GetMaxX, GetMaxY); Line(Tab1, GetMaxY div 2 + 20, Tab1, GetMaxY); Line(0, GetMaxY div 2 + 20 + 12, getmaxX, GetMaxY div 2 + 20 + 12); Line(Tab2, GetMaxY div 2 + 20, Tab2,getmaxY); SetTextStyle(2,0,4); {стиль, размер текста} Y1:=3; {определяем высоту 1 заголовка} dY1:= 15; Y2:=GetMaxY div 2 + 23; {2 заголовок} dY2:= 15; MoveTo((Tab1-TextWidth('N'))div 2, Y1); OutText('N'); MoveTo((Tab2 - (Tab1-TextWidth('City')))div 2, Y1); OutText('City'); MoveTo(Tab2+3, Y1); OutText('Population'); inc (Y1, dY1); MoveTo((Tab1-TextWidth('N'))div 2, Y2); OutText('N'); MoveTo((Tab2 - (Tab1-TextWidth('City')))div 2, Y2); OutText('City'); MoveTo(Tab2+3, Y2); OutText('Population'); inc (Y2, dY2); i := 0; str_sc1 := 1; str_sc2 := 1; end; {распределение названий городов отосительно их населения} begin for j:=1 to noc do begin k := 1; city[j][0] := chr(255); fillchar(city[j], sizeof(city[j]), ' '); while Cities[i] <> ' ' do begin city[j][k] := Cities[i]; k := k + 1; i := i + 1; end; city[j][0] := chr(k-1); i := i + 1; k := 1; pop[j][0] := chr(255); fillchar(pop[j], sizeof(pop[j]), ' '); while (Cities[i] <> ' ') and (Cities[i] <> '&') do begin pop[j][k] := Cities[i]; k := k + 1; i := i + 1; end; pop[j][0]:= chr(k-1); val(pop[j], population[j], code); if Cities[i] = '&' then break else i := i + 1; end; begin for j:=1 to noc do {сортировка от большего к меньшему} begin repeat F:=0; for i:=1 to Noc-1 do begin if population[i]