mas:array of integer;
...
SetLength(A,10)
?
или это как-то сложно реализуется?
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
динамические массивы, с++ |
мисс_граффити |
Сообщение
#1
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
есть ли аналог для
mas:array of integer; ? или это как-то сложно реализуется? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#2
|
Гость |
Если C++ , то смотри в сторону
std::vector<int> mas; |
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
спасибо, буду пробовать.
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
мисс_граффити |
Сообщение
#4
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
в результате попыток почитать толстую книжку вопросов возникло еще больше
Архангельский предлагает для двумерных массивов делать так: double *mas=new double[8][10] компилятор сильно ругается, типа не может преобразовать "double(*)[10]" в double. вариант double[8,10] ему очень нравится... но что происходит дальше - я не поняла. что можно сделать? идеи такие были: 1. работать с длииинным одномерным массивом, а при выводе в стринггрид просто разбивать по 8 элементов. 2. создать массив из указателей, где каждый из указателей отсылает к массиву. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#5
|
Гость |
Цитата компилятор сильно ругается, типа не может преобразовать "double(*)[10]" в double. Прав 100%Вот так надо бы: #include <iostream.h>(для TC++ 3.0) Цитата вариант double[8,10] ему очень нравится... но что происходит дальше - я не поняла. Это СОВСЕМ не то, что ты подумала: в С есть операция "запятая", которая возвращает результат ПОСЛЕДНЕЙ произведенной операции, то естьdouble[8, 10]раскладывается на операцию (8, 10) результатом которой будет 10, и затем эта 10-ка подставляется в double[...], итого имеем double[10], что НЕ является матрицей, это обычный одномерный массив... |
мисс_граффити |
Сообщение
#6
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
то есть фактически мой второй вариант...
рассматриваем матрицу как одномерный массив, эл-тами которого являются одномерные массивы. тот же array of array по сути... спасибо, в общем. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
LPBoy |
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
в результате попыток почитать толстую книжку вопросов возникло еще больше Архангельский предлагает для двумерных массивов делать так: double *mas=new double[8][10] Серьезно? Запусти эту книгу с балкона! Правильно так: double (*arr2d)[10] = new double[8][10]; Хотя если размеры константные, то лучше использовать обычный статический массив. double arr[8][10]; В варианте с динамическим массивом первая размерность может быть и не константной. int n = 8; Если надо, чтобы обе размерности были неконстантами, то можно: - сделать так как сказал volvo, но с такими массивами столько мороки - использовать vector<vector<int> > / boost::multi_array - написать свой (перегрузить operator()(int rows, int cols)) |
volvo |
Сообщение
#8
|
Гость |
LPBoy, давай не будем превращать ХОТЯ БЫ ЭТОТ форум в ту заумность, куда скатились два параллельных форума! Достаточно попросить на любом из них найти максимум из двух чисел, и НАЧИНАЕТСЯ!!!
"Используй stl" "boost рулит" "Паттерны читай" "А можно вообще это сделать метапрограммированием/на этапе компиляции" (нужное подчеркнуть) Это - форум для начинающих, понимаешь? Те, кто задает сюда вопросы не поймут stl/boost, для этого надо сначала разобраться в простейшем синтаксисе языка... |
Гость |
Сообщение
#9
|
Гость |
LPBoy, давай не будем превращать ХОТЯ БЫ ЭТОТ форум в ту заумность, куда скатились два параллельных форума! Достаточно попросить на любом из них найти максимум из двух чисел, и НАЧИНАЕТСЯ!!! "Используй stl" "boost рулит" "Паттерны читай" "А можно вообще это сделать метапрограммированием/на этапе компиляции" (нужное подчеркнуть) Это - форум для начинающих, понимаешь? Те, кто задает сюда вопросы не поймут stl/boost, для этого надо сначала разобраться в простейшем синтаксисе языка... Ладно, извини. Но ведь я, в основном, и говорил о "простейшем синтаксисе языка" - как объявить двумерный статический массив и т.п. Просто в конце выскользнуло... Прошу прощения еще раз... |
LPBoy |
Сообщение
#10
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Сорри, Гость это был я. Забыл залогиниться.
Кстати, насчет "не поймут stl" как понимать твой первый пост в этом топике... ;) Сообщение отредактировано: LPBoy - |
мисс_граффити |
Сообщение
#11
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
мне наоборот интересно
собственно, и спрашиваю не с целью "напишите за меня лабораторку". хочется разобраться. почти не в тему. а есть языки, где двумерные массивы по сути не array of array, а именно матрицы? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Гость |
Сообщение
#12
|
Гость |
|
klem4 |
Сообщение
#13
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата именно матрицы? А что по твоему матрица ? Массив массивов. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#14
|
Гость |
Цитата как понимать твой первый пост в этом топике... ;) Объясняю... Я предложил, естественно, STL, ибо на работе ОЧЕНЬ активно его использую, и мне-то как раз было бы гораздо легче (если человек понимает, что я ему буду советовать) объяснить ему именно с использованием STL и/или boost-а. НО!!! Если мое предложение было проигнорировано, и в ответ я получаюЦитата компилятор сильно ругается, типа не может преобразовать "double(*)[10]" в double. , то я просто сделал соответствующие выводы... Значит, уровень знания языка (или используемый компилятор) ПОКА не позволяет использовать STL... Вот и все... |
мисс_граффити |
Сообщение
#15
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
volvo, все было не так.
то предложение было не проигнорировано, а использовано. но интересно же и с другими вариантами разобраться! я попыталась пользоваться рекомендованной преподавателем литературой. получилось плохо. ...а уровень знания языка действительно нулевой. и компилятор здесь ни при чем. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
LPBoy |
Сообщение
#16
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
|
volvo |
Сообщение
#17
|
Гость |
LPBoy А в паскале оба варианта равнозначны... Синонимы просто...
|
мисс_граффити |
Сообщение
#18
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
volvo, синонимы, но по сути они чем являются?..
то есть матрица - эта такая фигнюшка, которая обладает определенными св-вами... ну, ранг, например. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#19
|
Гость |
По сути паскалевская матрица:
Type X = array[1 .. n, 1 .. n] of Integer; полностью аналогична Type X = Array[1 .. n] of Array[1 .. n] Of Integer; То есть матрица - массив строк... А вот в Фортране, например, матрица - это массив столбцов... Цитата то есть матрица - эта такая фигнюшка, которая обладает определенными св-вами... А это здесь ни при чем... Ранг - это математическое понятие. А средствами языка программирования я могу матрицу и списком значений представить, и все равно у нее будет такое свойство как ранг. Способ представления роли не играет, важно, ЧТО мы представляем...ну, ранг, например. |
Текстовая версия | 11.01.2025 8:01 |