Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Процедуры https://zx.oberon.org/forum/viewtopic.php?f=79&t=317 |
Страница 1 из 3 |
Автор: | Len [ 24 май 2017, 02:53 ] |
Заголовок сообщения: | Процедуры |
Я написал процедуру умножения двух матриц (поправьте, если что не так): Код: "OBERON"
Как в эту процедуру передать массивы Matrix1 и Matrix2? |
Автор: | Zorko [ 24 май 2017, 20:57 ] |
Заголовок сообщения: | Re: Процедуры |
Вот так, по идее: Код: "OBERON"
Резервирование памяти под массив таким способом: Код: "OBERON"
Да, скорее всего, функцию LEN() нельзя использовать при объявлении, т.к., насколько я помню, её результат не является константным выражением. P.S. А вот так матрицы нельзя объявить? Код: "OBERON"
|
Автор: | ivan_denisov [ 25 май 2017, 04:02 ] |
Заголовок сообщения: | Re: Процедуры |
Для добавления единицы лучше использовать INC(Column2) Объявление долбно быть через двоеточие: Код: "OBERON"
В Компонентном Паскале так нельзя объявить, согласен с Олегом. Надо так: Код: "OBERON"
также названия переменных всегда с маленькой буквы лучше писать, чтобы не путать с названиями типов и процедур. |
Автор: | Len [ 25 май 2017, 16:11 ] |
Заголовок сообщения: | Re: Процедуры |
Цитата: Код: "OBERON"
Это передача ссылки на масивы или копирование их содержимого? |
Автор: | Zorko [ 25 май 2017, 19:34 ] |
Заголовок сообщения: | Re: Процедуры |
Ссылки. А без VAR - будет копирование содержимого. |
Автор: | Len [ 26 май 2017, 03:09 ] |
Заголовок сообщения: | Re: Процедуры |
А как сделать так, чтобы процедура возвращала массив, если она расположена в отдельном модуле? |
Автор: | Zorko [ 26 май 2017, 21:04 ] |
Заголовок сообщения: | Re: Процедуры |
Код: "OBERON"
Или так: Код: "OBERON"
|
Автор: | Saferoll [ 28 май 2017, 12:21 ] |
Заголовок сообщения: | Re: Процедуры |
Немного не то теме. Замечу, что в Обероне, начиная с Оберона2, есть цикл FOR. Он, конечно, имеет недостатки (о чем я уже написал много постов), и иногда употребляется там, где не нужно. Но в данном случае происходит перебор всех строк и столбцов в заранее определенных границах, поэтому здесь применение FOR уместно. И программа станет более похожа на математическую формулу умножения матриц, где тоже явно заданы индексы и границы. Правда, небольшое отличие будет из-за индексации массивов с нуля, в то время как в математике принято индексировать строки и столбцы матрицы с 1. |
Автор: | Len [ 29 май 2017, 10:56 ] |
Заголовок сообщения: | Re: Процедуры |
Я хочу передать массив в процедуру, обработать в ней, а затем вывести. Почему не работает такой код: Код: "OBERON"
(компилирую на Black Box). |
Автор: | S.Atan [ 29 май 2017, 17:04 ] |
Заголовок сообщения: | Re: Процедуры |
Код: "OBERON"
Странное что то должно произойти!!! matrixF: ARRAY OF ARRAY OF INTEGER а возвращаете POINTER Да ещё передача по ссылке? |
Страница 1 из 3 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |