Читайте также:
|
|
Удалить строку с номером k.
Решение
Для того, чтобы удалить строку с номером k, необходимо:
Сдвинуть все строки, начиная с данной, на одну вверх. | |
Последнюю строку "обнулить", то есть всем элементам последней строки присвоить значение 0. |
Описание массивов оставим прежнее (для размерности n*m). Также в программе будем использовать процедуру вывода Print1 из предыдущего параграфа. Будем выводить на экран сначала все строки, а второй раз, после удаления, на одну меньше. Теперь опишем процедуру удаления строки с данным номером:
Procedure Delete(k1: Integer; Var x: dmyarray);
Var i, j: Integer;
Begin
For i:=k1 To n-1 Do
For j:=1 To m Do
x[i,j]:=x[i+1,j];
For j:=1 To m Do x[n,j]:=0
End;
Примечания:
1. Задачу об удалении строки с заданным условием можно решить этим же способом, достаточно только найти её номер, а в случае отсутствия такой строки можно просто сообщить об этом и закончить программу.
2. Ещё одну задачу можно решить, используя данную процедуру - удаление всех строк, которые отвечают некоторым свойствам - просматриваем строки от последней до первой, если строка удовлетворяет требованиям, то удаляем её и переходим к следующей, иначе сразу переходим. Для эффективного вывода надо ввести счётчик, который учитывает количество удалённых строк, а при выводе изменённого массива передаём процедуре Print1 значение n-k, где k - это счётчик.
Дата добавления: 2015-08-17; просмотров: 44 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 12 | | | ЧЕМПИОНАТ ПЕРМСКОГО КРАЯ ПО ДРЭГ-РЕЙСИНГУ 2015г. |