Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для Dark_Spirit
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 41

Спортивное программирование

20.02.2019, 11:20. Показов 2536. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно прочитать большой набор строк в массив.
Использовал -
C#
1
string[] nums = Console.ReadLine().Split()
Но из-за большого количества элементов, он требует больше памяти, чем доступно. Есть другой способ в массив данные закинуть?
P.S. Если на паскале делал, то читал бы по элементам и заносил в массив сразу, а тут....
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2019, 11:20
Ответы с готовыми решениями:

Программирование ветвлений и программирование циклов
Разбираюсь в двух поставленных выше темах.Нужны примеры двух программ.Язык C#. 1)В первой программе вычислить значение функции по...

Спортивное программирование: Количество СМСок
Нашел интересную задачу по динамическому программированию. Вот ее условие: Раньше, когда у телефонов были кнопки, их клавиатуры...

Входные данные и спортивное программирование
Привет всем! Дело в том, что когда учавствуешь в соревнованиях на codeforces, informatics или просто решаешь задачи, всегда присутствуют...

7
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
20.02.2019, 11:39
Лучший ответ Сообщение было отмечено Dark_Spirit как решение

Решение

Цитата Сообщение от Dark_Spirit Посмотреть сообщение
Но из-за большого количества элементов, он требует больше памяти, чем доступно. Есть другой способ в массив данные закинуть?
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
        static void Main(string[] args)
        {
            var array = ReadElementsFromConsole().ToArray();
        }
 
        static IEnumerable<string> ReadElementsFromConsole()
        {
            var sb = new StringBuilder();
 
            while (true)
            {
                var c = (char)Console.Read();
                switch (c)
                {
                    case ' ':
                        yield return sb.ToString();
                        sb.Clear();
                        break;
                    case '\r':
                        yield return sb.ToString();
                        yield break;
                    default:
                        sb.Append(c);
                        break;
                }
            }
        }
0
Заблокирован
20.02.2019, 11:40
Цитата Сообщение от Dark_Spirit Посмотреть сообщение
Если на паскале делал
как бы это выглядело? а то задача не совсем понятна
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 11:41
Цитата Сообщение от Dark_Spirit Посмотреть сообщение
Нужно прочитать большой набор строк в массив.
А нужно ли?
В олимпиадных задачах если в условии дано огромное количество данных, то как правило хранить их все в памяти одновременно нет необходимости.
0
 Аватар для Dark_Spirit
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 41
20.02.2019, 12:02  [ТС]
Цитата Сообщение от CoderPC Посмотреть сообщение
как бы это выглядело?
В паскале можно считать одно число, из строки. В С# так сделать не получится.

Добавлено через 1 минуту
Цитата Сообщение от kolorotur Посмотреть сообщение
как правило хранить их все в памяти одновременно нет необходимости
Тут тоже не нужно хранить все. Но считывать как-то всё равно надо.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 12:06
Цитата Сообщение от Dark_Spirit Посмотреть сообщение
Но считывать как-то всё равно надо.
Считывайте построчно, обрабатывайте строку и не держите на нее ссылку — сборщик будет удалять ненужные строки по мере надобности.
0
 Аватар для Dark_Spirit
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 41
20.02.2019, 12:09  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Считывайте построчно
Там порядка несколько сотен тысяч данных в ОДНОЙ строке через пробел, так что построчно не получится.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 12:25
Dark_Spirit, может выложите полное задание?

Цитата Сообщение от Dark_Spirit Посмотреть сообщение
Там порядка несколько сотен тысяч данных в ОДНОЙ строке через пробел
Тоже не проблема — выше товарищ Storm23 привел пример того, как это делается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2019, 12:25
Помогаю со студенческими работами здесь

Спортивное программирование: подскажите удобный сайт
Всем Доброго времени суток!:) Уважаемые программисты с опытом,нужна помощь новичку. Увлёкся спортивным программированием,столкнулся с...

Спортивное программирование - развивает мышление программиста или бесполезное занятие?
Тема не новая, но хотелось бы узнать мнение. Дело в том что учу Паскаль, но хочу не просто взять и вызубрить язык, но и мышление иметь. Вот...

Спортивное питание: за и против.
У многих начинающих спортсменов сложилось предвзятое мнение к спортивному питанию. Плюсы и минусы компонентов спортивного питания. ...

Holywar : бумажные книги vs электронные.Спортивное чтение на скорость?
бумажная, так как электронную копируют с неё

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru