Re: массивы и матрицы в С++
От: Sni4ok  
Дата: 10.05.09 11:22
Оценка: +1 -1 :))) :))) :))
Здравствуйте, Аноним, Вы писали:

А>помогите пожатуйста! может быть у кеого встречались такие задания!!

А>1. нужно подсчитать количесвто пар одинаковых элемнтов вмассиве.

этого я нефига не понял

А>2. нужно симметрично отобразить матрицу относительно главной диагонали.


а вот это просто, если у тебя матрица вида
boost::numeric::ublas::matrix<double> a, то транспонированая ей матрица возвращается функцией
boost::numeric::ublas::trans(a)
Re: массивы и матрицы в С++
От: рыбак  
Дата: 11.05.09 12:17
Оценка: +1 :))) :))
Здравствуйте, Аноним, Вы писали:

А>помогите пожатуйста! может быть у кеого встречались такие задания!!

А>1. нужно подсчитать количесвто пар одинаковых элемнтов вмассиве.
А>2. нужно симметрично отобразить матрицу относительно главной диагонали.
А>помогите пожайлуйста, а то зачет мимо пролетает!
А>если что пишите
А>mariya2098@yandex.ru

понабрали по ЕГЭ...
Re[2]: массивы и матрицы в С++
От: peterbes Россия  
Дата: 10.05.09 12:22
Оценка: +2 -3
Здравствуйте, Sni4ok, Вы писали:


S>а вот это просто, если у тебя матрица вида

S>boost::numeric::ublas::matrix<double> a, то транспонированая ей матрица возвращается функцией
S>boost::numeric::ublas::trans(a)

зачем здесь нужен boost и blas если вся операция заключается в обмене элементов матрицы (i,j)->(j,i), это всего функция на четыре строки
Re[6]: массивы и матрицы в С++
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 13.05.09 10:58
Оценка: 7 (2) +1 -1
Здравствуйте, Sni4ok, Вы писали:

S>ненужно изобретать велосипеды там где есть стандартные решения.


Во время учебы естественно нужно изобретать велосипеды.
Re[8]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 04:34
Оценка: 1 (1) -3
Здравствуйте, Sergey Chadov, Вы писали:

SC>Даже во времена раннего С++ для работы с матрицами не изобретали велосипед, а использовали BLAS.


Тьфу на Вас еще раз! Какой к богу велосипед ? Создание массива под type**, хоть прямоугольного, хоть треугольного, хоть ступенчатого — один из банальных примеров любого приличного учебника по С (даже не С++)

type** p = new type[n];
for ( i = 0; i < n; i++)
p[i] = new type[m];

На чистом С заменить new на malloc. Ну и type замените на конкретный тип.

Удаление сам напишешь ?

Это намного сложнее, чем описание

type a[M][N]; // естественно, что M и N в данном случае константы

?

>Реализацией которого(сюрприз, сюрприз) и является boost::ublas. Так что, не будь это лабораторной работой, это было бы вполне оправдано хотя бы из-за того, что используется де-факто стандартный интерфейс.


Ай-яй-яй. Уж никак без каких-то стандартных интерфейсов не обойтись, когда можно 3 строки написать! Скоро будем стандартные интерфейсы искать для реализации условного оператора, если так дальше пойдет. Совсем уж разучились простые вещи делать!
With best regards
Pavel Dvorkin
Re[5]: массивы и матрицы в С++
От: Sni4ok  
Дата: 10.05.09 13:46
Оценка: +1 -1 :))
Здравствуйте, peterbes, Вы писали:

P>Какая главная диагональ существует у не квадратной матрицы хотелось бы знать? Второе утверждение неверное, размерность матрицы не меняется, а написать swap на три строчки это не креативно и религия не позволяет, тут никак не меньше, нужен буст.


конечно нужен, как вы вообще зададите матрицу произвольного размера, в которую размер приходит динамически?
далее раз им захотелась транспонировать матрицу, они захотят матрицы умножать, потом факторизовать а потом глядишь и системы линейных уравнений решать научатсо. ненужно изобретать велосипеды там где есть стандартные решения.
массивы и матрицы в С++
От: Аноним  
Дата: 10.05.09 11:11
Оценка: :)))
помогите пожатуйста! может быть у кеого встречались такие задания!!
1. нужно подсчитать количесвто пар одинаковых элемнтов вмассиве.
2. нужно симметрично отобразить матрицу относительно главной диагонали.
помогите пожайлуйста, а то зачет мимо пролетает!
если что пишите
mariya2098@yandex.ru

13.05.09 17:19: Перенесено модератором из 'C/C++' — Кодт
Re: массивы и матрицы в С++
От: Muxa  
Дата: 10.05.09 13:46
Оценка: +2
А>1. нужно подсчитать количесвто пар одинаковых элемнтов вмассиве.

0 0 0 0

это сколько пар?
Re[6]: массивы и матрицы в С++
От: ilvi Россия  
Дата: 12.05.09 02:52
Оценка: +1 :)
Здравствуйте, Sni4ok, Вы писали:

P>> а написать swap на три строчки это не креативно и религия не позволяет, тут никак не меньше, нужен буст.

S>конечно нужен, как вы вообще зададите матрицу произвольного размера, в которую размер приходит динамически?

Скоро можно будет на собеседовании у разработчика по с++ с 5 летним и более стажем задавать вопрос на засыпку, определяющий уровень ЗП:
как задать матрицу произвольного размера без буста
Re[7]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 04:36
Оценка: -2
Здравствуйте, ilvi, Вы писали:

I>Скоро можно будет на собеседовании у разработчика по с++ с 5 летним и более стажем задавать вопрос на засыпку, определяющий уровень ЗП:

I>как задать матрицу произвольного размера без буста

Скоро у разработчиков со стажем менее 5 лет нельзя будет этот вопрос задавать, потому что никто из них на него не ответит
With best regards
Pavel Dvorkin
Re[9]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 05:16
Оценка: +1 :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Скоро у разработчиков со стажем менее 5 лет нельзя будет этот вопрос задавать, потому что никто из них на него не ответит


E>Ну ты же ответишь?


А у меня стаж не менее 5 лет, а порядком побольше.

E>Я ответишь и т. д...


И у тебя, я полагаю, тоже
With best regards
Pavel Dvorkin
Re[10]: массивы и матрицы в С++
От: neFormal Россия  
Дата: 13.05.09 14:39
Оценка: +2
Здравствуйте, Sergey Chadov, Вы писали:

SC>А за код, который ты привел в неучебном проекте, особенно если его разрабатывает более 1 человека — казнь через рефакторинг.


мне всегда было интересно: почему за простой код с голыми указателями казнят, а за код с кучей шаблонов и парой десятков слоёв абстракции нет?.
...coding for chaos...
Re[8]: массивы и матрицы в С++
От: OdesitVadim Украина  
Дата: 15.05.09 11:18
Оценка: +1 -1
Здравствуйте, Sni4ok, Вы писали:
S>в каком месте автор топика указал, что это является учебным заданием?
Достаточно внимательно прочитать самый первый пост. Там только фразы "мне задали в школе/институте" не хватает. Но судя по характеру сообщения, так оно и есть.
Re[13]: массивы и матрицы в С++
От: Sergey Chadov Россия  
Дата: 13.05.09 16:32
Оценка: 4 (1)
Здравствуйте, peterbes, Вы писали:


P>Все замечательно, только весь исходный код программы из приведенного выше задания занимает несколько десяток строк, и весь этот код в дальнейшем летит в мусорную корзину, он учебный, других нагрузок такие задания не несут. От человека, которому задают такие задания требую только понимания того, как работают динамические массивы а не знания библиотек и я когда-то учился СИ по книжкам, программирование это не первая моя профессия, и мне также было очень важно знать и понимать до автоматизма как динамически выделяется и высвобождается память под массивы различной размерности, прикинь на секундочку, если бы вместо очевидных и необходимых вещей, которые лежат в основе языка, в книгах давались бы советы прикрутить BLAS, буста, Blitz или LAPACK и не парить себе мозги всякой ерундой, я бы выкинул такую книжку за откровенную профанацию не задумываясь, именно этим вы сейчас и занимаетесь.


А-а-а-а!!! Ну ведь я же совершенно явно написал "если бы это не была лабораторная, то..."
А задачи, с которых начался топик, вообще никакого динамического выделения памяти не требуют, там судя по постановке вопроса вполне прокатит double[N][M]
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[6]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 11.05.09 10:06
Оценка: 3 (1)
Здравствуйте, Sni4ok, Вы писали:

S>конечно нужен, как вы вообще зададите матрицу произвольного размера, в которую размер приходит динамически?


Тьфу на вас! Как вы думаете, во времена С и раннего С++, без всяких бустов и даже STL, так-таки никто не умел задавать двумерную матрицу с произвольным размером ?
With best regards
Pavel Dvorkin
Re[9]: массивы и матрицы в С++
От: RedUser Россия  
Дата: 13.05.09 15:06
Оценка: 2 (1)
PD>type** p = new type[n];
PD>for ( i = 0; i < n; i++)
PD> p[i] = new type[m];

type (*p)[3] = new type[3][3];
...
delete [] p;
Re[13]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 10:01
Оценка: 1 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Чтобы работать с чем угодно, надо понимать, что это такое — если не хочешь работать с ним как обезьяна с компьютером.


Как работают с компьютером обезьяны я не знаю, а как работают с кодом люди, которые программировать только учатся -- знаю.
Ты же, когда учишь студентов, наверное cin cout используешь, не вдаваясь в подробности их реализации? Если так, что чем vector хуже?

IMHO, понятие "массив" оно довольно таки простое. И довольно таки высокоуровневое. И если воспринимать std::vector, как реализацию этого понятия, не вдаваясь в подробности, и не пользуясь итераторами и прочими особенностями STL, то им вполне можно пользоваться В УЧЕБНЫХ ЦЕЛЯХ во всяком случае.
IMHO, вообще С++ не самый удачный язык для обучения программированию. Лично мне ближе PASCAL, но мне лень его подробно вспоминать ради тех относительно редких в моей практике случаев, когда приходится кого-то учить программированию с 0...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: массивы и матрицы в С++
От: Sni4ok  
Дата: 10.05.09 12:50
Оценка: :)
Здравствуйте, peterbes, Вы писали:

P>Здравствуйте, Sni4ok, Вы писали:



S>>а вот это просто, если у тебя матрица вида

S>>boost::numeric::ublas::matrix<double> a, то транспонированая ей матрица возвращается функцией
S>>boost::numeric::ublas::trans(a)

P>зачем здесь нужен boost и blas если вся операция заключается в обмене элементов матрицы (i,j)->(j,i), это всего функция на четыре строки


для того чтобы не городить велосипеды, более того матрицы могут быть не квадратные, соотвественно например если она представлялась массивом double a[2][3], то её транспонированная будет представляться массивом double b[3][2]
Re[4]: массивы и матрицы в С++
От: peterbes Россия  
Дата: 10.05.09 13:16
Оценка: :)
Здравствуйте, Sni4ok, Вы писали:


S>для того чтобы не городить велосипеды, более того матрицы могут быть не квадратные, соотвественно например если она представлялась массивом double a[2][3], то её транспонированная будет представляться массивом double b[3][2]


Какая главная диагональ существует у не квадратной матрицы хотелось бы знать? Второе утверждение неверное, размерность матрицы не меняется, а написать swap на три строчки это не креативно и религия не позволяет, тут никак не меньше, нужен буст.
Re[9]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 05:13
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>type** p = new type[n];

PD>for ( i = 0; i < n; i++)
PD> p[i] = new type[m];

PD>Удаление сам напишешь ?


Тему-то топикстратер создал, так что он/она её наверное читает...
Так, что, IMHO, для С++ надо что-то вроде
std::vector< std::vector<type> > arr( n, std::vector<type>( m ) );
советовать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 05:22
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>type** p = new type[n];

PD>>for ( i = 0; i < n; i++)
PD>> p[i] = new type[m];

PD>>Удаление сам напишешь ?


E>Тему-то топикстратер создал, так что он/она её наверное читает...

E>Так, что, IMHO, для С++ надо что-то вроде
std::vector< std::vector<type> > arr( n, std::vector<type>( m ) );
советовать...


Егор, ты вообще отдаешь себе отчет, о чем речь-то идет ? Некая девушка, скорее всего из начинающих или вообще к программированию отношения не имеющих, задает вопрос о довольно простом действии, которое есть в любом учебнике. А то, что ты предлагаешь, предполагает как минимум знание STL (а чтобы с STL работать, надо все же язык знать не на уровне начинающих — это раз, и саму STL — это два). Она скорее всего не только vector от list не отличает, но и не знает, чем vector отличается от массива
With best regards
Pavel Dvorkin
Re[10]: массивы и матрицы в С++
От: ilvi Россия  
Дата: 13.05.09 05:39
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Так, что, IMHO, для С++ надо что-то вроде
std::vector< std::vector<type> > arr( n, std::vector<type>( m ) );
советовать...


Я думаю, что такие советы надо давать людям, которые уже представляют, что такое массив и как его готовить. Т.е. прежде чем учить человека высокоуровневым вещам, надо научить человека низкоуровневым. Чтобы не было пробелов в знаниях. И чтобы при разработке человек делал осознаный выбор в пользу тех или иных инструментов, зная что стоит за ними и как они хотябы примерно устроены, а не просто руководствовался советом с форума, не понимая его сути. Я не против использования boost или stl, я против их использования людьми, которые "не знают массивов".
Re[10]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 06:07
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А у меня стаж не менее 5 лет, а порядком побольше.

PD>И у тебя, я полагаю, тоже

Эх, не так я как-то тезис распарсил...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[12]: массивы и матрицы в С++
От: ilvi Россия  
Дата: 13.05.09 07:11
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, ilvi, Вы писали:


I>>которые "не знают массивов".


E>С другой стороны, не понятно где граница. Почему ты считаешь, что "основы" -- это сишные массивы, а не асм, там, или особенности архитектуры проца или КЭД...


А я и не считаю, что они основы, поэтому и взял в кавычки ту фразу. Для меня они входят в основы По моему мнению это та часть, через которую человек пишущий на си должен пройти. Пусть у него не будет получаться, будут утечки памяти, аксес виолейшины и всякий мусор в данных, но хотя бы будет знать зачем нужен этот вектор, каких проблем он помагает избежать. Он будет знать "почему", а не только "как". Для меня это очень важное качество в программисте. Когда я забредаю на неведомую мне територию в програмировании и приходится писать руководствуясь только "как", меня всего коробит, потому что я не знаю сайд эффектов написаного мной.

А асм и особенности архитектуры тоже пригодятся, но это будет наверное уже после boost и stl
Re[9]: массивы и матрицы в С++
От: Vzhyk  
Дата: 13.05.09 12:51
Оценка: +1
Pavel Dvorkin пишет:
>
> Тьфу на Вас еще раз! Какой к богу велосипед ? Создание массива под
> type**, хоть прямоугольного, хоть треугольного, хоть ступенчатого — один
> из банальных примеров любого приличного учебника по С (даже не С++)
Скорее из неприличного.

>

> type** p = new type[n];
> for ( i = 0; i < n; i++)
> p[i] = new type[m];
А вот за такой код я ругаюсь и очень сильно. Кстати на собеседовании,
если чел так напишет и не объяснит проблемы и как сними бороться, то он
проходит мимо.

А вот написать свой велосипед для матриц получше бустовского, я таких
людей почти не знаю. И сам бы взялся изобретать, если бы очень сильно
попросили.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: массивы и матрицы в С++
От: Vzhyk  
Дата: 13.05.09 12:58
Оценка: +1
ilvi пишет:
>
>
> Скоро можно будет на собеседовании у разработчика по с++ с 5 летним и
> более стажем задавать вопрос на засыпку, определяющий уровень ЗП:
> как задать матрицу произвольного размера без буста
Потому, что разработчик с таким стажем уже решает задачи, а не
изобретает велосипеды с квадратными колесами.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: массивы и матрицы в С++
От: Vzhyk  
Дата: 13.05.09 13:01
Оценка: :)
dcb-BanDos пишет:
>
>
> за полтос согласен даже с коментами )))
Он демпингует!!!!!
Posted via RSDN NNTP Server 2.1 beta
Re[11]: массивы и матрицы в С++
От: Vzhyk  
Дата: 13.05.09 14:52
Оценка: -1
neFormal пишет:
>
> мне всегда было интересно: почему за простой код с голыми указателями
> казнят, а за код с кучей шаблонов и парой десятков слоёв абстракции нет?.
Потому что 99 человек из 100, которые используют голые указатели
обрушивают прогу раньше или позже. Такова жизнь. Я не видел еще ни
одного человека, который учел все что можно при работе с голыми указателями.
Например:
x* = new X...
y* = new Y...

