Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
6 / 6 / 2
Регистрация: 29.03.2012
Сообщений: 101

Динамическая верхнетреугольная матрица

24.06.2018, 09:48. Показов 6760. Ответов 26

Студворк — интернет-сервис помощи студентам
Нужно задать верхнюю треугольную матрицу размера 3х3. Размер строк задаётся динамически.
C++
1
int *matrix[3] = {new int[3],new int[2],new int};
В таком случае получится нечто следующее:
[0][0] [0][1] [0][2]
[1][0] [1][1]
[2][0]


А должно:
[0][0] [0][1] [0][2]
[1][1] [1][2]
[2][2]


Как так сделать? Пробовал создавать все строки размером 3 и потом удалять первые ненужные элементы оператором delete, но компилятор ругается.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.06.2018, 09:48
Ответы с готовыми решениями:

Динамическая матрица
Добрый день, у меня такая проблема. Даны 3 матрицы 4х4, 5х5, 7х7. Надо написать одну общую функцию для этих матриц и вызывать ее в main. Я...

Динамическая матрица С++
Напишите программу, которая принимает с клавиатуры число N и M, создает матрицу размера N на M, заполненную случайными числами, и выводит...

динамическая матрица
в общем, надо сделать матрицу доступа, её размер в исходном состоянии 1х1, и потом увечивается, т.е. размер постоянно меняется, как...

26
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 11:57
Студворк — интернет-сервис помощи студентам
Yetty,
Цитата Сообщение от Yetty Посмотреть сообщение
задание появилось ДО Вашего кода
Я не обязан читать диалоги внутри темы, я оперирую условиями первого поста.

Цитата Сообщение от Yetty Посмотреть сообщение
Это Вы так решили. А по условию:
Это не я так решил, это Вы, уважаемый, говорите мне про условия из комментариев, но при этом, видимо, не прочитали комментарии до/после.

Цитата Сообщение от Yetty Посмотреть сообщение
Если Вы не знаете кстати, то далеко не все компиляторы автоматически заполняют объявленный массив нулями.
Речь идет не о заполнении, а о выделении памяти. Вы выделяете память в куче под всю матрицу, и не важно, заполнена она или нет.

Цитата Сообщение от Yetty Посмотреть сообщение
их не нужно исключать из памяти - нужно нули не вводить.
Пора уже эту цитату записать в блокнот походу, надоело цитировать каждый раз
хранить в памяти, естественно, нужно только возможно ненулевые элементы, заведомые нули ниже главной диагонали хранить незачем
Цитата Сообщение от Yetty Посмотреть сообщение
Вы разобрались кстати что Ваш код выводит единички над побочной диагональю, а нужно над главной. и не единички. а произвольные числа.
Вы же читали комментарии... Я указал, что исправить, т.к. пост отредактировать уже нельзя было.
А "произвольные числа" - это уже Ваша прихоть, в задании такого не сказано.

Кстати, оперируя Вашими же словами, Вы сделали так:
Написать функцию, заводящую верхне-треугольную матрицу заданного порядка рандомными числами до 10 (он определяется во время выполнения программы; выводить только числа отличные от нуля) в соответствии со вторым подходом к двумерным динамическим массивам (возвращает int**).
А условие звучит так:
Написать функцию, заводящую верхне-треугольную матрицу заданного порядка (он определяется во время вы-
полнения программы; хранить в памяти, естественно, нужно только возможно ненулевые элементы, заведомые нули
ниже главной диагонали хранить незачем) в соответствии со вторым подходом к двумерным динамическим массивам
(возвращает int**).
Ничего не сказано про рандом, ничего не сказано про вывод не нулевых. Но ведь Вы условия сами пишете, да?)

Я еще раз повторюсь, да, Вы правы про функцию, о ней я речи и не виду. Я говорю исключительно о продолжении задания, а именно о хранении в памяти. Не хранить в памяти - не значит не выводить. Это именно не выделять ее для ненужных. Вот я о чем
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.06.2018, 12:32
Цитата Сообщение от SuperKir Посмотреть сообщение
Ничего не сказано про рандом, ничего не сказано про вывод не нулевых.
так ввести элементы нужно. рандом - один из способов. а вывода в функции и нет.
Цитата Сообщение от SuperKir Посмотреть сообщение
заведомые нули ниже главной диагонали хранить незачем
чтобы нули хранить их нужно ввести. а они не вводятся. соответственно не хранятся. неужели это не очевидно ?
а про специфическое выделение памяти это Вы сами что-то придумали (в условии ничего про это нет) и настойчиво пытаетесь навязать.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 12:58
Цитата Сообщение от SuperKir Посмотреть сообщение
хранить в памяти, естественно, нужно только возможно ненулевые элементы
Цитата Сообщение от Yetty Посмотреть сообщение
чтобы нули хранить их нужно ввести
Зачем их вводить/не вводить, если их не нужно хранить?

Цитата Сообщение от Yetty Посмотреть сообщение
а про специфическое выделение памяти это Вы сами что-то придумали
Не я, а условие, которое Вы настойчиво игнорируете после функции)

хранить в памяти, естественно, нужно только возможно ненулевые элементы, заведомые нули
ниже главной диагонали хранить незачем) в соответствии со вторым подходом к двумерным динамическим массивам
(возвращает int**).
Цитата Сообщение от Yetty Посмотреть сообщение
соответственно не хранятся. неужели это не очевидно ?
Скажите это куче, место в которой вы выделили и заняли
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.06.2018, 13:18
Цитата Сообщение от SuperKir Посмотреть сообщение
Зачем их вводить/не вводить, если их не нужно хранить?
нули в моём коде НЕ ВВОДЯТСЯ - соответственно и не хранятся. Вы не заметили что всё время спрашиваете одно и тоже ?
Цитата Сообщение от SuperKir Посмотреть сообщение
место в которой вы выделили и заняли
где в условии написано что нельзя выделить память ?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 13:29
Цитата Сообщение от Yetty Посмотреть сообщение
нули в моём коде НЕ ВВОДЯТСЯ - соответственно и не хранятся
Это вы так думаете, а память то занята... Сколько еще раз Вам сказать об этом? Вы выделили в куче память под n*n элементов, всё, это память теперь занята и используется, процесс потерял в куче блок памяти, под элементы, которые Вы не вводите. То, что элементы не инициализированы значениями / не вводятся, не отменяет того факта, что память уже занята.

Цитата Сообщение от Yetty Посмотреть сообщение
где в условии написано что нельзя выделить память ?
"хранить в памяти нужно только ненулевые элементы, нули ниже главной диагонали хранить незачем"
Всё. Мне надоело цитировать уже это задание.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.06.2018, 13:58
Цитата Сообщение от SuperKir Посмотреть сообщение
То, что элементы не инициализированы значениями / не вводятся, не отменяет того факта, что память уже занята.
Да память зарезервирована и что из этого следует ? Вы на самом деле считаете что это противоречит условию задачи ?
Вообще-то наш спор из-за некорректного условия задачи. Треугольная матрица по определению - не треугольник, а квадратная матрица элементы которой ниже главной диагонали нули. Я исхожу из определения, Вы из произвольной трактовки. давайте завершим дискуссию. всё равно каждый останется при своём мнении.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 14:37
Цитата Сообщение от Yetty Посмотреть сообщение
Я исхожу из определения,
Цитата Сообщение от SuperKir Посмотреть сообщение
Отсюда просто создается квадратная матрица n-го порядка, элементы ниже главной диагонали которой задаются нулями. Всё.
Далее следовал код (немного косячный с <= / >=, об этом указано - как заполнять, извольте, не сказано )

Далее последовал комменатирй ТС:
Цитата Сообщение от HelloWorld56 Посмотреть сообщение
Так в задании сказано, что хранить в памяти, естественно, нужно только возможно ненулевые элементы, заведомые нули ниже главной диагонали хранить незачем.
В связи с чем код был переделан по этому "условию".
Цитата Сообщение от Yetty Посмотреть сообщение
Я исхожу из определения, Вы из произвольной трактовки.
Как видите, трактовка не произвольная, а задана в условии.
Цитата Сообщение от Yetty Посмотреть сообщение
давайте завершим дискуссию. всё равно каждый останется при своём мнении.
С этим согласен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2018, 14:37

Динамическая матрица
Здравствуйте, помогите найти ошибку в динамической матрице: у меня почему-то вызывается автоматически деструктор в программе, хотя мне это...

Динамическая матрица
помогите написать 2 проги 1) 2) по критериям: 1)Динамические массивы обязательны 2)работать через адресную арифметику, -...

Объясните динамическая матрица
Здравствуйте. Объясните пожалуйста вот эти строчки кода. int **matrix = new int * ; for ( int index = 0; index &lt; n; index++ ) ...

У меня динамическая матрица ?
#include &lt;iostream&gt; using namespace std; int main() { int n,i,j; float a; cout &lt;&lt;&quot;vv n&quot;; cin &gt;&gt; n; for...

Двумерная динамическая матрица
в общем помогите, надо написать двумерный массив(int) динамическим и пару функций к нему: 1. удаление столбца 2. удаление строки 3....


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru