|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
06.04.2009, 00:08 | #1 |
Регистрация: 09.02.2008
Сообщений: 7
|
использование 2х мерных массивов внутри функции или процедуры
Добрый вечер!! Замечательный форум, нашел здесь много интересных топиков.
Позвольте задать еще один вопрос от новичка в программировании.. допустим имеются двухмерные массивы, состоящие из integer: var a: array[1..4,1..3] of integer; b: array[1..6,1..8] of integer; как написать процедуру, изменяющую значения этих массивов, например, делающую зеркальное преобразование по вертикали 1 2 3 4 5 6 7 8 9 10 11 12 преобразуется в 4 3 2 1 8 7 6 5 12 11 10 9 причем определить размеры массива процедура должна сама, т е в качестве аргумента мы должны задать только имя массива: FlipArrayVertical(a); заранее спасибо за ответ! Обещаю, что когда вырасту в программировании, сам буду отвечать на вопросы от новичков! |
06.04.2009, 00:31 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Если хотите, чтобы процедура работала с массивами разного размера, то нужно создавать массив динамически.
Код:
Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
06.04.2009, 00:44 | #3 |
Регистрация: 09.02.2008
Сообщений: 7
|
Значит с каждым двухмерным массивом нужно обращаться как с массивом массивов!!! Спасибо большое за ценный совет!
А есть ли возможность в динамическом массиве начинать индексы массивов не с 0 а с 1? т е чтобы наш массив имел такой вид после его создания A[1..4,1..4] вместо A[0..3,0..3] Последний раз редактировалось kartalex; 06.04.2009 в 00:47. |
06.04.2009, 02:50 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
06.04.2009, 14:31 | #5 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
просто не используй нулевой индекс массива и все
тогда надо бедет делать SetLength(n+1) |
06.04.2009, 14:37 | #6 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
06.04.2009, 16:03 | #7 | ||
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
Цитата:
Цитата:
итого.. 92 байта.... пойду куплю еще одну планку оперативы.. хотя некоторые использую нулевой индекс массива, записывая в него длинну оного массива... кстати, что выгоднее: запрос длинны массива через length(ar) или же просмотр ar[0] с предварительно внесенным туда значением длины? ЗЫ: не учитывая необходимость каждый раз вручную увеличивать ar[0] при увеличении размерности массива Последний раз редактировалось Stilet; 06.04.2009 в 16:19. |
||
06.04.2009, 16:09 | #8 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Bayazet, сейчас это 92 байта, потом 92 Мегабайта..
Лучше сразу приучаться к стандартам. Иначе можно приобрести нехорошую привычку (не экономить память). Тем более, я действительно не вижу никаких неудобств при отсчете с нуля (правда, я сишник, но это дело не меняет). Цитата:
Более универсально исключает ошибку (при неверном задании размера в ar[0])
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] Последний раз редактировалось Sazary; 06.04.2009 в 16:11. |
|
06.04.2009, 16:20 | #9 |
Форумчанин
Регистрация: 08.12.2008
Сообщений: 156
|
ну да, я понимаю, что начинается все с малого. win3.1 тоже помещались на дискетку
но если есть программа, в которой уже написаны все процедуры-функции, в которых идет просмотр массива с первого эл-та? лично я бы не стал все это трогать (по принципу, не трогай - не завоняет) а к вопросу о том, что выгоднее: мне тоже удобнее юзать length(ar). но вопрос в том, насколько "дольше" выхолняется пересчет эл-тов массива, относительно запроса одного из элемента? |
06.04.2009, 16:27 | #10 | ||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Впрочем, если кому-то не жаль лишней памяти для своего удобства, то и вопрос снимается. Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача массивов в функции. Си | Alar | Общие вопросы C/C++ | 12 | 08.02.2011 13:25 |
Как изменить значения переменной внутри процедуры | kartalex | Помощь студентам | 5 | 20.11.2010 18:44 |
Форматирование текста внутри поля. как? или другие варианты... | smoky | Microsoft Office Access | 2 | 26.12.2008 19:09 |
использование массивов! | ...Оленька... | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.12.2008 11:02 |
вычислить по формуле с использованием функции или процедуры | St@FFord | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 10.06.2008 10:18 |