Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.09.2022
Сообщений: 84

Сравнить время выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массиво

06.05.2023, 12:32. Показов 309. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите, пожалуйста , выполнить 5 и 6 пункт

задание:
Кликните здесь для просмотра всего текста

Определить тип TimeFrame - перечисление(enum) со значениями Year, TwoYears, Long.
Определить класс Paper, который имеет три открытых автореализуемых свойства, доступных для чтения и записи:
• свойство типа string, в котором хранится название публикации; • свойство типа Person для автора публикации;
• свойство типа DateTime c датой публикации.
В классе Paper определить
• конструктор c параметрами типа string, Person, DateTime для
инициализации всех свойств класса;
• конструктор без параметров, инициализирующий все свойства класса значениями по умолчанию;
некоторыми
• перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех полей класса.
Определить класс ResearchTeam, который имеет
• закрытое поле типа string c названием темы исследований;
• закрытое поле типа string с названием организации;
• закрытое поле типа int – регистрационный номер;
• закрытое поле типа TimeFrame для информации о продолжительности исследований;
• закрытое поле типа Paper*+, в котором хранится список публикаций. В классе ResearchTeam определить конструкторы:
• конструктор c параметрами типа string, string, int, TimeFrame для инициализации соответствующих полей класса;
• конструктор без параметров, инициализирующий поля класса значениями по умолчанию.
В классе ResearchTeam определить свойства c методами get и set:
• свойство типа string для доступа к полю с названием темы исследований; • свойство типа string для доступа к полю с названием организации;

• свойство типа int для доступа к полю с номером регистрации;
• свойство типа TimeFrame для доступа к полю с продолжительностью
исследований;
• свойство типа Paper*+ для доступа к полю со списком публикаций по теме исследований.
В классе ResearchTeam определить
• свойство типа Paper ( только с методом get), которое возвращает ссылку на публикацию с самойпозднейдатойвыхода;еслисписокпублик ацийпустой , свойствовозвращаетзначение null;
•индексаторбулевскоготипа(толькосметодом get)содним параметром типа TimeFrame; значение индексатора равно true, если значение поля с информацией о продолжительностиисследованийсовпадаетсо значением индекса,иfalseвпротивном случае;
• метод void AddPapers ( params Paper[] ) для добавления элементов в список публикаций;
•перегруженнуюверсиювиртуальногометодаst ringToStri ng()для формирования строки со значениями всех полей класса, включая список публикаций;
• виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка публикаций.
В методе Main()
1. Создать один объект типа ResearchTeam, преобразовать данные
в текстовый вид с помощью метода ToShortString() и вывести данные.
2. Вывести значения индексатора для значений индекса TimeFrame.Year, TimeFrame.TwoYears, TimeFrame.Long.
3. ПрисвоитьзначениявсемопределеннымвтипеRe searchTeam свойствам, преобразовать данные в текстовый вид с помощью метода ToString() и вывести данные.
4. С помощью метода AddPapers (params Paper *+) добавить элементы в список публикаций и вывести данные объекта ResearchTeam.
5. Вывести значение свойства, которое возвращает ссылку на публикацию с самой поздней датой выхода;
6. Сравнить время выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов типа Paper.


класс person
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private string name;
        public string Name { get => name; set => name = value; }
        private string surname;
        public string Surname { get => surname; set => surname = value; }
        private DateTime Dborn;
        public Person(string name, string surname, DateTime Dborn)
        {
            this.name = name;
            this.surname = surname;
            this.Dborn = Dborn;
        }
        public Person() { }
        public override string ToString() => $"{ToShortString()}; Дата рождения: {Dborn}";
        public string ToShortString() => $"Имя: {Name}; Фамилия: {Surname}";
class paper
C#
1
2
3
4
5
6
7
8
9
10
11
   public string Publication { get; private set; }
        public Person Author { get; private set; }
        public DateTime PublishDate { get; private set; }
        public Paper(string publication, Person author, DateTime publishDate)
        {
            Publication = publication;
            Author = author;
            PublishDate = publishDate;
        }
        public Paper() : this("WarandWorld", new Person("Lolstoy", string.Empty, new DateTime(1870, 1, 1)), new DateTime(1889, 7, 1)) { }
        public override string ToString() => $"Название публикации: {Publication}; Автор: {Author}; Дата публикации: {PublishDate}";
