Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

Нужна помощь в алгоритме   Найти похожие ветки 

 
Need Help   (2006-06-08 07:05) [0]

Задание такое.(срочное)

Определить типизированный файл F, его компоненты числа Integer. Откоректировать этот файл, остовляя из совпадающих чисел одно. Т.е. допустим есть файл, в нем числа 1 2 3 4 3 5 2. Нужно этот файл перезаписать(или создать новый, без разницы) с такими числами - 1 2 3 4 5 , т.е убрать повторяющиеся.
Кто может помочь? Оч. срочно надо.
З.Ы. Все это на Pascal"e


 
tButton ©   (2006-06-08 07:13) [1]

на паскааале?
легко
дай десять минут


 
tButton ©   (2006-06-08 07:23) [2]

объект
type
 tMyList = object
   d: array of integer;
   procedure Add(n: integer);
   function Find(n: integer): integer;
   procedure Reset;
 end;

procedure tMyList.Add(n: integer);
begin
 SetLength(d, high(d)+2)
 d[high(d)]:=n;
end;

function tMyList.Find(n: integer);
var
 i, n: integer;
begin
 result:=-1;
 n:=high(d);
 if n=-1 then exit;
 for i:=0 to n do
   if d[i]=n then begin
     result:=i;
     exit;
   end;
end;

procedure tMyList.Reset;
begin
 SetLength(d, 0);
end;


основной код
var
 f: file of integer;
 l: tMyList;
 i, n: integer;

Assign(f, "myfile.dat");
Reset(f);
l.Reset;
for i:=1 to FileSize(f) do
begin
 Read(f, n);
 if l.Find(n)=-1
   then l.Add(n);
end;
Close(f);
Assign(f, "myfile.dat");
Rewrite(f);
n:=high(l.d);
if n<>-1 then
for i:=0 to n do
Write(f, l.d[i]);
Close(f);


реализация немного дельфийская
+ не совсем помню как там в паскале с динамическими массивами и определением размера файла
но в общих чертах это выглядит так
есть некий массив
в котором хранятся уникальные числа
1. читаем числа из файла
1.1. ищем число в масииве
1.1.1. если число не найдено - добавляем его в массив
2. сохраняем массив в файл


 
Need Help   (2006-06-08 07:54) [3]

Хм....ну допустим у меня есть массив с первоночальными числами(уникальными, как ты сказал) (1 2 3 4 3 2).
1. Прочитали числа из файла (1 2 3 4 3 2)
1.1 Ищем число в массиве..Ищем сначала 1 ? так он ее в любом случае найдет, и тогда ниче не запишеться в файл...мож ты не так понял?

Пример.

Есть файл с числами - 1 2 3 4 3 2 5
Создаем новый(или перезаписываем старый) - 1 2 3 4 5
Т.е. если какие то числа повторяються(как 2 и 3) то, мы записываем вместо 2 повторившихся только одно число.


 
tButton ©   (2006-06-08 07:58) [4]

не понял. т.е. я понял, что ты не понял

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


 
MBo ©   (2006-06-08 08:02) [5]

1. Прочитать файл в массив
2. Отсортировать массив
3. Одним проходом удалить дубликаты
4. Сохранить массив



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
15-1148769285
yurik05
2006-05-28 02:34
2006.06.25
Срочно! Помогите раскодировать?


3-1146638862
G707
2006-05-03 10:47
2006.06.25
Необходимо сформировать следующий запрос


2-1149743388
XTD
2006-06-08 09:09
2006.06.25
Почему программа работает с паузами ?


2-1149345914
НовичОк_
2006-06-03 18:45
2006.06.25
Вставить дату из DateTimePicker


2-1149242511
Leito
2006-06-02 14:01
2006.06.25
Форматирование строк по заданному формату





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский