Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):
Составить программу заданной обработки матрицы целых чисел. В процессе обработки использовать перестановки элементов внутри массива, не создавая новых массивов. Заполнение исходного массива организовать с помощью генератора случайных чисел. Исходный и обработанных массив выводить на экран.
Во всех вариантах работать с ЗАДАННОЙ матрицей, не создавая дополнительных массивов и матриц (кроме случаев, где это предусмотрено вариантом задания).
Варианты заданий
№ | Постановка задачи |
1 | Даны матрица $A(n\ •\ (n\ +\ 1))$ и два одномерных массива $X\ =\ (x_{1},\ …,\ x_{n + 1})$ и $Y\ =\ (y_{1},\ …,\ y_{n + 1})$, а также натуральные числа $p,\ q$. Образовать новую матрицу размера $(n\ +\ 1)\ •\ (n\ +\ 2)$ вставкой после строки с номером $p$ матрицы $A$ новой строки с элементами $x_{1},\ x{2},\ …,\ x_{n + 1}$ и последующей вставкой после столбца с номером $q$ нового столбца с элементами $y_{1},\ y{2},\ …,\ y_{n + 1}$. |
2 | Даны массив $A\ =\ (a_{1},\ a_{2},\ …,\ a_{10})$ и матрица $B(n\ •\ n)$. Заменить нулями в матрице те элементы с четной суммой индексов, для которых имеются равные среди элементов массива $A$. |
3 | Даны массив $A\ =\ (a_{1},\ a_{2},\ …,\ a_{10})$ и матрица $B(n\ •\ n)$. Элементы первой строки матрицы упорядочены по возрастанию. Получить новую матрицу размера $n\ •\ (n\ +\ 1)$, вставив в исходную матрицу новый столбец с элементами массива $A$ так, чтобы упорядоченность первой строки матрицы не нарушилась. |
4 | Дана матрица $A(n\ •\ m)$. Получить матрицу, получающуюся из данной: перестановкой столбцов: первого с последним, второго с предпоследним и т.д. |
5 | Дана матрица $A(n\ •\ m)$ и целые числа $p$ и $q$. Преобразовать матрицу $A$ так, чтобы строка с исходным номером $p$ непосредственно следовала за строкой с исходным номером $q$, сохранив порядок следования остальных строк. |
6 | Дана матрица $A$ размерности $n\ •\ n$. Найти и вывести ту строку в этой матрице, которая содержит наибольшее количество четных чисел. |
7 | Дана матрица $A(n\ •\ m)$. Получить матрицу, получающуюся из данной: перестановкой строк — первой с последней, второй с предпоследней и т.д. Назовем допустимым преобразование матрицы перестановку двух строк и двух столбцов. |
8 | Дана квадратная матрица порядка $n$. С помощью допустимых преобразований добиться того, чтобы один из элементов матрицы, обладающий наименьшим по модулю значением, располагался в правом нижнем углу матрицы. |
9 | Дана матрица $A(n\ •\ m)$. Скорректировать эту матрицу, удалив из нее строки и столбцы, на пересечении которых расположен элемент с наибольшим по модулю значением. |
10 | Дана матрица $A(n\ •\ n)$, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей. |
11 | Сформировать массив из отрицательных элементов той строки матрицы $A$ размерности $n\ •\ n$, где обнаружен наименьший элемент этой матрицы. |
12 | Сформировать массив из положительных элементов той строки матрицы $A$ размерности $n\ •\ n$, где обнаружен наибольший элемент этой матрицы. |
13 | С помощью матрицы $A(2\ •\ n)$ в плоскости задано $n$ точек так, что $a_{1,j},\ a_{2, j}$ — координаты $j$-й точки. Точки попарно соединены отрезками. Найти длину наибольшего отрезка и вывести его координаты. |
14 | Дана матрица $A(n\ •\ n)$. Получить $x_{1}x_{n}\ +\ x_{2}x_{n-1}\ +\ …\ +\ x_{n}x_{1}$, где $x_{k}$ — наибольшее значение элементов $k$-го столбца данной матрицы. |
15 | Дана матрица $A(n\ •\ n)$ многоразрядных целых чисел. Найти номер строки и номер столбца, на пересечении которых находится элемент матрицы, в значении которого больше всего расположено разрядов. |
16 | Удалить из матрицы $A(m\ •\ n)$ строку, содержащую наибольшее количество нулевых элементов. |
17 | Дана матрица $A(n\ •\ m)$. Скорректировать эту матрицу, удалив из нее строку и столбец, на пересечении которых расположен элемент с наибольшим по модулю значением. |
18 | Дана матрица $A(n\ •\ n)$. Сформировать одномерный массив из положительных элементов этой матрицы, расположенных выше главной диагонали. |
19 | Дана матрица $A(n\ •\ n)$. Сформировать одномерный массив из отрицательных элементов этой матрицы, расположенных ниже главной диагонали. |
20 | Дана целочисленная матрица $A(n\ •\ n)$. Найти наименьшие элементы в каждой строке этой матрицы и найти количество четных чисел среди них. |
21 | Дана целочисленная матрица $A(n\ •\ n)$. Найти наибольшие элементы в каждом столбце этой матрицы и найти количество нечетных чисел среди них. |
22 | Дана целочисленная матрица $A(n\ •\ n)$. Элементы тех строк матрицы $A$, которые начинаются с отрицательного элемента, записать в отдельный одномерный массив и его вывести. |
23 | Дана целочисленная матрица $A(n\ •\ n)$. Все элементы тех строк, у которых на главной диагонали обнаружен нулевой элемент, заменить на элементы из массива $B\ =\ (b_{1},\ …,\ b_{n})$. |
24 | Дана целочисленная матрица $A(n\ •\ n)$. Все элементы тех строк, у которых обнаружено более одного отрицательного элемента, заменить на элементы из массива $B\ =\ (b_{1},\ …,\ b_{n})$. |
25 | Дана целочисленная матрица $A(n\ •\ n)$. Все элементы тех столбцов, у которых обнаружено менее $10$ положительных элементов, заменить на элементы из массива $B\ =\ (b_{1},\ …,\ b_{n})$. |
Лабораторная работа №6 предполагает написание программы на языке Pascal. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.
Образец выполнения (вариант №10)
Условие задания
Дана матрица $A(n\ •\ n)$, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.
Реализация задачи на языке Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | program Lab6_variant10; // заголовок программы // раздел описания констант const N = 7; // количество строк и колонок матрицы // раздел описания пользовательских типов данных type matr = array[1..N, 1..N] of integer; // тип - матрица целых чисел /* Дана матрица A(n × n), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.*/ {раздел объявления переменных} var a: matr; // матрица размером 7 x 7 i, j: byte; // счетчики циклов и индексы элементов матрицы i_max, j_max: byte; // индексы наибольшего диагонального элемента i_center: byte; // индекс элемента, стоящего на пересечении диагоналей tmp: integer; // вспомогательная переменная для обмена 2-х элементов матрицы // начало главного блока программы begin // выводим информацию об авторе, №варианта и кратко условие задачи writeln; writeln(' Автор - ?????? ?.?., студент гр.????'); writeln(' Вариант №10'); writeln('Дана матрица A(n x n), все элементы которой различны.'); writeln('Найти наибольший элемент среди стоящих на главной и побочной диагоналях'); writeln('и поменять его местами с элементом, стоящим на пересечении этих диагоналей.'); writeln; {$R+} // включение контроля индексов при обращении к элементам матрицы randomize; // для генерации новой последовательности случайных чисел writeln('Исходная матрица имеет вид: '); // пробегаем построчно по всем элементам матрицы for i := 1 to N do begin for j := 1 to N do begin a[i, j] := -500 + random(1001); // генерация случ.числа на отрезке [-500; 500] write(a[i, j]:7); // выводим на экран текущее значение элемента матрицы end; // чтобы матрица выглядела красиво - печатаем каждый ряд элементов с новой строки консоли writeln; writeln; end; // ищем наибольший элемент, стоящий на главной диагонали i_max := 1; for i := 2 to N do if(a[i, i] > a[i_max, i_max]) then i_max := i; j_max := i_max; // у элемента, стоящего на глав.диагонали, равны индексы // продолжаем искать наибольший, проверяя элементы, стоящие на побочной диагонали for i := 1 to N do if(a[i, N - i + 1] > a[i_max, j_max]) then begin i_max := i; // запомнили новый индекс, отвечающий за строки j_max := N - i + 1; // запомнили новый индекс, отвечающий за колонки end; writeln; // выводим на экран пользователю вспомогательную полезную информацию об обрабатываемых элементах writeln('Наибольший элемент среди диагональных элементов: A[', i_max, ', ', j_max, '] = ', a[i_max, j_max]); i_center := (N div 2) + 1; // определяем индексы "центрального" элемента матрицы writeln('Элемент, стоящий на пересечении обеих диагоналей: A[', i_center, ', ', i_center, '] = ', a[i_center, i_center]); writeln; // меняем местами наибольший диагональный элемент с центральным элементом матрицы tmp := a[i_max, j_max]; a[i_max, j_max] := a[i_center, i_center]; a[i_center, i_center] := tmp; writeln; // еще раз выводим построчно в табличном виде на экран все элементы обработанной матрицы writeln('Обработанная матрица имеет вид: '); for i := 1 to N do begin for j := 1 to N do write(a[i, j]:7); writeln; writeln; end; {$R-} // выключение контроля индексов readln; // задержка программы, чтобы можно было просмотреть результат end. // конец главного блока программы |
Результат работы программы
Стоимость заказа работы
Стоимость, руб. | Примечание | |
Программа | $200$ | |
Блок-схема | $200$ | по вашему желанию |
Описание алгоритма | $200$ | по вашему желанию |
Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более 10 минут.
Добавить комментарий