| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal] Двумерные массивы, матрицы, процедуры |
| Автор: SkipperOk 15.11.2013, 21:22 | ||
| Долго ломаю голову и никак ничего не влезет. Нужно написать программу, которая выводит те строки матрицы, элементы которых образуют геометрическую прогрессию, при этом используя процедуры... матрица произвольная, имеет размер N на M. Значение матрицы пользователь сам вводит после запуска. мои наработки:
|
| Автор: darkart 16.11.2013, 00:18 | ||
|
| Автор: SkipperOk 17.11.2013, 22:44 | ||||||||||||||
Отлично! Спасибо вам огромное! Но в самой программе мне непонятно, что значит
можно ли как-то его под это переделать типа этого
дальше
- это строки,
- столбцы?
Немного непонятная функция...
и можно ли переделать программу так, чтобы она у меня запрашивала размерность матрицы? |
| Автор: darkart 17.11.2013, 23:08 | ||
N, M - максимальный размер матрицы( N - строк, M - столбцов );
Переделать - можно. rows - количество используемых строк матрицы, cols - количество используемых столбцов. Непонятная функция, проверяет, являются ли элементы строки матрицы геометрической прогрессией, для чего вычисляется знаменатель прогрессии - по первым 2 элементам, если один из двух первых элементов - 0, то либо невозможно вычислить знаменатель - деление на 0, или первый член - 0, что не верно по определению прогрессии. Далее считаю, что если элемент 1, то это не прогрессия. Если элементов 2 и они не нули, то это прогрессия. res - переменная логического типа - результат функции. scale - знаменатель прогрессии, равный отношению второго элемента на первый. Для элементов, начиная с третьего проверяем, равняется ли отношение текущего элемента к предыдущему знаменателю прогрессии scale. 1e-4 - точность вычисления. Про переделать, чтобы спрашивала - заведи 2 переменных( константы N,M - максимально возможный размер матрицы ), попроси пользователя ввести их, прочитай, и передавай в процедуры/функции на места аргументов rows и cols. |