...

delete... x;
delete... y;

А шаблоны и слои — это уже к архитектору проекта, часто они нужны, часто
излишни. Могут облегчать понимание кода, могут усложнять. Но не
гарантируют падучесть, как в случае с голыми указателями.
Posted via RSDN NNTP Server 2.1 beta
Re[12]: массивы и матрицы в С++
От: peterbes Россия  
Дата: 13.05.09 16:10
Оценка: +1
Здравствуйте, Sergey Chadov, Вы писали:

SC>Здравствуйте, neFormal, Вы писали:


SC>>>А за код, который ты привел в неучебном проекте, особенно если его разрабатывает более 1 человека — казнь через рефакторинг.


F>>мне всегда было интересно: почему за простой код с голыми указателями казнят, а за код с кучей шаблонов и парой десятков слоёв абстракции нет?.


SC>Потому что ошибка в хитрозавернутом шаблоне обычно проявляется либо на этапе компиляции, либо при первом же тестировании.

SC>А ошибка в использовании голых указателей имеет тенденцию проявляться у конечных пользователей. Более того, если код с голыми указателями будет редактировать человек, который не досканально знает его особенности(ну или автор через год-другой), то даже внеся корректное само по себе изменение он рискует словить крайне труднообнаружимый баг, который будет проявляться совсем в другом месте
SC>А казалось бы лишние уровни абстракции имеют тенденцию пригождаться когда у заказчика просыпается фантазия

Все замечательно, только весь исходный код программы из приведенного выше задания занимает несколько десяток строк, и весь этот код в дальнейшем летит в мусорную корзину, он учебный, других нагрузок такие задания не несут. От человека, которому задают такие задания требую только понимания того, как работают динамические массивы а не знания библиотек и я когда-то учился СИ по книжкам, программирование это не первая моя профессия, и мне также было очень важно знать и понимать до автоматизма как динамически выделяется и высвобождается память под массивы различной размерности, прикинь на секундочку, если бы вместо очевидных и необходимых вещей, которые лежат в основе языка, в книгах давались бы советы прикрутить BLAS, буста, Blitz или LAPACK и не парить себе мозги всякой ерундой, я бы выкинул такую книжку за откровенную профанацию не задумываясь, именно этим вы сейчас и занимаетесь.
Re[16]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 15.05.09 05:43
Оценка: -1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Не угадал. Я их Win32 учу. А там нет классов

E>Тогда и аллокации многомерных Сишных массивов нет наверное, и матрицы транспонировать тоже не надо?..

Это на 2 курсе, до меня.

PD>>Можно, но это кончится тем. что они тот код, что я привел, написать не смогут, и char* от char** отличать не будут...

E>Почему?

Потому что привыкнут искать класс там, где ручками можно за 30 секунд написать, и отвыкнут писать без классов.

E>Ну так либо ваши студенты должны ко второму курсу уже сами понимать, как матрицу транспонировать, либо рано вы с паскаля ушли...


Они и понимают.

E>Тут-то топикстартер не знает как матрицу транспонировать, а не как массив многомерный юзать...
With best regards
Pavel Dvorkin
Re[7]: массивы и матрицы в С++
От: Sni4ok  
Дата: 15.05.09 10:03
Оценка: -1
Здравствуйте, Alxndr, Вы писали:

A>Во время учебы естественно нужно изобретать велосипеды.


в каком месте автор топика указал, что это является учебным заданием?
Re[11]: массивы и матрицы в С++
От: sraider http://dvinogradov.blogspot.com
Дата: 15.05.09 20:44
Оценка: :)
PD>>А у меня стаж не менее 5 лет, а порядком побольше.
J>50?

10 наверно.
потому что "на порядок больше" — это (5 << 1)
Re: массивы и матрицы в С++
От: _Ursus_  
Дата: 10.05.09 16:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>помогите пожатуйста! может быть у кеого встречались такие задания!!

А>1. нужно подсчитать количесвто пар одинаковых элемнтов вмассиве.
А>2. нужно симметрично отобразить матрицу относительно главной диагонали.
А>помогите пожайлуйста, а то зачет мимо пролетает!
А>если что пишите
А>mariya2098@yandex.ru

100 баксов.
Re[2]: массивы и матрицы в С++
От: Roman Odaisky Украина  
Дата: 11.05.09 08:05
Оценка:
Здравствуйте, _Ursus_, Вы писали:

А>>помогите пожайлуйста, а то зачет мимо пролетает!

А>>если что пишите
А>>mariya2098@yandex.ru

_U_>100 баксов.


Только сегодня — 95!
До последнего не верил в пирамиду Лебедева.
Re[3]: массивы и матрицы в С++
От: Vzhyk  
Дата: 11.05.09 09:10
Оценка:
Roman Odaisky пишет:
>
> А>>mariya2098@yandex.ru
>
> _U_>100 баксов.
>
> Только сегодня — 95!
Да вы зажрались, товарищи — вс, последняя цена 94,99.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: массивы и матрицы в С++
От: dcb-BanDos Россия  
Дата: 11.05.09 09:44
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Roman Odaisky пишет:

>>
>> А>>mariya2098@yandex.ru
>>
>> _U_>100 баксов.
>>
>> Только сегодня — 95!
V>Да вы зажрались, товарищи — вс, последняя цена 94,99.

за полтос согласен даже с коментами )))
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re[7]: массивы и матрицы в С++
От: Sergey Chadov Россия  
Дата: 11.05.09 11:42
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

S>>конечно нужен, как вы вообще зададите матрицу произвольного размера, в которую размер приходит динамически?


