Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2008, 13:04   #11
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

спс eoln !!! прямо в точку !
vIRTx вне форума Ответить с цитированием
Старый 12.06.2008, 17:43   #12
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

Здравствуйте, помогите исправить немного программу!
Условие задачи осталось прежним, но теперь надо всё сохранить в типизированный файл!!! Всё работает нормально кроме процедуры (sort), находит 3 лучших результата только один раз потом не сортирует((( помогите если вас не затруднит завтра уже сдавать!

Код:
//составте список группы спортсменов,участвовавших в соревнованиях по прыжкам в длину
//для каждого спортсмена укажите номер участника,фамилию,имя,команду,результат
//осуществите поиск информации оспортсменах,занявших первое,второе и третье место
program sp;
uses crt;
type
 sport = record
  num,rez:integer;
  name,fam,komand,nom:string[30];
 end;
 var f:file of sport;
 m: array[1..1000] of sport;
 i,j,k,l,mst:integer;
 u:sport;


procedure vvod;
begin
assign(f,'c:\gt.txt');
reset(f);
seek (f,filesize(f));
 textbackground(7);
 textcolor(4);
 clrscr;
 writeln('              ~~~список группы спортсменов по прыжкам в длину~~~');
 writeln;
 write('Введите количество участников соревнований ->');
 readln(k);
 for i:=1 to k do
 with m[i] do
  begin
       write('Введите имя ->');
       readln(name);
       write('Введите фамилию ->');
       readln(fam);
       write('Введите команду ->');
       readln(komand);
       write('Введите номер ->');
       readln(nom);
       write('Введите результат ->');
       readln(rez);
       writeln;
       writeln;
          write(f,m[i]);
          end;
          close(f);
      end;

procedure sort;
begin
assign(f,'c:\gt.txt');
reset(f);
seek (f,0);
i:=1;
 While not eof(f) do
  begin
    Read(f,m[i]);
     i:=i+1;end;
     k:=i-1;
  For i:=k to 3 do
  For j:=1 to k-1 do
   If m[j].rez<m[j+1].rez then
     begin u:=m[j];m[j]:=m[j+1];
       m[j+1]:=u;
    end;
  close(f);
end;

procedure vivod;
begin
assign(f,'C:\gt.txt');
reset(f);
seek(f,0);
textcolor(4);
clrscr;
writeln('-----------------------------------------------------------------');
writeln('         ИМЯ|','     ФАМИЛИЯ|','     КОМАНДА|','       НОМЕР|','   РЕЗУЛЬТАТ|');
writeln('-----------------------------------------------------------------');
 i:=1;
 while not eof(f) do
 begin
 read(f,m[i]);
 with m[i] do
  begin
  writeln('',name:12,'|',fam:12,'|',komand:12,'|',nom:12,'|','           ',rez,'|');
  i:=i+1;
  end;
  end;
  close(f);
  end;

procedure vivodpoisk;
begin
assign(f,'C:\gt.txt');
reset(f);
writeln;
writeln;
textcolor(0);
writeln('          ~~~~~~3 ЛУЧШИХ РЕЗУЛЬТАТА СПОРТСМЕНОВ~~~~~~');
   writeln('-----------------------------------------------------------------');
   writeln('         ИМЯ|','     ФАМИЛИЯ|','     КОМАНДА|','       НОМЕР|','   РЕЗУЛЬТАТ|');
for i:=1 to 3 do
 with m[i] do
  begin
   writeln('-----------------------------------------------------------------');
   writeln('',name:12,'|',fam:12,'|',komand:12,'|',nom:12,'|','           ',rez,'|');
  end;
  close(f);
end;

begin
vvod;
vivod;
sort;
vivodpoisk;
end.
vIRTx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с поиском Zeraim Microsoft Office Access 2 04.06.2008 05:42
Помогите с поиском EugenZyr Помощь студентам 1 07.05.2008 14:02
Помогите с поиском 1234 БД в Delphi 5 01.04.2008 11:33
Проблемка с поиском Glyuk24 Помощь студентам 6 24.11.2007 22:31
Помогите с поиском Egych PHP 1 09.08.2007 08:00