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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2009, 14:37   #11
Refenement
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 13
По умолчанию

Сорри, но тока теперь я поняла, что я ничего вообще не понимаю в паскале. Удивительно, как я вообще все контрошки сдавала, причём нормально.
Цитата:
с такой вещью как списки знакомы?
Со списками не знакома.
Цитата:
тупо считывать все записи в массив, сортировать его любым методом, и поэлементно записывать в файл
Конечно понимаю тупость своего вопроса, но всё таки - это как?
Цитата:
Это нужно пройти циклом по массиву и в нем применить метод сортировки например пузырька, порой поиском по форуму тут уже были примеры алгоритмов сортировки
И это я конечно тоже не поняла
Refenement вне форума Ответить с цитированием
Старый 23.02.2009, 15:40   #12
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
Конечно понимаю тупость своего вопроса, но всё таки - это как?
Код:
assign(booksfile,'book.dat');
reset(booksfile);
assign(textfile,'book.txt');
rewrite(textfile);
i:=1;
while not eof(booksfile) do 
  begin
  read(booksfile,books[i]);
  i:=i+1;
  end;
n:=i;
Ну вот, ваш же код, вот оно и считывание в массив.
А сортировки, вот тут подробное описание нескольких алгоритмов сортировки, только вам сравнивать надо по books[i].author. Строки сравниваются так же, как числа
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 23.02.2009, 15:57   #13
Refenement
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 13
По умолчанию

Greblin
не могли бы вы просто написать код. Просто я замечаю, что когда вижу код - мне всё ясно и понятно. А так я вообще нифига не понимаю

Ну помогите плиз. У меня вообще ничего не получается. Есть некие наброски на 4
а вот на 2 вообще ничего. НЕ ПОНИМАЮ

Вот ту сделала с одним знакомым, который очень приочень давно изучал Паскаль. Посмотрите может есть каки-то недочёты
Тут 2 и 4 вместе.
Код:
program primer1;
uses crt;
type
  RBook = record
    name_book : string[30];
    avtor     : string[20];
    pages     : word;
    year_pub  : word;
  end;
var
  i,j,n : integer;
  q, q1 : RBook;
  f     : file of RBook;
  Size, MaxPages, MaxI : Integer;
begin
  ClrScr;
  Assign(F, 'Book.dat');
  Reset(F);
  Size := FileSize(F); {определение числа записей в файле}

  {выводим содержимое файла для контроля}
  for i:=1 to Size do begin
    Read(F, q);
    WriteLn(q.name_book, ' ', q.avtor, q.pages:5, q.year_pub:6);
  end;
  WriteLn;

  {сортировка файла по полю "автор"}
  for i := 1 to Size do
    for j := 1 to Size - i do begin
      Seek(F, j-1); {позиционируем на запись}
      Read(F, q);   {читаем ее}
      Read(F, q1);  {и следующую}
      if q.avtor > q1.avtor then begin
        {меняем записи местами}
        Seek(F, j-1);
        Write(F,q1);
        Write(F,q);
      end;
    end;

  Reset(F);
  {выводим содержимое файла для контроля сортировки}
  for i:=1 to Size do begin
    Read(F, q);
    WriteLn(q.name_book, ' ', q.avtor, q.pages:5, q.year_pub:6);
  end;
  WriteLn;

  {ищем книгу с максимальным числом страниц}
  Reset(F);
  MaxPages := 0;
  for i:=1 to Size do begin
    Read(F, q);
    if q.pages > MaxPages then begin
      MaxPages := q.pages;
      MaxI := i-1;
    end;
  end;

  {выводим книгу с максимальным числом страниц}
  Seek(F,MaxI);
  Read(F,q);
  WriteLn(q.name_book, ' ', q.avtor, q.pages:5, q.year_pub:6);

  Close(f);
  ReadLn;
end.
Помогите исправить предыдущий код.
Там надо сделать сохранение результатов в текстовый файл.
Это как?

Последний раз редактировалось Stilet; 19.03.2009 в 08:55.
Refenement вне форума Ответить с цитированием
Старый 19.03.2009, 08:42   #14
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

заводите переменную
Код:
ft:text;
создаете файл
Код:
assign(ft,'1.txt');
rewrite(f);
Записываете все данные
Код:
WriteLn(q.name_book, ' ', q.avtor, q.pages:5, q.year_pub:6);
Закрываете файл
Код:
close(f);
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с файлами и записями Vladislaff Паскаль, Turbo Pascal, PascalABC.NET 0 21.12.2008 11:57
работа с записями Mango Помощь студентам 2 12.10.2008 23:54
Работа с файлами, нужна помощь Johnson Общие вопросы Delphi 5 19.07.2008 23:15
Работа с файлами. Нужна помощь. Corwin88 Помощь студентам 9 14.05.2008 22:37