Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация переменной типа string [][], Как инициализировать эту переменную? 
V
    Опции темы
Lion_Smith
Дата 14.3.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Даётся массив строк string s[]. Необходимо разбить каждую строку этого массива на 3 отдельные строки. В первой буквы, во второй цифры, в третьей знаки препинания. Т.е
есть string s[]
1  |  Строка 1  
2  |  Строка 2 
3  |  Строка 3 
4  |  Строка 4  

Нужно сделать из неё двумерный масив string ss[][]
1  |  Буквы  |  Цифры  |  ЗнакиПрепинания  |
2  |  Буквы  |  Цифры  |  ЗнакиПрепинания  |
3  |  Буквы  |  Цифры  |  ЗнакиПрепинания  |
4  |  Буквы  |  Цифры  |  ЗнакиПрепинания  |

и всё это должно выполняться в методе MakeStrings.
Код конольного приложения вот тут:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication2
{
    class Program
    {
        public void Main(string[] args)
        {
            //обявляем переменные
//Как правильно записать нижестоящие 3 строчки, что бы не вылезало сообщение об ошибке:
//1) Use of unassigned local variable 'program'
//2) Use of unassigned local variable 's'
//3) Use of unassigned local variable 'ss'
//Я понимаю, что я объявил переменые, но не инициализировал их! Как их правильно инициализировать при объявлениии. Пусть s и ss будут например пустыми масивами. и как инициализировать program??? 

            string[] s;
            string[][] ss;
            //создаём экземпляр класса Program
            Program program;
            //вызываем метод MakeStrings и передаём в него переменные по ссылке используя ref
            program.MakeStrings(ref s, ref ss);
        }

// а здесь описан сам метод MakeStrings
        public void MakeStrings(ref string[] s, ref string [][]ss)
        {
           int n = 0;
            foreach (string sn in s)
            {

                foreach (int sl in sn)
                {
                    //обрабатываем строку sn
                    // если не буква или не цифра, то
                    if (!char.IsLetterOrDigit(sn[sl]))
                    {
                        ss[n][2] = ss[n][2] + sn[sl];
                    }
                    else 
                    {
                        // если цифры, то
                        if (char.IsDigit(sn[sl]))
                        {
                            ss[n][1] = ss[n][1] + sn[sl];
                        }
                        else
                        {
                            // тогда точно буква
                            ss[n][0] = ss[n][0] + sn[sl];

                        }
                     
                    }
                }
                n = +1;
            }
        }    
    }
}




PM MAIL   Вверх
CYBERDREAM
Дата 14.3.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



Задай размеры массивам
Код

string[]s=new string[10];
string[,] mas=new string[10,3];



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Lion_Smith
Дата 14.3.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Поправил код! теперь он выглядит во так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace ConsoleApplication2
{
    class Program
    {
        public void Main(string[] args)
        {
            string[] s = new string[10];
            string[,] ss = new string[10, 3];
// но по прежнему выскакивает ошибка Use of unassigned local variable 'program'
            Program program;
            program.MakeStrings(ref s, ref ss);
        }
        public void MakeStrings(ref string[] s, ref string [,]ss)
        {
           int n = 0;
            foreach (string sn in s)
            {

                foreach (int sl in sn)
                {
                    //обрабатываем строку sn
                    // если не буква или не цифра, то
                    if (!char.IsLetterOrDigit(sn[sl]))
                    {
                        ss[n,2] = ss[n,2] + sn[sl];
                    }
                    else 
                    {
                        // если цифры, то
                        if (char.IsDigit(sn[sl]))
                        {
                            ss[n,1] = ss[n,1] + sn[sl];
                        }
                        else
                        {
                            // тогда точно буква
                            ss[n,0] = ss[n,0] + sn[sl];

                        }
                     
                    }
                }
                n = +1;
            }
        }    
    }
}

PM MAIL   Вверх
CYBERDREAM
Дата 14.3.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



вместо 
Код

    Program program;
            program.MakeStrings(ref s, ref ss);

напиши 
Код

            this.MakeStrings(ref s, ref ss);
            ///или просто
            MakeStrings(ref s, ref ss);


Добавлено через 50 секунд
Тебе нет никакого резона создавать новый объект класса Program


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
QryStaL
Дата 14.3.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32



 smile  Lion_Smith, пожалуйста, пользуйтесь кнопкой "Код".


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
vponomarov
Дата 14.3.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 2
Всего: 12



Lion_Smith, неплохо бы для себя уяснить разницу между объявлением и созданием переменной.
если вы напишите Program program - это говорит всего-лишь о том, что program является объектом типа Program, а работать с ним можно только после создания, т.е.  Program program=new Program() (ну или какой-нить другой конструктор).
поэтому компилятор и выдает Вам ошибки.


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Lion_Smith
Дата 14.3.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Спасибо за пояснения.. почитаю соответсвующие главы в Книге smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.