0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
||||||
1 | ||||||
Округлить элементы матрицы до ближайшего, кратного заданному для каждой строки.28.01.2014, 12:24. Показов 2016. Ответов 24
Метки нет (Все метки)
Подскажите пожалуйста, не понимаю, в чем проблема, при запуске программа наглухо виснет.
Собственно, дано 6 столбцов по 14 строк, первый из которых являет сбой кратность, остальные 5 - числа. Необходимо установить, кратны ли числа заданному числу из первого столбца, если да, то ничего не меняется, если нет, то необходимо уменьшить или увеличить число(в ближайшую сторону) и добавить примечание. До примечания еще не добрался, пытаюсь сделать первую часть.
0
|
28.01.2014, 12:24 | |
Ответы с готовыми решениями:
24
Для каждой матрицы найти наибольшие элементы каждой строки Из всех положительных элементов матрицы извлечь квадратный корень и округлить до ближайшего целого Массив: Для каждой строки заменить все элементы матрицы меньшие среднего арифметического этой строки на нулевое значение. Определить номера столбцов, которые содержат нулевые элементы для каждой строки матрицы |
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
28.01.2014, 12:38 | 2 |
Вы ведь в цикле (Do While) никак не меняете массив c() - конечно оно будет бегать по кругу пока задачу не снимете.
0
|
Модератор
|
||||||
28.01.2014, 12:39 | 3 | |||||
не знаю, какие должны быть данные, но проверка на цикл не помешает
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 12:41 [ТС] | 4 |
А каким образом его можно поменять?
От меня постоянно ускользает понимание определения ячеек как элементов массива и соответственно доступ к ним. Проблема еще так же в том, что конкретно в этом случае, у меня сами цифровые значения начинаются не с А(1,1), а с А (2,1)
0
|
Модератор
|
||||||
28.01.2014, 12:47 | 5 | |||||
и почему-то деление не на столбик, а на ячейку
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 12:48 [ТС] | 6 |
Да, действительно, слишком много циклов...
Очень прошу объяснить, каким образом можно сделать, чтобы соотносилось значение каждое значение С с каждой ячейкой. И как уменьшить количество циклов. Абсолютно запутался. Прилагаю само задание для наглядности.
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 13:16 [ТС] | 7 |
Деление происходит на значение ячейки, в самом начале же прописывалось, что все значения в ячейках привожу к числовым
Добавлено через 26 минут Объясните пожалуйста, каким образом надо менять массив с, чтобы это все дело на зацикливалось и не отваливалось в итоге?
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
28.01.2014, 13:26 | 8 |
Ну как - если Вы проверяете Do While c(k, l) > 0 значит нужно менять переменную k, чтоб эти проверяемые значения менялись.
Т.к. в данном случае эта переменная внешняя - значит тут нужна другая переменная. В задачу целиком не вникал.
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 13:32 [ТС] | 9 |
Так l меняется до n.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
28.01.2014, 13:40 | 10 | |||||
Где тут меняются значения этого массива?
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 13:41 [ТС] | 11 |
Эм. Нигде.
Но как они должны меняться, я тоже не понимаю, к сожалению. Объясните пожалуйста, если Вам не трудно
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 13:49 [ТС] | 13 |
Выше по теме смотрите, уже был приложен.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
28.01.2014, 13:52 | 14 |
Обычно в цикле do while меняют одну переменную (или обе в данном примере), чтоб дойти до того момента, пока значение массива не изменится согласно критерию.
Чтоб не зациклится - можно добавить аварийный выход, как уже выше подсказано.
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 13:54 [ТС] | 15 |
Да. Добавил аварийный выход, выполнение прерывается, программа не работает.
Это не тот результат,который нужен.
0
|
Заблокирован
|
||||||
28.01.2014, 14:10 | 16 | |||||
Сообщение было отмечено Kolesnichkov как решение
Решение
Проверяй:
1
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 14:13 [ТС] | 17 |
Да, все работает, но с одним НО. При повторном нажатии кнопки, все ячейки окрашиваются в желтый цвет.
Огромное Вам спасибо.
0
|
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 31
|
|
28.01.2014, 14:19 [ТС] | 19 |
Еще подскажите пожалуйста, там необходимо, если значение меняется, добавить примечание. Но я не понимаю, каким образом он будет видеть предыдущее значение ячейки. Как это реализуется?
0
|
Заблокирован
|
||||||
28.01.2014, 14:35 | 20 | |||||
0
|
28.01.2014, 14:35 | |