Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » конструктор для инициализации массива C#

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Написал  программу , старался   по  возможности в  соответствии  с   условием  задания , она  работает.   Но  не  знаю   насколько  точно   она  соответствует  заданию .  Мне   не  понятно   2  предложение   задания  : Разработать конструктор для  инициализации массива, который при своем вызове передает управление  собственному конструктору класса В.
 
Само  задание   :    В класс  В  добавить поле-массив. Разработать конструктор для  инициализации массива, который при своем вызове передает управление  собственному конструктору класса В. Размер массива – 5 элементов.  Инициализация   элементов массива: число 3, умноженное на  индекс элемента массива. В программе вывести на экран элементы массива.  Для вывода использовать цикл foreach.
 
 
using System;
namespace labor_3
{
    class B
    {
 
        public B(int health, string name)
        {
            this.health = health;
            this.name = name;
        }
 
        public void Passport()
        {
            Console.WriteLine("Monster{0}  health={1}  \a",name, health);
        }
         
        int health;
        string name;
    }
 
    class Class1
    {
        static void Main()
        {            
            const int n = 5;
            B[] stado = new B[n];
            for (int i = 0; i < n; ++i)
            {
                stado[i] = new B(3*i,"Grazy" + i.ToString());
                                       
            }
 
            foreach (B x in stado) x.Passport();
 
            Console.ReadKey();
 
        }
    }
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 13:39 21-09-2015
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для таких вопросов уже есть  топик туда пиши в следующий раз.
 

Цитата:
Но  не  знаю   насколько  точно   она  соответствует  заданию

 
Ну я уже заметил что не точно.  
Задано что в класс В массив добавить - значит нужно в него и добавить. То есть после string name еще строка будет.
 

Цитата:
конструктор для  инициализации массива
 у массивов вроде нет конструкторов и мне стало интерсо, откуда такая задача.
про передавание управления собственному конструктору я пока молчу о.
 
Можно тупо написать чтонибудь типа  ArrayInitializerСonstructor, но как передачей управления я пока не знаю.

Всего записей: 1659 | Зарегистр. 20-06-2005 | Отправлено: 23:32 21-09-2015 | Исправлено: zzz528, 23:54 21-09-2015
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528Вот   программа   выглядит  таким  вот  образом.   Но    не  знаю   ,  не   получается   как      сделать   вывод    из    Main   элементов   массива  через   foreach ?  
 
using System;
 namespace Lab2
 {
 class B
 {
 private int[] _array;  
 public B(int length, int initialValue)
 {
 _array = new int[length];  
 for (int i = 0; i < length; i++)
 _array[i] = initialValue * i;
 }  
 public B() : this(5,3) {}  
 }
 class Program
 { static void Main(string[] args)
 {
 
 ????????????
 
 
 Console.ReadKey();
 }
 }
 }

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 00:16 22-09-2015
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
using System;
namespace Lab2
{
    class B
    {
        public int[] arr;
        
        public B()
        {
            arr = new int[] {0,3,6,9,12,15};
        }
    }
 
    class Program
    {
        static void Main()
        {
            B x = new B();
 
            foreach(int element in x.arr)
            {
                Console.WriteLine(element);
            }
 
            Console.ReadKey();
        }
    }
}

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 11:36 22-09-2015
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  ne_viens  
 
 Спасибо   за   помощь  !  Я   немного  изменил  программу , чтобы   соответствовала   заданию.  
   А   как  можно  сделать  ,  чтобы  в  программе  вместо  строки  :    public B() : this (5,3) { }
 вместо     5  и   3   можно   было    бы    подставлять    значение  свойства и   значение  какого-то поля  класса B   ?   Чтобы  соответствовало   заданию  :  “   Разработать конструктор для инициализации массива, который при своем вызове передает управление собственному конструктору класса В   “.  Дело   в   том   ,  что  у  меня   в  программе   нужно    использовать   значение  свойства  и   значение  какого-то  поля  класса B  .   Пробовал   сам   сделать  ,   перебрал  разные    варианты   ,   что-то   не  так    не   получается.
 
 
 
 
using System;
namespace Lab2
{
    class B
    {
         
        public int[] arr;
 
        public B(int length, int initialValue)
        {
            arr = new int[length];                
            for (int i = 0; i < length; i++)
                arr[i] = i*initialValue ;
        }
 
        public B() : this (5,3) { }
    }
 
    class Program
    {
        static void Main()
        {
            B x = new B();
 
            foreach (int element in x.arr)
            {
                Console.WriteLine(element);
            }
 
            Console.ReadKey();
        }
    }
}

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 01:07 23-09-2015
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
//...
        public B(int val) : this(val, 3) {}
//...
            B x = new B(5);
//...

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 12:07 23-09-2015
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ne_viens  Ваш   совет  я  понял.  Логично.  Немного   подкорректирую   в   соответствии  с  заданием.    Спасибо !

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 23:42 23-09-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » конструктор для инициализации массива C#


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru