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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2009, 19:48   #1
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Восклицание Паскаль. Файлы. Помогите с одной задачей

Привет всем!
Вот есть такая задача:
Даны три файла вещественных чисел, в каждом из которых они расположены по убыванию. Создать ещё один файл, куда поместить числа со всех трех файлов, при этом отсортировав их также по убыванию.
Результат вывести на экран.

Кто может, помогите разобраться. 3 день с ней долбаюсь!
RomT24 вне форума Ответить с цитированием
Старый 06.03.2009, 19:58   #2
Valei
 
Регистрация: 06.03.2009
Сообщений: 7
По умолчанию

Эм... а если все три файла последовательно загнать в один массив, а дальше уже массив сортировать и выводить.
Valei вне форума Ответить с цитированием
Старый 06.03.2009, 20:03   #3
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Вопрос

Правильно мыслишь . Сам алгоритм я в принципе и так понял, проблемы непосредственно с реализацией - последовательной записью данныз из файла1 в файл4. из файла2 в файл4 и т.д. Кто нибудь может помочь??
RomT24 вне форума Ответить с цитированием
Старый 06.03.2009, 20:15   #4
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

У тебя файли типизированные, можно решать так:
переписываешь файл1 целиком в файл4, затем берешь по очереди элементы из файла2 находить куда его вставить в файле4, чтобы не нарушалось убывание и точно также с файлом3. Данное решение лучше т.к. тебе не надо заморачиватся на этой сортировки, да и размер файла может быть очень большой и все элементы у тебя в массив не войдут.

А затем уже читаешь файл4 и выводишь на экран его содержимое.
Жми на весы!!!

Последний раз редактировалось Chudo4258; 06.03.2009 в 21:28.
Chudo4258 вне форума Ответить с цитированием
Старый 06.03.2009, 20:20   #5
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
По умолчанию

Код:
Program n1;
var f1,f:text;
     i,j,n,max,t:integer;
     m:array[1..3000] of integer;
Begin
  Assign(f1,'file1.txt');
  Reset(f1);
  i:=0;
  While Not Eof(f1) do
  Begin
    i:=i+1;
    readln(f1,m[i]); //read если числа записаны в одну строчку
  End;
  Close(f1);
  Assign(f1,'file2.txt');
  Reset(f1);
  While not eof(f1) do
  Begin
    i:=i+1;
    Readln(f1,m[i]); 
  End;
  Close(f1);
  Assign(f1,'file3.txt');
  Reset(f1);
  While not eof(f1) do
  Begin
    i:=i+1;
    Readln(f1,m[i]); 
  End;
  Close(f1);
  For j:=1 to i do
  Begin
    For n:=j+1 to i do
    Begin
      max:=j;
      For n:=j to i do 
      If m[n]>m[max] then max:=n;
    End;
    t:=m[j];
    m[j]:=m[max];
    m[max]:=t;
  End;
  Assign(f,'file_out.txt');
  Rewrite(f);
  For j:=1 to i do Writeln(f,m[i]);
  Close(f);
End.
SeRhy вне форума Ответить с цитированием
Старый 07.03.2009, 16:38   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

загонять все данные в массив и затем его сортировать
— в данном случае НЕ РАЦИОНАЛЬНО!!!
Ведь исходные файлы УЖЕ отсортированны!
алгоритм такой - открываем все три файла и получаем три числа (из каждого файла по одному числу - если файл не закончился) - полученные числа сравниваем друг с другом - и пишем в результирующий файл ОДНО из них, наибольшее.
Повторяем пока все файлы не опустеют.
всё - результирующий файл готов и отсортирован в порядке убывания.

____________________________

Добавлено.
Цитата:
три файла вещественных чисел
Речь идёт о типизированных файлах:
Код:
 var f1,f2,f3 : file of real;

Последний раз редактировалось Serge_Bliznykov; 07.03.2009 в 16:40. Причина: Добавлено
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей Паскаль Baby33 Паскаль, Turbo Pascal, PascalABC.NET 4 23.05.2010 11:15
Помогите с задачей на файлы Fatality Помощь студентам 5 12.02.2009 19:03
Помогите с задачей Паскаль Baby33 Паскаль, Turbo Pascal, PascalABC.NET 1 27.01.2009 19:20
Помогите с задачей (файлы) на Delphi Oksana11 Помощь студентам 18 11.01.2008 23:11
помогите с задачей, Паскаль menlo Помощь студентам 2 15.11.2007 18:04