«..существует на свете нечто, к чему нужно стремиться всегда и что иногда даётся в руки, и это нечто - человеческая нежность» (с) Альбер Камю
Помогите,пожалуйста, с информатикой. (11 класс)
Нам дана матрица A и вектор строка C.
Мы вводим значение k - номер строки в матрице A.
Нам нужно вставить вектор строку С на место строки k, а все строки,начиная с k,нужно сдвинуть на одну позицию вниз. То есть в новой матрице получится на одну строчку больше, чем в исходной.

Вот мой неработающий код:


вроде строка С включается, но после неё идут не сдвинутые строки, а продублированная предыдущая...

помогите!! до сегодняшнего вечера
заранее спасибо)

@темы: Информатика

Комментарии
19.11.2007 в 20:41

На плечах гигантов, на спинах электронов
.stupid blond
ошибка вот в этом цикле:

For i = k To 11
For j = 1 To 10
A(i, j) = A(i - 1, j)
Next j
Next i


Подумай, как он работает.
В строку с номером i записывается строка с номером i-1.
Сдвигается счетчик, и в строку со следующим номером — i+1 — записывается строка с номером i, в которой уже сидит строка с номером i-1. ))) И т.д.
В итоге до конца записывается одна и та же строка.

Тут надо начинать с конца:

For i = 0 To k-1
For j = 1 To 10
A(11-i, j) = A(10-i, j)
Next j
Next i

попробуй так!
Я код не тестировала, но надеюсь, тут нет ошибки.
19.11.2007 в 21:45

там не совсем получается. там все равно одна строчка дублируется,но теперь только один раз)

19.11.2007 в 21:58

На плечах гигантов, на спинах электронов
о.леся эх... сейчас попробую прогнать...

19.11.2007 в 21:59

На плечах гигантов, на спинах электронов
о.леся да, там ошибка ))))
вот правильный цикл:

For i = 0 To (10 - k)
For j = 1 To 10
A(11 - i, j) = A(10 - i, j)
Next j
Next i

19.11.2007 в 22:39

Дилетант
спасибо тебе большое!!))
большое, пребольшое!!))))
19.11.2007 в 22:40

На плечах гигантов, на спинах электронов