PD>Тьфу на вас! Как вы думаете, во времена С и раннего С++, без всяких бустов и даже STL, так-таки никто не умел задавать двумерную матрицу с произвольным размером ?


Даже во времена раннего С++ для работы с матрицами не изобретали велосипед, а использовали BLAS. Реализацией которого(сюрприз, сюрприз) и является boost::ublas. Так что, не будь это лабораторной работой, это было бы вполне оправдано хотя бы из-за того, что используется де-факто стандартный интерфейс. Я вообще не против велосипедостроения, но только в случае, если уже построенные не едут.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[7]: массивы и матрицы в С++
От: Sni4ok  
Дата: 11.05.09 15:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Тьфу на вас!


с таким гонором и пафосам вы наверно преподаёте для самоутверждения и повышения личной самооценки?
Re[5]: массивы и матрицы в С++
От: Кодт Россия  
Дата: 11.05.09 20:30
Оценка:
Здравствуйте, peterbes, Вы писали:

S>>для того чтобы не городить велосипеды, более того матрицы могут быть не квадратные, соотвественно например если она представлялась массивом double a[2][3], то её транспонированная будет представляться массивом double b[3][2]


P>Какая главная диагональ существует у не квадратной матрицы хотелось бы знать? Второе утверждение неверное, размерность матрицы не меняется, а написать swap на три строчки это не креативно и религия не позволяет, тут никак не меньше, нужен буст.


К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.
(Но, разумеется, создать транспонированную копию в другом массиве — элементарно).
Перекуём баги на фичи!
Re[6]: массивы и матрицы в С++
От: vadimcher  
Дата: 11.05.09 20:34
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, peterbes, Вы писали:


S>>>для того чтобы не городить велосипеды, более того матрицы могут быть не квадратные, соотвественно например если она представлялась массивом double a[2][3], то её транспонированная будет представляться массивом double b[3][2]


P>>Какая главная диагональ существует у не квадратной матрицы хотелось бы знать? Второе утверждение неверное, размерность матрицы не меняется, а написать swap на три строчки это не креативно и религия не позволяет, тут никак не меньше, нужен буст.


К>К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.

К>(Но, разумеется, создать транспонированную копию в другом массиве — элементарно).

На сколько я знаю, она до сих пор эффективно не решена. Там возникают циклы перестановки причудливой и непредсказуемой формы.

А вот зайца кому, зайца-выбегайца?!
Re[7]: массивы и матрицы в С++
От: Кодт Россия  
Дата: 11.05.09 20:37
Оценка:
Здравствуйте, vadimcher, Вы писали:

К>>К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.

К>>(Но, разумеется, создать транспонированную копию в другом массиве — элементарно).

V>На сколько я знаю, она до сих пор эффективно не решена. Там возникают циклы перестановки причудливой и непредсказуемой формы.


Кто-нибудь делал попытку красиво визуализировать это дело? Типа множества Мандельброта или странного аттрактора Лоренца?
Перекуём баги на фичи!
Re[8]: массивы и матрицы в С++
От: vadimcher  
Дата: 11.05.09 20:41
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, vadimcher, Вы писали:


К>>>К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.

К>>>(Но, разумеется, создать транспонированную копию в другом массиве — элементарно).

V>>На сколько я знаю, она до сих пор эффективно не решена. Там возникают циклы перестановки причудливой и непредсказуемой формы.


К>Кто-нибудь делал попытку красиво визуализировать это дело? Типа множества Мандельброта или странного аттрактора Лоренца?


А как именно? Циклы на матрице рисовать?

А вот зайца кому, зайца-выбегайца?!
Re[6]: массивы и матрицы в С++
От: minorlogic Украина  
Дата: 12.05.09 04:19
Оценка:
Здравствуйте, Кодт, Вы писали:

К>К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.


Вроде как небольшими квадратиками это делается. Поправте.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: массивы и матрицы в С++
От: Кодт Россия  
Дата: 12.05.09 06:37
Оценка:
Здравствуйте, vadimcher, Вы писали:

К>>Кто-нибудь делал попытку красиво визуализировать это дело? Типа множества Мандельброта или странного аттрактора Лоренца?


V>А как именно? Циклы на матрице рисовать?


Ну я не знаю, ну например, функция количества или длины циклов от размера (N,M) матрицы.
Или длина какого-нибудь "характерного" цикла (например, вовлекающего клетку (1,2) или (1,N)).
Раз она нерегулярна, то могут появляться загадочные узоры.
Перекуём баги на фичи!
Re[7]: массивы и матрицы в С++
От: vadimcher  
Дата: 12.05.09 20:33
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, Кодт, Вы писали:


К>>К слову сказать, транспонирование неквадратной матрицы, размещённой в непрерывном массиве, — это очень нетривиальная перестановка. Тут swap'ами нахаляву не отделаешься.


M>Вроде как небольшими квадратиками это делается. Поправте.


Это я не знаю. Там идея такая: допустим ты матрицу задаешь линейно, только отмечаешь число элементов в строке. Например, матрицу
0 1 2
3 4 5

можно задать как { 3, { 0 1 2 3 4 5 } }, первое число означает, что в каждой строке по 3 элемента, а дальше идут элементы по строкам.
При транспонировании эта матрица превратится в
{ 2, { 0 3 1 4 2 5 } }

Можно, конечно, выделить память под новую матрицу, и туда легко все по столбцам переписать. Но возникает вопрос, а что если умудриться без дополнительной памяти переписать матрицу на том же месте. Элемент 0 имеет координаты (0,0), он там и останется. Элемент 1 имеет координаты (0,1), перейдет в (1,0), это будет третье место по порядку, т.е. перейдет на место цифры 2. Чтобы 1 туда записать, надо посмотреть, куда перейдет 2 -- на место 4 (из координат (0,2) в (2,0)). 4 -- на место 3, 3 -- на место 1. Т.е. у нас 3 цикла. Два из них длины 1 -- которые есть всегда -- первый и последний остаются на месте, а один переставляет все остальные по циклу. В общем случае, эффективного алгоритма, как все это делать, не найдено.

