|
8 / 5 / 3
Регистрация: 19.09.2019
Сообщений: 89
|
|||||||||||
Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)24.10.2019, 07:31. Показов 8015. Ответов 11
Текст задачи
Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный целочисленный массив. У класса есть конструктор с одним целочисленным аргументом, определяющим размер массив. При создании объекта все элементы массива, получают нулевые значения. В классе перегружаются следующие операторы. Унарный оператор ~ перегружен таким образом, что результатом возвращается текстовая строка со значениями элементов массива(на который ссылается поле объекта, к которому применяется оператор). Унарный оператор инкремента ++ перегружен так, что его применение к объекту приводит к добавлению в массив нового элемента с нулевым значением. Результатом возвращается ссылка на объект-операнда. При применении к объекту оператор декремента -- из массива удаляется один элемент(например, последний), а результатом возвращается ссылка на объект-операнд. Бинарный оператор сложения должен быть определен так, чтобы можно было вычислить сумму 2 объектов, объекта и числа, а также числа и объекта. Во всех случаях результатом возвращается новый объект. Если в операции участвуют два объекта-операнда, то в объекте-результате массив получается добавлением нового элемента к массиву из объекта-операнда. Значение добавляемого элемента определяется значением числа-операнда. Если к числу прибавляется объект, то новый элемент добавляется в начало массива. Если к объекту прибавляет число, то новый элемент добавляется в конец массива. По порядку: 1) а результатом возвращается ссылка на объект-операнд. Как это? я написал так, но кажется по условию возвращать должно что-то другое:
Какие объекты? Что с чем тут складывать массив с числом? Массив с массивом? Как сложить массив с одним числом? Или тут имеется в виду типа своеобразная конкатенация для массивов? 3)Если в операции участвуют два объекта-операнда, то в объекте-результате массив получается добавлением нового элемента к массиву из объекта-операнда. Тут складываются массивы? И в результирующий массив добавляется элемент из-какого-то массива-операнда? Добавлено через 1 час 46 минут Привёл не тот фрагмент кода в вопросе, вот тот код:
0
|
|||||||||||
| 24.10.2019, 07:31 | |
|
Ответы с готовыми решениями:
11
Считывание числа поциферно (задача Лафоре, 3 глава, объяснить код) Прата, задача 2, глава 6 |
|
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
|
|||||||||
| 24.10.2019, 14:48 | |||||||||
Сообщение было отмечено Шрайн как решение
Решение
Шрайн, начнем по порядку
1) складывать значения массивов этих 2-ух объектов 2) складываться какая то определенная переменная 1-го объекта с переменной 2-го объекта 3) происходить вычитание. переменная 1-го объекта вычитается значение переменной 2-го объекта и записывается в переменную 1-го объекта (казалось бы глупость, но это возможно). 4) или данные будут умножаться (каждое четное значение 1-го массива будет умножаться на случайный элемент 2-го массива) Короче, вы просто начинаете издеваться над объектом так, как вам захочется. Любая фантазия в действительности Вот вам небольшой примерчик, думаю поможет, будут вопросы - спрашивайте
1
|
|||||||||
|
8 / 5 / 3
Регистрация: 19.09.2019
Сообщений: 89
|
|
| 24.10.2019, 15:27 [ТС] | |
|
Enifan,
1) То есть код в конце вопроса подходит под описание (возвращаем ссылку на объект)? 2) По перегрузке сложения: 2.1)Сложение объектов, это по сути сложение элементов двух массивов? Если да, то как я понимаю размерность надо задавать одинаковую для массивов. 2.2)Не очень мне всё же понятно как сложить массив с числом. 2.3)Так понимаю, что сложить число с массивом, можно также как и в п.п. 2.3, осталось понять как 3) я не понял его вообще: речь идёт о сложении двух массивов, но при этом непонятно о каком из двух операндов идёт речь и из какого операнда добавить элемент в результирующий массив. Сложение объектов: То есть мы допустим берём "понравившийся" элемент из первого массива и добавляем его во второй массив и таким образом получаем новый результирующий массив? Если прибавляем число к массиву, то это тоже самое что добавить его в начало массива как новый элемент, а если наоборот, то в конец?
0
|
|
|
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
|
|
| 24.10.2019, 15:49 | |
|
Шрайн,
1) Да, просто ссылку на этот самый объект (она же является аргументом в параметрах) 2.1) Сложение объектов - это не сложение массивов. Вы задаете что, что ХОТИТЕ. (хоть складывайте массивы, хоть складывайте переменные, хоть умножайте массивы). Если вздумали сложить массивы - то необязательно одинаковые массивы. Сложите те индексы что есть у обоих объектов, а если есть разница, то просто перепишите значение. 2.2) реализуйте так как хотите 2.3) код что я скидывал - там указано 3) а выбирайте тот операнд и тот массив что хотите и вставляйте куда хотите Сложение объектов: если такая логика вам нравится - вперед. Поймите одну вещь. Перегрузка операторов сделана для того, чтобы упрощать часть кода. В зависимости от вашей логики вы можете перегрузить что угодно и как угодно, чтобы сам код был более компактным. В вашем задании главное не то чтобы сложить число и массив, а чтобы понять как это может быть удобно в некоторых ситуациях
1
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 24.10.2019, 16:00 | |
|
0
|
|
|
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
|
|
| 24.10.2019, 16:09 | |
|
КОП, а зачем нам новый? мы же перегруженные методы используем для старого
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||||||
| 24.10.2019, 16:10 | |||||||
1
|
|||||||
|
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
|
||||||
| 24.10.2019, 16:28 | ||||||
|
Шрайн, просто суть в том, что в вашем задании не указывается как именно должен работать алгоритм сложения объекта и числа. Следовательно перегружайте на ваше усмотрение
вот еще примерчик, в котором перегрузка идет на любой вкус, можете выбрать один из предложенных
КОП, а если объект большой, то все данные переписывать?
0
|
||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 24.10.2019, 16:37 | ||
|
2. Переписываете, дропается производительность, но код хотя бы работает 3. Не занимаетесь ерундой и не переопределяете всякие инкременты для огромных классов я за 3
0
|
||
|
8 / 5 / 3
Регистрация: 19.09.2019
Сообщений: 89
|
|
| 25.10.2019, 07:10 [ТС] | |
|
Enifan, Задание не моё, оно из учебника Васильева "C# для начинающих")
0
|
|
|
8 / 5 / 3
Регистрация: 19.09.2019
Сообщений: 89
|
||||||
| 17.12.2022, 12:50 [ТС] | ||||||
0
|
||||||
| 17.12.2022, 14:02 | |||||||||||
|
Шрайн, похоже на правильный вариант.
Немного улучшений можно сделать тут
1
|
|||||||||||
| 17.12.2022, 14:02 | |
|
Помогаю со студенческими работами здесь
12
Лафоре. Глава 11. Задача 2 Заменить нежелательные слова словом BLEEP. Правильное ли решение задачи? Лафоре. 3 глава 9 задача Сокращение программы, приводит к другому результату. Лафоре 3 глава, 3 задача Задача из Bjarne Stroustrup (Глава 12,7 №2)Графическая линия в консоли(в стиле ASCII) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|