Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 06.05.2011, 02:09   #1 (permalink)
arefdiman
Новичок
 
Регистрация: 05.05.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вывести страну с наибольшей площадью

Условие задачи:
Дан список стран (во входном файле). Вывести страну с наибольшей площадью в выходной файл, и в ходе программы добавить еще 2 страны с клавиатуры.

Помогите, пожалуйста, в задачи найти ошибку. Почему у меня не правильно находит страну с наибольшей площадью.

Код программы:
Код:
Program a9;
Uses crt;
type geo=record
     gos:string[16];
     pl:string[5];
     st:string[7];
     end;
Var
a:array[0..16] of geo;
inp,out:text;
g:geo;
k:1..5;
LG:1..16;
LS:1..7;
LP:1..5;
i:1..16;
max:string;
begin
clrscr;
assign(inp,'C:\111.in');append(inp);
for k:=1 to 2 do
begin
writeln('vvedite gosydarstvo');
readln(g.gos);
writeln('vvedite plowad');
readln(g.pl);
writeln('vvedite stolicy');
readln(g.st);
LG:=length(g.gos);
if LG<16 then
for i:=LG+1 to 16 do insert(' ',g.gos,i);
LS:=length(g.st);
if LS<7 then
for i:=LS+1 to 7 do insert(' ',g.st,i);
write(inp,g.gos,g.pl,g.st);
end;
close(inp);
reset(inp);
assign(out,'C:\111.out');
rewrite(out);
writeln(out,'strana');
a[i].pl:=g.pl ;
max:=a[1].pl;
repeat
readln(inp,g.gos,g.pl,g.st);
for i:=1 to 9 do
   if max<a[i].pl then
   max:=a[i].pl;
until eof(inp);
writeln(out,'naibolwaya po plowadi',g.gos,max,g.st);
close(inp);
close(out)
end.
Мой входной файл:
Код:
Avstriya        84  Vena
Belgiya         31  Brussel
Velikobritaniya 244 London
Germaniya       357 Berlin
Franciya        544 Paris
Italiya         301 Rim
Greciya         132 Afinu
arefdiman вне форума   Ответить с цитированием

Старый 06.05.2011, 02:09
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Посмотрите в этих темах, возможно там есть нужный ответ

Не могу вывести результат задачи
Вывести на экран результат вычисления выражения
Возможно ли вывести видео с телефона на телевизор?
Вывести результат в Edit

Старый 06.05.2011, 10:52   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от arefdiman Посмотреть сообщение
Помогите, пожалуйста, в задачи найти ошибку. Почему у меня не правильно находит страну с наибольшей площадью.
Да, пришлось-таки повозиться. Ошибок очень много. Ниже идет исправленный код, Вы уж сверку сделайте сами. И учтите: здесь КАЖДОЕ исправление - принципиально, косметикой я не занимался и старался максимально соблюсти исходный стиль программы, хотя... ну да ладно. В таком виде - работает. ВАЖНО! В исходном файле-перечне маркер должен обязательно стоять на начале первой после текста пустой строки, а не в конце последней строки. Проследите!
Код:
Program a9;
Uses crt;
type geo=record
     gos:string[16];
     pl:Word;
     st:string;
     end;
Var
 a:array[1..16] of geo;
 inp,out:text;
 g:geo;
 k:1..5;
 LG:1..16;
 i:1..16;
 max:Word;
begin
 clrscr;
 assign(inp,'C:\111.in');
 append(inp);
 for k:=1 to 2 do
  begin
   writeln('vvedite gosydarstvo');
   readln(g.gos);
   writeln('vvedite plowad');
   readln(g.pl);
   writeln('vvedite stolicy');
   readln(g.st);
   LG:=length(g.gos);
   if LG<16 then
    for i:=LG+1 to 16 do insert(' ',g.gos,i);
   writeln(inp,g.gos,g.pl,' ',g.st);
  end;
 close(inp);
 reset(inp);
 i:=1;
 max:=0;
 repeat
  readln(inp,a[i].gos,a[i].pl,a[i].st);
  if max<a[i].pl then
   begin
    max:=a[i].pl;
    g:=a[i];
   end;
  Inc(i);
 until eof(inp);
 assign(out,'C:\111.out');
 rewrite(out);
 writeln(out,'strana');
 writeln(out,'naibolwaya po plowadi ',g.gos,' ',max,' ',g.st);
 close(inp);
 close(out)
end.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.05.2011, 22:17   #3 (permalink)
arefdiman
Новичок
 
Регистрация: 05.05.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо огромное, за помощь
arefdiman вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.