![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
добрый вечер! пишу программу по классам, написал 2 реализации причём одна работает некорректно, вторая вообще не пашет.
Код:
public void vivod()//вывод { for (int i = 0; i < dl1; i++) { for (int j = 0; j < dl2; j++) { Console.WriteLine(this.mas[i, j]); } } } ну просто судя по ошибке подумал что this нужен, но странно, зачем он нужен. не захотела компилиться. потом я подумал, что всё дело в том, что функция ввода имеет тип vioid. Ну и я подумал сделать малость иначе public int vvod()//ввод { Console.WriteLine("Введите размер массива"); dl1 = Convert.ToInt16(Console.ReadLine()) ; dl2 = Convert.ToInt16(Console.ReadLine()) ; Console.WriteLine("Введите массив"); int[,] mas = new int[dl1, dl2 ]; for (int i = 0; i < dl1; i++) { for (int j = 0; j < dl2; j++) { mas[i,j] = Convert.ToInt16(Console.ReadLine()) ; //добавил return mas[i, j]; } } //вывод //эта часть кода написана в методе vivod, но здесь она работает нормально, а в отдельном методе - нет Console.WriteLine("Вывод"); for (int i = 0; i < dl1; i++) { for (int j = 0; j < dl2; j++) { Console.WriteLine(mas[i, j]); return mas[i, j]; } } } и тут какая-то ошибка. короче бился я бился, так и не сделал по-нормальному((( |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 14.10.2009
Сообщений: 70
|
![]()
Потому, что глобальная переменная "mas" не инициализирована.
Ты инициализируешь в методе "vvod()" не глобальную (внутри класса "matrix") переменную "mas", а переменную внутри метода "vvod()". Решение - убери объявление переменной как массив из целых чисел из тела метода, т.е. замени строку : Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
эээээээ... чёт я не догнал разницу для компилятора((((
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.02.2009
Сообщений: 555
|
![]()
что не работает?Попробуй так
Код:
|
![]() |
![]() |
![]() |
#5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Раз уж пишете классы, то пишите их нормально.
Вот рабочий пример программы с матрицей Класс CMatrix Код:
Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
а! кажется я понял почему всё работало через одно место. всё дело в конструкторе! я его коряво прописал. точнее я его пустым сделал. правильно?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
я бы в конструктор передал размерность массива. в процедуре ввода, ввел бы, в процедуре вывода вывел бы. тогда не было бы такой проблемы
Life if about choices
Make the right choice Последний раз редактировалось TaTT DoGG; 20.02.2010 в 21:32. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
почему не понял? я недавно перешёл с с++ на шарп. вот и думаю: так как есть public int[,] mas; то по идее она должна быть видна внутри класса и даже вне его. Хотя авторы многих книг не рекомендуют пользоваться Public так как это небезопасное программирование
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
всё) понял в чём тут фигня! дело в том что я как в с++ просто объявлял переменные и не инициализировал их, а в C# такого делать низя)))
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Классы в С++ | Alik-Soldier | Общие вопросы C/C++ | 58 | 18.01.2011 16:32 |
Классы | honest | Помощь студентам | 5 | 21.09.2009 21:23 |
Классы в С++ | S2S | Общие вопросы C/C++ | 0 | 15.03.2009 13:25 |