Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка вторая.doc
Скачиваний:
88
Добавлен:
05.06.2015
Размер:
1.66 Mб
Скачать

Задачи на удаление элементов:

  1. Если в массиве есть равные строки, то удалите их. Если в получившемся после удаления строк массиве обнаружен столбец, каждый элемент которого больше на единицу соответствующего элемента в предыдущем столбце, то удалите его. Если такого столбца или строки нет, то вывести сообщение об этом.

  2. Удалите строки, содержащие ноль, а затем столбцы, в которых только отрицательные элементы. Если такого столбца или строки нет, то вывести сообщение об этом.

  3. Удалите строки, содержащие более одного максимального элемента, а затем столбцы, сумма элементов которых равна заданному числу. Если такого столбца или строки нет, то вывести сообщение об этом.

  4. Удалите строку и столбец, на пересечении которых находится второй, пятый и седьмой встреченные отрицательные элементы. Если такого столбца или строки нет, то вывести сообщение об этом.

  5. Удалить все строки и столбцы, на пересечении которых стоят отрицательные элементы. Если такого столбца или строки нет, то вывести сообщение об этом.

  6. Если в столбцах, встретился элемент, равный сумме первых двух элементов текущего столбца, то удалите строки, в которых они находятся. Удалите столбцы, в которых первый элемент нулевой. Если такого столбца или строки нет, то вывести сообщение об этом.

  7. Удалите все столбцы, в котором находится минимальный элемент, а затем строки, в которых больше одного максимального элемента. Если такого столбца или строки нет, то вывести сообщение об этом.

  8. Удалить строки с номерами, кратными k, и столбцы, в которых нет отрицательного элемента. Если такого столбца или строки нет, то вывести сообщение об этом.

  9. Удалить все столбцы, с номерами, оканчивающимися нулем, а затем строки, в которых на четных местах находятся нули, а на нечетных - единицы. Если такого столбца или строки нет, то вывести сообщение об этом.

  10. Удалите строки, находящиеся между первым минимальным и последним максимальным элементами текущего столбца. В оставшихся строках удалить столбцы, в которых встретился максимальный отрицательный элемент текущей строки. Если такого столбца или строки нет, то вывести сообщение об этом.

  11. Удалите столбцы, в которых есть заданный элемент, а затем строки, сумма элементов первой половины которых больше суммы элементов второй половины. Если такого столбца или строки нет, то вывести сообщение об этом.

Файл сохраните на дискете, листинг сдайте учителю для оценки.

Перестановка элементов массива.

Рассмотрим задачу о перестановки двух столбцов (аналогично и для строк), так как многие задачи используют именно это действие.

Задача. Поменять местами столбцы с номерами m1 и m2.

Эту задачу можно реализовать несколькими способами. Мы составим две процедуры, причем процедура обмена столбцами содержит в себе процедуру обмена значениями двух переданных ей ячеек массива. Рассмотрите их.

Procedure Swap2(Var X : MyArray2; n, m, m1, m2 : integer;); Var   i, j : integer; Procedure Swap1(Var elem1, elem2 : integer); Var   z : integer; Begin   z:=elem1;   elem1:=elem2;   elem2:=z; End; Begin   if((m1<1) or (m1>m)) or ((m2<1) or (m2>m))     then       writeln('?')     else       for i := 1 to m do         Swap1(X[i, m1], X[i, m2]); End;

Вопрос. Какое сообщение должно быть выведено оператором writeln вместо знака вопроса и почему?

Задание. Выберите с учителем задачи из предложенного списка. Решите их, применяя подпрограммы, приготовьте для проверки 3-4 различных теста.