А вот зайца кому, зайца-выбегайца?!
Re[8]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 05:09
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Скоро у разработчиков со стажем менее 5 лет нельзя будет этот вопрос задавать, потому что никто из них на него не ответит


Ну ты же ответишь?
Я ответишь и т. д...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 06:03
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Егор, ты вообще отдаешь себе отчет, о чем речь-то идет ? Некая девушка, скорее всего из начинающих или вообще к программированию отношения не имеющих, задает вопрос о довольно простом действии, которое есть в любом учебнике. А то, что ты предлагаешь, предполагает как минимум знание STL (а чтобы с STL работать, надо все же язык знать не на уровне начинающих — это раз, и саму STL — это два). Она скорее всего не только vector от list не отличает, но и не знает, чем vector отличается от массива


Чтобы работать с вектором ничего такого знать не надо...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: массивы и матрицы в С++
От: Erop Россия  
Дата: 13.05.09 06:06
Оценка:
Здравствуйте, ilvi, Вы писали:

I>Я думаю, что такие советы надо давать людям, которые уже представляют, что такое массив и как его готовить. Т.е. прежде чем учить человека высокоуровневым вещам, надо научить человека низкоуровневым. Чтобы не было пробелов в знаниях. И чтобы при разработке человек делал осознаный выбор в пользу тех или иных инструментов, зная что стоит за ними и как они хотябы примерно устроены, а не просто руководствовался советом с форума, не понимая его сути. Я не против использования boost или stl, я против их использования людьми, которые "не знают массивов".


Это зависит от целей обучения. Вообще-то я думаю, что топикстартер не знает про программирование почти ничего. И чтобы научиться программировать хорошо бы писать программы в каком-то более дружелюбном окружении, чем голый С...

Вот когда матрицу транспонировать научишься и двухпутевое слияние освоишь, вот тогда можно и подробностями реализации заняться...

С другой стороны, не понятно где граница. Почему ты считаешь, что "основы" -- это сишные массивы, а не асм, там, или особенности архитектуры проца или КЭД...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[12]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 06:47
Оценка:
Здравствуйте, Erop, Вы писали:

E>Чтобы работать с вектором ничего такого знать не надо...


Чтобы работать с чем угодно, надо понимать, что это такое — если не хочешь работать с ним как обезьяна с компьютером.
With best regards
Pavel Dvorkin
Re[11]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 06:48
Оценка:
Здравствуйте, ilvi, Вы писали:

I>Я думаю, что такие советы надо давать людям, которые уже представляют, что такое массив и как его готовить. Т.е. прежде чем учить человека высокоуровневым вещам, надо научить человека низкоуровневым. Чтобы не было пробелов в знаниях. И чтобы при разработке человек делал осознаный выбор в пользу тех или иных инструментов, зная что стоит за ними и как они хотябы примерно устроены, а не просто руководствовался советом с форума, не понимая его сути. Я не против использования boost или stl, я против их использования людьми, которые "не знают массивов".


Полностью присоединяюсь.
With best regards
Pavel Dvorkin
Re[13]: Я не спорю, но IMHO, это просто рано...
От: Erop Россия  
Дата: 13.05.09 10:04
Оценка:
Здравствуйте, ilvi, Вы писали:

I>А асм и особенности архитектуры тоже пригодятся, но это будет наверное уже после boost и stl

Ну я в целом согласен, со всем тобой написанным, но, IMHO, если человек не умеет транспонировать матрицу, то ему рано учиться программировать на С, надо сначала просто "учиться программировать"...

А потом уже, когда будешь понимать что такое структуры данных, алгоритмы, как пишется программа, как она работает, тогда уже пора переходить к "программировать на С", ну и далее я с тобой согласен уже...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[14]: Я не спорю, но IMHO, это просто рано...
От: OdesitVadim Украина  
Дата: 13.05.09 10:24
Оценка:
Здравствуйте, Erop, Вы писали:

[scip]
E>Ну я в целом согласен, со всем тобой написанным, но, IMHO, если человек не умеет транспонировать матрицу, то ему рано учиться программировать на С, надо сначала просто "учиться программировать"...
Если человек не понимает, что такое транспонирование матрицы, желательно вначале вспомнить, а что это вообще такое, транспонировать пару матриц на листике, понять, как меняются индексы. И только потом, когда человек будет хорошо понимать, что такое транспонирование (а не просто цитировать по памяти куски конспекта и известных людей), можно переходить к формальному алгоритму, пусть даже записанному на языке "это туда, а это сюда" (для некоторых людей так просто может быть понятее)
E>А потом уже, когда будешь понимать что такое структуры данных, алгоритмы, как пишется программа, как она работает, тогда уже пора переходить к "программировать на С", ну и далее я с тобой согласен уже...
А это можно учить паралельно.
И когда обе части созреют, можно соединять.
Хотя иногда бывает и наоборот. и достаточно успешно...
Re[14]: массивы и матрицы в С++
От: Pavel Dvorkin Россия  
Дата: 13.05.09 10:36
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ты же, когда учишь студентов, наверное cin cout используешь, не вдаваясь в подробности их реализации? Если так, что чем vector хуже?


Не угадал. Я их Win32 учу. А там нет классов

E>IMHO, понятие "массив" оно довольно таки простое. И довольно таки высокоуровневое. И если воспринимать std::vector, как реализацию этого понятия, не вдаваясь в подробности, и не пользуясь итераторами и прочими особенностями STL, то им вполне можно пользоваться В УЧЕБНЫХ ЦЕЛЯХ во всяком случае.


Можно, но это кончится тем. что они тот код, что я привел, написать не смогут, и char* от char** отличать не будут...

E>IMHO, вообще С++ не самый удачный язык для обучения программированию. Лично мне ближе PASCAL,


+5. Мы и начинаем с Паскаля, на 1 курсе. C/C++ на 2-м.
With best regards
Pavel Dvorkin
Re[15]: массивы и матрицы в С++
От: Vzhyk  
Дата: 13.05.09 12:55
Оценка:
Pavel Dvorkin пишет:
>
> E>IMHO, вообще С++ не самый удачный язык для обучения программированию.
> Лично мне ближе PASCAL,
>
> +5. Мы и начинаем с Паскаля, на 1 курсе. C/C++ на 2-м.
Знаешь, раньше в БГУ на ФПМ начинали с ASM, затем Fortran, затем PL1.
Сейчас, не знаю, как, но студенты стали совсем дохлые, наверное у вас и
у них подходы одинаковые теперь.
Posted via RSDN NNTP Server 2.1 beta
Re[9]: массивы и матрицы в С++
От: Sergey Chadov Россия  
Дата: 13.05.09 13:13
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

SC>>Даже во времена раннего С++ для работы с матрицами не изобретали велосипед, а использовали BLAS.

PD>Тьфу на Вас еще раз!

Не надо на меня плевать, во первых все равно не доплюнешь, во-вторых, есть вероятность самому оказаться обплеванным.

>>Реализацией которого(сюрприз, сюрприз) и является boost::ublas. Так что, не будь это лабораторной работой, это было бы вполне оправдано хотя бы из-за того, что используется де-факто стандартный интерфейс.


PD>Ай-яй-яй. Уж никак без каких-то стандартных интерфейсов не обойтись, когда можно 3 строки написать! Скоро будем стандартные интерфейсы искать для реализации условного оператора, если так дальше пойдет. Совсем уж разучились простые вещи делать!


Если бы ты соизволил все таки прочитать мое сообщение(см. выделенное), вместо того, чтобы плеваться, было бы гораздо проще.
Библиотеки вообще созданы, чтобы облегчать программирование и реиспользовать удачные решения. И велосипед нужно изобретать когда точно уверен, что сделаешь лучше(хотя бы по нескольким значимым признакам), а не тогда, когда начинается обострение синдрома "not invented here". И даже в этом случае имеет смысл дизайн своего велосипеда делать как можно более похожим на общепринятый, если это конечно не сказывается на потребительских качествах.
А за код, который ты привел в неучебном проекте, особенно если его разрабатывает более 1 человека — казнь через рефакторинг.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[11]: массивы и матрицы в С++
От: Sergey Chadov Россия  
Дата: 13.05.09 15:10
Оценка:
Здравствуйте, neFormal, Вы писали:

SC>>А за код, который ты привел в неучебном проекте, особенно если его разрабатывает более 1 человека — казнь через рефакторинг.


F>мне всегда было интересно: почему за простой код с голыми указателями казнят, а за код с кучей шаблонов и парой десятков слоёв абстракции нет?.


Потому что ошибка в хитрозавернутом шаблоне обычно проявляется либо на этапе компиляции, либо при первом же тестировании.
А ошибка в использовании голых указателей имеет тенденцию проявляться у конечных пользователей. Более того, если код с голыми указателями будет редактировать человек, который не досканально знает его особенности(ну или автор через год-другой), то даже внеся корректное само по себе изменение он рискует словить крайне труднообнаружимый баг, который будет проявляться совсем в другом месте
А казалось бы лишние уровни абстракции имеют тенденцию пригождаться когда у заказчика просыпается фантазия
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[10]: массивы и матрицы в С++
От: jazzer Россия Skype: enerjazzer
Дата: 14.05.09 05:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А у меня стаж не менее 5 лет, а порядком побольше.


50?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[15]: массивы и матрицы в С++
От: Erop Россия  
Дата: 14.05.09 05:54
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Не угадал. Я их Win32 учу. А там нет классов

Тогда и аллокации многомерных Сишных массивов нет наверное, и матрицы транспонировать тоже не надо?..

PD>Можно, но это кончится тем. что они тот код, что я привел, написать не смогут, и char* от char** отличать не будут...

Почему?

E>>IMHO, вообще С++ не самый удачный язык для обучения программированию. Лично мне ближе PASCAL,

PD>+5. Мы и начинаем с Паскаля, на 1 курсе. C/C++ на 2-м.
Ну так либо ваши студенты должны ко второму курсу уже сами понимать, как матрицу транспонировать, либо рано вы с паскаля ушли...

Тут-то топикстартер не знает как матрицу транспонировать, а не как массив многомерный юзать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[15]: Я не спорю, но IMHO, это просто рано...
От: Pavel Dvorkin Россия  
Дата: 15.05.09 05:50
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Здравствуйте, Erop, Вы писали:


OV>[scip]

E>>Ну я в целом согласен, со всем тобой написанным, но, IMHO, если человек не умеет транспонировать матрицу, то ему рано учиться программировать на С, надо сначала просто "учиться программировать"...
OV>Если человек не понимает, что такое транспонирование матрицы, желательно вначале вспомнить, а что это вообще такое, транспонировать пару матриц на листике, понять, как меняются индексы. И только потом, когда человек будет хорошо понимать, что такое транспонирование (а не просто цитировать по памяти куски конспекта и известных людей), можно переходить к формальному алгоритму, пусть даже записанному на языке "это туда, а это сюда" (для некоторых людей так просто может быть понятее)

Угу. До конца жизни не забуду, наверное, как я сам в молодости впервые писал транспонирование матрицы. Теорию я знал совершенно верно, и написал в соответствии с теорией. Программа работала, но почему-то матрица какой была, такой и осталась. Вот примерный код (писалось, конечно, не на С)

for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
{
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}

With best regards
Pavel Dvorkin
Re[9]: массивы и матрицы в С++
От: Sni4ok  
Дата: 15.05.09 12:37
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Достаточно внимательно прочитать самый первый пост. Там только фразы "мне задали в школе/институте" не хватает. Но судя по характеру сообщения, так оно и есть.


это ваши догадки
Re[10]: массивы и матрицы в С++
От: OdesitVadim Украина  
Дата: 15.05.09 12:55
Оценка:
Здравствуйте, Sni4ok, Вы писали:

S>Здравствуйте, OdesitVadim, Вы писали:


OV>>Достаточно внимательно прочитать самый первый пост. Там только фразы "мне задали в школе/институте" не хватает. Но судя по характеру сообщения, так оно и есть.


S>это ваши догадки

уж нет. я сколько навиделся вопросов студентов/школьников, что обычно без труда вижу. Так что поставленный минус можете защитать себе
В качестве аргрументов за то, что это школьник/студент
— вопросы очень простые, базовые я бы сказал
— вопросы пронумерованы и по порядку возрастания сложности
и ключевая фраза

помогите пожайлуйста, а то зачет мимо пролетает!

Ещё догадки? Ещё сомнения?
Re[8]: массивы и матрицы в С++
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 15.05.09 13:45
Оценка:
Здравствуйте, Sni4ok, Вы писали:

A>>Во время учебы естественно нужно изобретать велосипеды.


S>в каком месте автор топика указал, что это является учебным заданием?


помогите пожайлуйста, а то зачет мимо пролетает!

Re[11]: массивы и матрицы в С++
От: Sni4ok  
Дата: 15.05.09 14:04
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Ещё догадки? Ещё сомнения?


дада то что вы повидали это очень хорошо- но это никак не изменяет того факта- что это ваши догадки, вы проицируете свою "нечёткую" логику на данное событие, хотя доказательств того, что это учебное задание у вас нет.
з.ы ну а минус- мне было не жалко вам поставить, можете и мне парочку влепить
Re[16]: Я не спорю, но IMHO, это просто рано...
От: vadimcher  
Дата: 15.05.09 19:25
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Угу. До конца жизни не забуду, наверное, как я сам в молодости впервые писал транспонирование матрицы. Теорию я знал совершенно верно, и написал в соответствии с теорией. Программа работала, но почему-то матрица какой была, такой и осталась. Вот примерный код (писалось, конечно, не на С)


PD>for(int i = 0; i < N; i++)

PD>for(int j = 0; j < N; j++)
PD>{
PD> temp = a[i][j];
PD> a[i][j] = a[j][i];
PD> a[j][i] = temp;
PD>}

Люблю я такие bug-и, просто обожаю...

А вот зайца кому, зайца-выбегайца?!
Re[17]: Я не спорю, но IMHO, это просто рано...
От: peterbes Россия  
Дата: 16.05.09 09:28
Оценка:
Здравствуйте, vadimcher, Вы писали:

V>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Угу. До конца жизни не забуду, наверное, как я сам в молодости впервые писал транспонирование матрицы. Теорию я знал совершенно верно, и написал в соответствии с теорией. Программа работала, но почему-то матрица какой была, такой и осталась. Вот примерный код (писалось, конечно, не на С)


PD>>for(int i = 0; i < N; i++)

PD>>for(int j = 0; j < N; j++)
PD>>{
PD>> temp = a[i][j];
PD>> a[i][j] = a[j][i];
PD>> a[j][i] = temp;
PD>>}

V>Люблю я такие bug-и, просто обожаю...


Ну,дык,цикл j<i будет верный,а в цикле j<N матрица отобразится дважды относительно диагонали,а рез-том будет исходная матрица
Re[18]: Я не спорю, но IMHO, это просто рано...
От: vadimcher  
Дата: 16.05.09 16:25
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Здравствуйте, vadimcher, Вы писали:


V>>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>>Угу. До конца жизни не забуду, наверное, как я сам в молодости впервые писал транспонирование матрицы. Теорию я знал совершенно верно, и написал в соответствии с теорией. Программа работала, но почему-то матрица какой была, такой и осталась. Вот примерный код (писалось, конечно, не на С)


PD>>>for(int i = 0; i < N; i++)

PD>>>for(int j = 0; j < N; j++)
PD>>>{
PD>>> temp = a[i][j];
PD>>> a[i][j] = a[j][i];
PD>>> a[j][i] = temp;
PD>>>}

V>>Люблю я такие bug-и, просто обожаю...


P>Ну,дык,цикл j<i будет верный,а в цикле j<N матрица отобразится дважды относительно диагонали,а рез-том будет исходная матрица


это ты к чему? я это и так вижу...

А вот зайца кому, зайца-выбегайца?!
Re[19]: Я не спорю, но IMHO, это просто рано...
От: peterbes Россия  
Дата: 16.05.09 18:08
Оценка:
Здравствуйте, vadimcher, Вы писали:


V>это ты к чему? я это и так вижу...


Ни к чему. Павел описАлся.
Re[20]: Я не спорю, но IMHO, это просто рано...
От: Pavel Dvorkin Россия  
Дата: 18.05.09 01:08
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Ни к чему. Павел описАлся.


Я же ясно написал — это плоды моего программистского творчества 2-3 месяца моей карьеры
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.