Хыиуду » 09 апр 2008, 11:09
Ой, ужас... извините...
Во-первых, зачем вам naselenie: real? Я думаю, для задачи не принципиально наличие в городе инвалидов и сиамских близнецов. Давайте все-таки longint. Все равно города с населением больше двух миллиардов человек нету.
Во-вторых, зачем вам весь код, связанный с нахождением МИНИМУМА, если в программе спрашивается только МАКСИМУМ?
В-третьих, нахождение максимума в массиве есть в разделе "Алгоритмы".
В-четвертых, я думаю, ваш преподаватель подразумевал, что вы должны считать все города в один массив. Ну да ладно, не хотите - как хотите. Можно и без этого.
Код: Выделить всё
{Здесь описание типа city, описание файла}
var max,current: city;
begin
max.ploshad:=1;
max.naselenie:=0;
{Здесь открытие файла на чтение}
repeat
readln(f, current.name);
readln(f, current.ploshad);
readln(f, current.naselenie);
if current.naselenie/current.ploshad>max.naselenie/max.ploshad then max:=current;
until eof(f);
writeln(max.name);
Ой, ужас... извините...
Во-первых, зачем вам naselenie: real? Я думаю, для задачи не принципиально наличие в городе инвалидов и сиамских близнецов. Давайте все-таки longint. Все равно города с населением больше двух миллиардов человек нету.
Во-вторых, зачем вам весь код, связанный с нахождением МИНИМУМА, если в программе спрашивается только МАКСИМУМ?
В-третьих, нахождение максимума в массиве есть в разделе "Алгоритмы".
В-четвертых, я думаю, ваш преподаватель подразумевал, что вы должны считать все города в один массив. Ну да ладно, не хотите - как хотите. Можно и без этого.
[code]
{Здесь описание типа city, описание файла}
var max,current: city;
begin
max.ploshad:=1;
max.naselenie:=0;
{Здесь открытие файла на чтение}
repeat
readln(f, current.name);
readln(f, current.ploshad);
readln(f, current.naselenie);
if current.naselenie/current.ploshad>max.naselenie/max.ploshad then max:=current;
until eof(f);
writeln(max.name);
[/code]