class researchteam

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  public bool this[TimeFrame iLast] => iLast == Last;
        private string title;
        public string Title { get => title; set => title = value; }
        private string nameorg;
        public string NameOrg { get => nameorg; set => nameorg = value; }
        private int number;
        public int Number { get => number; set => number = value; }
        private TimeFrame last;
        public TimeFrame Last { get => last; set => last = value; }
        private List<Paper> papers = new List<Paper>();
        public List<Paper> Papers { get => papers; set => papers = value; }
        public Paper? Lastest => Papers.OrderBy(p => p.PublishDate).LastOrDefault();
        public ResearchTeam(string title, string nameorg, int number, TimeFrame last)
        {
            this.title = title;
            this.nameorg = nameorg;
            this.number = number;
            this.last = last;
        }
        public ResearchTeam() : this("HiWorld", "Marry", 1000, new TimeFrame()) { }
        public void AddPapers(params Paper[] papers_) => Papers.AddRange(papers_);
        public override string ToString() => $"{ToShortString()}\nСписок публикаций:\n{string.Join("\n", Papers)}";
        public virtual string ToShortString() => $"Тема исследования: {Title};\n" +
            $"Название организации: {NameOrg};\n" +
            $"Регистрационный номер: {Number}\n" +
            $"Продолжительность исследований: {Last}";
main:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 //1
            ResearchTeam team = new ResearchTeam();
            Console.WriteLine(team.ToShortString());
            //2
            bool year = team[TimeFrame.Year];
            bool twoYears = team[TimeFrame.TwoYears];
            bool long_ = team[TimeFrame.Long];
            //3 надо свойства присвоить
            Console.WriteLine(team.ToString());
            //4
            team.AddPapers(new Paper("Title3", new Person("Author3", "lklkj", new DateTime(2010, 1, 1)), new DateTime(2010, 1, 1)));
            Console.WriteLine(team.ToString());
            //5 ???????????
            Console.WriteLine(team.Lastest);
            //6 ?????????
            var linearArray = new Paper[1000000];
            var rectArray = new Paper[1000, 1000];
            var jaggedArray = Enumerable.Range(0, 1000).Select(a => new Paper[1000]).ToArray();
            //какие нужно сравнить  операции ?
            Console.ReadLine();
 был вариант для 6 задания сделать так:
 
//var linearArray = new Paper[1000000];
            //var rectArray = new Paper[1000, 1000];
            //var jaggedArray = new Paper[1000][];
 
            //for (int i = 0; i < jaggedArray.Length; i++)
            //    jaggedArray[i] = new Paper[1000];
 
            ////test1
            //var sw = Stopwatch.StartNew();
 
            //for (int i = 0; i < 1000000; i++)
            //    linearArray[i] = null;
 
            //sw.Stop();
            //Console.WriteLine(sw.Elapsed);
 
            ////test2
            //sw = Stopwatch.StartNew();
 
            //for (int i = 0; i < 1000; i++)
            //    for (int j = 0; j < 1000; j++)
            //        rectArray[i, j] = null;
 
            //sw.Stop();
            //Console.WriteLine(sw.Elapsed);
 
            //3
            ////test3
            //sw = Stopwatch.StartNew();
 
            //for (int i = 0; i < 1000; i++)
            //    for (int j = 0; j < 1000; j++)
            //        jaggedArray[i][j] = null;
 
            //sw.Stop();
            //Console.WriteLine(sw.Elapsed);
 
            //Console.ReadKey();
помогите,пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2023, 12:32
Ответы с готовыми решениями:

Заполнение двумерного массива элементами одномерного
Здравствуйте, подскажите, есть эдиты, есть кнопочка, при нажати на которую из эдитов данные должны построчно запонять двумерный массив и...

Сравнить время, необходимое для выполнения операций
Передо мной стоит такая задача: Определить класс Person, который имеет • закрытое поле типа string, в котором хранится имя; ...

Формирование двумерного массива из одномерного. Проведение различных операций с матрицами
Превращение одномерного в двумерный. Было бы не плохо если бы кто объяснил как это сделать, но от кода я не откажусь. ЗАДАНИЕ: ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2023, 12:32
Помогаю со студенческими работами здесь

Добавить элементы к списку экзаменов и вывести их. Сравнить время выполнения операций..
Задания: Визначити клас Person, який має • закрите поле типу string, в якому зберігається ім'я; • закрите поле типу string, в якому...

Cравнить время, необходимое для выполнения операций с элементами массивов
Можете помочь с работой Вот задание Определить класс Person, который имеет закрытое поле типа string, в котором хранится имя; ...

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над элементами одномерного массива
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над элементами одномерного массива: 1) ввод массива; 2)...

Реализовать в виде модуля набор подпрограмм для выполнения заданых операций над элементами одномерного массива
Разработка и компиляция модуля Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над элементами...

Вывод двумерного ступенчатого массива в textbox
Не получается вывести двумерный ступенчатый массив в текстбокс. Проблема в 18 строке. private void button2_Click_1(object sender,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru