![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
здравствуйте все! Помогите пожалуйста. Нужно написать программу на Си: имеется текстовый файл в котором есть матрица(не обязательно квадратная) с числами с плавующей точкой. Пользователь вводит номера столбцов и операции с ними, и результирующий столбец сохраняется в другом текстовом файле. Возможно что пользователь просто напишет номера столбцов без операций. Помогите пожалуйста!
|
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
такой вопрос: а как каждое число из матрицы занести в массив? помогите написать эту часть проги плз
|
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
матрица какого вида и откуда ты её берёшь, из файла?
|
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
матрица любая по размеру с числами с плавающей точкой. беру из файла текстового
|
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
попробуй так:
в итоге получишь матрицу размера MxN. но это если файл имеет правильный формат т.е. никаких лишних пробелов в конце строк не должно быть и т.д. Это сообщение отредактировал(а) taiven - 7.12.2008, 13:01 |
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
а как реализовать операции со столбцами? как я понимаю когда вводится номер столбца мы его записываем в переменную i, когда записываем номер второго, третьего и тд.. то мы должны все время менять переменную i на другую..но так можно делать бесконечно.. и как быть со знаками операции?
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 5 Всего: 41 |
лучше создать структуру или класс, которая (который) будет хранить индекс столбеца1, индекс столбца2, знак операции
Это сообщение отредактировал(а) Dmi3ev - 7.12.2008, 14:43 -------------------- |
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
Да через структуру намного проще будет, но думаю есть какой-нибудь простой алгоритм, чтобы реализовать это без структуры, хотя не знаю..
|
|||
|
||||
| taiven |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
честно говоря не совсем понимаю, что ты имеешь ввиду... вот тебе вывод первого столбца:
поменяй j на единицу и будет считывать второй столбец и т.д. или я что-то непонимаю?
в смысле? |
||||||
|
|||||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
нет, смотри. вводится какая-либо операция допустим 2+4 или 3/5 где цифры это номера столбцов т.е. в первом случае 2й столбец складывается с 4м, а во втором числа 3его столбца делятся на числа 5го. т.е.
for (i=1; i=M; i++) matrix[2][j]+matrix[4][j] и полученный результат выводится |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
вот приблизительно так можно сделать для сложения(вывод на экран):
переделай это под свои нужды и всё. Это сообщение отредактировал(а) taiven - 8.12.2008, 14:29 |
|||
|
||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
кстати, а операция должна всегда проводиться с двумя столбцами или нет, т.е. всегда должен быть вид типа 2+4 или возможно и 2+4+3?
|
|||
|
||||
| Zaulyx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 21.11.2008 Репутация: нет Всего: нет |
нет сколько угодно столбцов могут участвовать в операции... Кстати я подумал как можно организовать не только сложение но и другие арифм операции. Я думаю через switch и case...это самый рациональный способ или можно более умно поступить?
|
|||
|
||||
| Dmi3ev |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 5 Всего: 41 |
1
это уже попахивает созданием анализатора выражений, хоть и не самого сложно, но все же... 2 Тогда и массив может быть неизвестного размера. Значит нужно использовать указатели. 3 Читать из файла массив советую, используя ifstream, это гораздо удобнее, чем предлагает taiven:
Вообщем достаточно это все трудоемко... Хотя реализуемо Добавлено через 2 минуты и 8 секунд 4
можно и указатели на функции использовать. Смотреть надо. -------------------- |
||||||
|
|||||||
| taiven |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 4 Всего: 9 |
||||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |