Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите! работа с символами

65K
09 декабря 2010 года
Qteb
1 / / 09.12.2010
Требуется составить функцию, преобразовывающую символьную матрицу в одномерный символьный массив и обратно.
Очень нужна помощь:confused:
29K
09 декабря 2010 года
Енот_в_Засаде
224 / / 09.11.2010
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int row, col; //строки, стлобцы
            Console.WriteLine("Введите количecтво строк:");
            row = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите количеcтво столбцов:");
            col = Convert.ToInt32(Console.ReadLine());
           
            //матрица символов
            char[,] Matrix = new char[row, col];
            Console.WriteLine("Заполните матрицу:");
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    Matrix[i, j] = Convert.ToChar(Console.ReadLine());
                }
            }
            // новый одномерный массив символов  
            char[] myArray = toArray(Matrix, row, col);

            //вывод на экран
            Console.WriteLine("Новый массив:");
             for (int i = 0; i < myArray.Length;i++)
             {
                 Console.Write(myArray.ToString() + " ");
             }

            // новая матрица
             Console.WriteLine("\nHовая матрица:");
             char[,] newMatrix = toMatrix(myArray,row, col);
             for (int i = 0; i < row; i++)
             {
                 Console.WriteLine();
                 for (int j = 0; j < col; j++)
                 {
                     Console.Write(newMatrix[i,j]+" ");
                 }
             }
           
                                                 
        }

        // из матрицы в одномерный массив
        static char[] toArray(char[,] mas, int row, int col)
        {
         char[] newCharArray = new char[mas.Length];
         int k = 0;
         for (int i = 0; i < row; i++)
         {
             for (int j = 0; j < col; j++)
             {
                 newCharArray[k] = mas[i, j];
                 k++;

             }
         }

             return newCharArray;
        }

        //из одномерного массива в матрицу
        static char[,] toMatrix(char[] mas, int row, int col)
        {
         
            int k = 0;
            char[,] newCharMatrix = new char[row, col];
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    newCharMatrix[i, j] = mas[k];
                    k++;
                }
            }
            return newCharMatrix;
        }
    }
}


Ну как-то так. Конечно нехорошо то, что количество строк и столбцов передается в функции, по моему мнению в идеале, оно должно высчитываться внутри функции, но вычисление количества строк и столбцов матрицы через длину одномерного массива у меня не получилось :(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог