Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2013, 20:07   #1
alexelev
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 26
Вопрос C# Конвертация строки в двумерный массив целочисленных значений

Стоит задача разработать метод, принимающий строку (должна прописываться числовая матрица) и конвертирующий полученную строку в числовую матрицу. Нужен совет знающих людей, меня хватило на это вот:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace konv
{
	class Program
	{
		static void Main(string[] args)
		{
			string [] temp = args.Split(new char [] {}, StringSplitOptions.RemoveEmptyEntries);
                        string[,] ARGS;
                        for (int i = 0; i < ARGS.Length; i++)
                        {
				//Ошибка: Неверное число индексов в [], требуется 2
                               ARGS1[i] = ARGS[i].Split(new char[] {' ', ','}, StringSplitOptions.RemoveEmptyEntries);
                         }
			 Int32 [,] resARGS = new Int32 [ARGS.Length, ARGS.Length];
			 for (int i = 0; i < ARGS.Length; i ++)
			 {
				for (int j = 0; j < ARGS.Length; j++)
				{
					resARGS[i,j] = Convert.ToInt32(ARGS[i,j]);
				}
			 }
		}
	}
}
но полученная ошибка ставит меня в тупик
alexelev вне форума Ответить с цитированием
Старый 30.06.2013, 20:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и каковы же критерии матрицы?
То что ты берешь данные из аргументов ясеня пенек, но вот то что это одномерный массив ты не учитываешь.
Если правильно стелепатировать то :
Код:
        static void Main(string[] args)
        {
            int[] a = args.OfType<int>().ToArray<int>();
        }
А уже потом работать с массивом чисел.
Или тупо в цикле при обработке: Convert.ToInt32(args[такое-то])
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2013, 21:26   #3
alexelev
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 26
Сообщение

при таком варианте:
Код:
static void Main(string args)
        {
            string[] ARGS = args.Split(new char[] { }); 
            int[] a = args.OfType<int>().ToArray<int>();
            Console.WriteLine(a);
        }
имею картинку.
Полностью задание звучит как написать программу для решения систем линейных алгебраических уравнений и одним из методов одного из классов должен быть парсер коэффициентов системы уравнений. Вот с ним и морочусь.
З.Ы. Требование к матрице - должна быть квадратной, но это к парсингу вроде отношения не имеет.
Изображения
Тип файла: png 0001.png (20.4 Кб, 128 просмотров)
alexelev вне форума Ответить с цитированием
Старый 30.06.2013, 21:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при таком варианте:
Еще раз внимательнее смотри что я пишу:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
// Массив строк а не строка
        static void Main(string[] args)
        {
// Преобразование в массив чисел. Сейчас использую LINQ
            int[] a = args.Select(v => Convert.ToInt32(v)).ToArray<int>();
...
//Проход по массиву чисел потом
            foreach (int v in a) { Console.Write("{0}\t",v); }
            Console.ReadKey();
        }
    }
}
Цитата:
Требование к матрице - должна быть квадратной, но это к парсингу вроде отношения не имеет.
Имеет. Ты вводишь линейный массив. Тебе нужно преобразовать одно измерение в другое. Я и спрашиваю - каковы критерии и характеристики твоей матрицы. Каков ее размер и условия внедрения в нее элемента.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2013, 23:03   #5
alexelev
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 26
Сообщение

Цитата:
Каков ее размер
В том-то и дело, что размер должен быть произвольным. Допустим нужно решить систему из 2-ух уравнений. Пользователь должен ввести 2 коэффициента первого уравнения и 2 коэффициента второго. Если 3 уравнения, то коэффициентов по 3 в каждом уравнении соответственно. А возможно, понадобиться решить и систему из 15 уравнений, тогда матрица будет 15х15. Поэтому-то я и хотел изначально "порезать" входную строку с помощью
Код:
Split(new char [] {'\n'})
где '\n' отделяет строку коэффициентов одного уравнения от другого, а потом каждую полученную строку в этом массиве точно также обработать с помощью
Код:
Split(new char [] {' ', ','})
где знаки ' ' и ',' разделяют введенные коэффициенты и полученные значения записать в двумерный массив.
Цитата:
условия внедрения в нее элемента
условие одно - чтобы считанный элемент был числом, а не иными символами
alexelev вне форума Ответить с цитированием
Старый 01.07.2013, 00:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
где '\n' отделяет строку коэффициентов
Тогда другое дело. В этом случае строка параметров с его возможными (сейчас уже не помню какими точно) ограничениями не помошник.
Тут нужно заводить данные в файл, скажем в обычный текстовик с пробелами разделителями.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив. начиная с 1 строки сдвинуть все строки на 2 вниз, а последние 2 переместить на место первых двух строк. Proskurina Помощь студентам 5 03.03.2013 21:38
Поиск по бинарному дереву целочисленных значений smeaz Помощь студентам 0 05.12.2012 21:05
нужно исправить ошибку,двумерный массив,удаления строки ленок-носок Помощь студентам 0 24.03.2012 22:57
Паскаль. Как задать предел значений из которых будут выбираться значения в двумерный массив? Женька Good Помощь студентам 1 19.12.2011 16:49
Двумерный массив прочитать из строки (Delphi) Dominator8000 Помощь студентам 1 18.03.2011 00:46