Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2010, 17:41   #11
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Цитата:
Это возможно только в том случае, если память была выделена правильно!! (New в данном случае не поможет! Надо GetMem юзать. Ну и плюс контролировать, чтобы смещение не "ушло" за пределы выделенной памяти!
Это работает отлично как для статичесских так и для динамичесских массиво, как параметр передаем адресс а дальше используем арифметику над указателями!
Цитата:
А вообще, зачем такие сложности то?!
Знаете вариант попроще как передать массив любой размерности в подпрограмму?
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 06.07.2010, 19:15   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Это работает отлично как для статичесских так и для динамичесских массиво
да ну?! И если, как в примере выше, type Matrix : ^integer;
а новый объект создаётся как New(C) ?! Не боитесь, что New выделит четыре байта? Или для работы с указателями всё равно, куда указатель указывает и сколько памяти было выделено?!!!

Цитата:
Знаете вариант попроще как передать массив любой размерности в подпрограмму?
1) откуда взялась фраза "любой размерности" ?
2) да, знаю.
Обычный MyFunc(var C : TypeArray)... передаст именно указатель, без всяких извращений.

Последний раз редактировалось Serge_Bliznykov; 06.07.2010 в 19:18.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.07.2010, 20:13   #13
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Короче говоря, можно финальную версию кода? Уж простите за мою глупость и тупость.
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.07.2010, 20:35   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Короче говоря, можно финальную версию кода?
можно.
сформулируйте, пожалуйста, только:
1) почему Вы работаете с TurboPascal ? Не лучше ли перейти на Delphi ?!
2) какого размера могут быть массивы? Реально произвольного? Или можно ограничиться максимально n <= 100 и m <= 100 ?
3) процедура Add, это, конечно, хорошо, но скажите, а массивы A и B откуда заполняются?!! Случайными числами?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.07.2010, 22:02   #15
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

1. Видите ли, я работаю и с турбиком, и с делфи. Но мне проще сначала научиться что либо делать в турбике, а потом в делфи.
2. Собственно, в предыдущих постах приведен модуль для перемножения матриц и программа с его использованием. Они не рабочие, их нужно подправить. Если вам не трудно.
3. Процедура add в качестве параметров получает три двумерных массива, первые два перемножает, и результатом является третий массив.
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.07.2010, 22:59   #16
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Цитата:
да ну?! И если, как в примере выше, type Matrix : ^integer;
а новый объект создаётся как New(C) ?! Не боитесь, что New выделит четыре байта? Или для работы с указателями всё равно, куда указатель указывает и сколько памяти было выделено?!!!
Я имел ввиду про передачу массива в подпрограмму там до фени как обявлен массив, чуток непоняли друг дуруг ну и ладно))

Цитата:
1) откуда взялась фраза "любой размерности" ?
Любой размерности имелось ввиду без разници какой массив передавать одномерный, двухмерный, трехмерный.

Цитата:
2) да, знаю.
Обычный MyFunc(var C : TypeArray)... передаст именно указатель, без всяких извращений.
Я про указатель и имел ввиду)

П.С. И еще ответ ананому поступил в отзывы, похоже от автора))
Цитата:
Насколько же вы тупы. Я пишу про двумерники и типы, а вы про указатели
Во первых тупее меня только сибирскии валянки спору нет) Во вторых если не понимаете "силу" указателей не стоит спешить с выводами, это один из способов передать массив в подпрограмму! Или есть еще кто-то кто со мной не согласен?)
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать обьект в Delphi, который содержит в качестве поля двумерный массив данных. Nastena_12_ Помощь студентам 0 06.12.2009 22:17
TextBox в качестве параметра функции/процедуры Голованов Д. Microsoft Office Excel 6 01.12.2009 10:38
Массив в качестве параметра DeKot Общие вопросы Delphi 6 15.10.2009 22:32
Пользовательская функция с диапазоном в качестве параметра SanSanblch Microsoft Office Excel 2 29.05.2009 17:37