Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 25.03.2015
Сообщений: 4
1

Дан текстовый файл f из целых чисел. Переписать этот файл в g без повторных вхождений цифр

26.03.2015, 00:05. Показов 2596. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите написать код програмки. ну или хотя бы алгоритм проверки элемента. Я не могу понять как каждый раз пробегаться по второму файлу в поисках числа
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2015, 00:05
Ответы с готовыми решениями:

Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и каждое из чисел вознести в квадрат.
Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и...

ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и КАЖДЫЙ С ЧИСЕЛ вознести В КУБ.
ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и...

Создать и заполнить текстовый файл f получить файл g образованнный из файла f c исключением повторных вхождений одного и того же слова
Создать и заполнить текстовый файл f получить файл g образованнный из файла f c исключением...

Дан текстовый файл. Найти сумму всех чисел, входящих в этот файл.
Дан текстовый файл. Найти сумму всех чисел, входящих в этот файл. uses crt; var f:text;...

24
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
26.03.2015, 11:45 21
Author24 — интернет-сервис помощи студентам
так я изменил генерацию файла что бы был дубляж
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static void GenFileInt()
        {
            using (var sw = File.CreateText("int.txt"))
            {
                for (int n = 0; n < 2; n++)
                {
                    for (Int16 i = Int16.MaxValue; i > Int16.MinValue; i--)
                    {
                        sw.WriteLine(i);
                    }
                }
            }
        }
вот моё решение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        static void Main(string[] args)
        {
            bool[] b = new bool[65536];
            using (StreamWriter sw = File.CreateText("int2.txt"))
            {
                using (StreamReader sr = File.OpenText("int.txt"))
                {
                    string line = "";
                    while ((line = sr.ReadLine()) != null)
                    {
                        Int16 tmp = Int16.Parse(line);
                        int index = tmp+Int16.MaxValue;
                        if (!b[index])
                        {
                            b[index] = true;
                            sw.WriteLine(tmp);
                        }
                    }
                }
            }
        }
Добавлено через 3 минуты
выполнено за время 00:00:00.0650010

Добавлено через 57 секунд
предлагаю увеличить объем файла что бы он стал более существенней в обработке по времени.

Добавлено через 2 минуты
файл размером 447Мб обработался за 16 сек. в методе поменял с 2 итераций на 1000

Добавлено через 59 секунд
выкладываю весь код программы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    class Program
    {
        static void GenFileInt()
        {
            using (var sw = File.CreateText("int.txt"))
            {
                for (int n = 0; n < 1000; n++)
                {
                    for (Int16 i = Int16.MaxValue; i > Int16.MinValue; i--)
                    {
                        sw.WriteLine(i);
                    }
                }
            }
        }
 
        static void Main(string[] args)
        {
            GenFileInt();
            DateTime dt = DateTime.Now;
            bool[] b = new bool[65536];
            using (StreamWriter sw = File.CreateText("int2.txt"))
            {
                using (StreamReader sr = File.OpenText("int.txt"))
                {
                    string line = "";
                    while ((line = sr.ReadLine()) != null)
                    {
                        Int16 tmp = Int16.Parse(line);
                        int index = tmp+Int16.MaxValue;
                        if (!b[index])
                        {
                            b[index] = true;
                            sw.WriteLine(tmp);
                        }
                    }
                }
            }
            TimeSpan ts = DateTime.Now - dt;
            Console.WriteLine("Время: " + ts);
            Console.ReadLine();
        }
    }
Добавлено через 7 минут
как у тебя прога работает?
0
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
26.03.2015, 11:53 22
Prizrak86, согласен у вас намного быстрее работает, нежели у меня

Добавлено через 6 минут
напутал немного, в итоге файл с повторениями int16 00:00:00.0720000
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
26.03.2015, 11:56 23
Цитата Сообщение от lokilo Посмотреть сообщение
int16 00:00:00.0720000
генерируешь в 1000 итераций?

Добавлено через 1 минуту
у меня не выполняется сортировка, а твой класс походу да.
0
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
26.03.2015, 11:59 24
Prizrak86, нет сейчас в 1000 итераций сделал, в массив не влезли
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
26.03.2015, 12:03 25
я знаю что некоторые структуры могут хранить или 2048 (вроде стек или очередь, точно не помню) и 2^16 значений (обусловлено тем что длинна массива возвращается типом int, а его максимальное значение половина диапазона)

Добавлено через 1 минуту
ты можешь сделать что то типа IndexOf(число) если числа нет вернет -1 по нему и вставлять в список и в выходной файл

Добавлено через 21 секунду
но для этого подойдет и обычный List<>
0
26.03.2015, 12:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 12:03
Помогаю со студенческими работами здесь

Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же чис
Помогите пожалуйста, у меня что-то не очень получается разобратся. Задание: Дан файл f, компоненты...

Получить файл без повторных вхождений
Помогите исправить код или написать на С++ Дан файл f, компоненты которого являются целыми...

Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только четные из них
Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только...

Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них, которые имеют четные млад
Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них, которые имеют...

Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них, которые являются простыми числам
Задание: Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них,...

Дан текстовый файл F. Переписать файл F в файл G, вставляя в конец каждой строки ее порядковый номер.
решите)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru