|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||||||
Как создать двумерную матрицу из данных, хранящихся в файле25.09.2009, 22:27. Показов 3145. Ответов 10
Метки нет (Все метки)
Есть задача на работу с матрицей, находящейся в файле. На простом примере с фиксированным размером массива я ее решил, но не могу переделать для динамического массива. Проблема возникла с загрузкой данных из файла.
Для создания матрицы хотел использовать vector. Для одномерного массива все работает, но не как не могу сделать для двумерного массива. Помогите, пожалуйста, переделать код, чтобы можно было открыть двумерный массив из файла.
0
|
||||||
| 25.09.2009, 22:27 | |
|
Ответы с готовыми решениями:
10
Из заданного четного числа создать двумерную матрицу Как инициализировать двумерную матрицу натуральными логарифмами? |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 25.09.2009, 23:13 | |
|
Стоп. С одномерным массивом (вектором) все ясно - сколько элементов есть в файле, столько же элементов в единственном измерении массива. Т.е., если файл содержит, например, 100 элементов - то это одномерный массив из 100 элементов, индексируемых от 0 до 99.
А вот как быть с двумерным массивом (матрицей)? Как ты собираешься определить число строк и столбцов? Например, если в файле содержатся 24 элемента - это с равным успехом могут быть матрицы размерности 2x12, 3x8, 4x6, 6x4, 8x3, 12x2 элементов (заметь, матрица 2x12 не эквивалентна матрице 12x2 !) - какую из них ты выберешь? А с ростом числа элементов - что будешь делать? Количество вариантов растет в геометрической прогрессии......
0
|
|
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
|
| 26.09.2009, 08:15 [ТС] | |
|
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 26.09.2009, 08:49 | |
|
единственно, что если только отслеживать переход на новую строку 0х0A 0x0D, конечно, если данные в виде матрицы в файле. после первого первого возврата каретке количество считанных данный и будет фиксированная ширина матрицы.
Ну или думать вариант как обойти необходимость знания ширины матрицы и работать с одномерным массивом данных. задача же н была озвученна, может всё прозаичнее.
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 26.09.2009, 11:59 | |
|
Ну, в памяти компьютера, разумеется, никаких "матриц" нет вообще - все элементы матрицы хранятся как непрерывный массив значений; сначала непрерывно идут все элементы первой строки, потом сразу же за первой строкой - точно так же все элементы второй, потом третьей и так далее. То есть, если мы имеем матрицу размерности MxN (M столбцов, N строк), то для любого элемента elem[i][k] (i - строка, k - столбец) его положение (смещение от начала) легко вычислить: offset = i * M + k.
Конечно, ЕСЛИ данные в файле также уже организованы в виде матрицы, то количество элементов в строке и есть количество столбцов.... но - ЕСЛИ.
0
|
|
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||
| 26.09.2009, 18:45 [ТС] | ||
|
Как ее загрузить в программу? Размер таблицы все время меняется.
0
|
||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||||||
| 26.09.2009, 23:12 | ||||||
|
Самое простое всё таки хранить в файле в первых двух числах размерность матрицы, но можно определить ширину вот таким извращённым способом
0
|
||||||
|
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
|
||
| 26.09.2009, 23:26 [ТС] | ||
|
Извращенные способы я сам могу придумать. Но мне хотелось бы найти простой способ с использованием стандартных методов без создания собственных классов и обращения к библиотеке boost Я еще слабо владею С++, поэтому не хочу забираться в дебри. Неужели нет какого-нибудь простого способа загрузить матрицу из файла в программу?
0
|
||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||
| 26.09.2009, 23:35 | ||
0
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 27.09.2009, 15:03 | ||
Подробно опиши формат в котором эта матрица хранится в файле ! Тебе предлагают самый простой способ - сначала указать две размерности. Тебе это почему-то не нравится и хочется чего-то еще.
0
|
||
|
|
|||||||
| 17.09.2012, 17:51 | |||||||
|
Biblio, вот и все дела
0
|
|||||||
| 17.09.2012, 17:51 | |
|
Помогаю со студенческими работами здесь
11
Реализовать запись в файл и чтение из файла данных, хранящихся в массиве объектов пользовательского типа Запись данных,хранящихся в дереве Классы. Баз данных о хранящихся на складе товарах Разработать линейный список и реализовать алгоритм обработки данных, хранящихся в динамической структуре Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|