Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические материалы по программированию.doc
Скачиваний:
19
Добавлен:
03.11.2018
Размер:
636 Кб
Скачать

4. Работа с матрицами.

Пример 4.1

Задана матрица, состоящая из 6 строк и 7 столбцов. Поменять местами элементы первого и последнего столбца.

Листинг программы.

Вариант 1

program Pr4_1;

{$APPTYPE CONSOLE}

uses SysUtils;

type matr_num=array[1..6,1..7] of integer;

var matr:matr_num;

i,j:integer;

m,n:integer;

{------------- Выводим матрицу на экран ­---------------}

procedure smotr(matr1:matr_num);

begin

for i:=1 to m do

for j:=1 to n do

begin

write(matr1[i,j]:6);

if j=n then writeln;

end;

end;

{------------- Вводим элемент матрицы -------------------}

procedure prov_vvod(var elem:integer);

var st:string[3];

code:integer;

begin

repeat

readln(st);

val(st,elem,code);

until(code=0);

end;

{----------- Меняем местами элементы --------------------}

procedure change(var elem_1,elem_2:integer);

var rab:integer;

begin

rab:=elem_1;

elem_1:=elem_2;

elem_2:=rab;

end;

{-----------Основная программа -------------------------}

begin

write('m=');readln(m);

write('n=');readln(n);

writeln('Вводим матрицу ');

for i:=1 to m do

for j:=1 to n do

prov_vvod(matr[i,j]);

writeln('ˆИсходная матрица ');

smotr(matr);

for i:=1 to m do

change(matr[i,1],matr[i,n]);

writeln('Результат');

smotr(matr);

readln;

end.

Вариант 2

program Pr4_2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type matr_num=array[1..6,1..7] of integer;

var T:text;

st:string[8];

matr:matr_num;

i,j:integer;

m,n:integer;

{------------- Выводим матрицу на экран ­---------------}

procedure smotr(matr1:matr_num);

begin

for i:=1 to m do

for j:=1 to n do

begin

write(matr1[i,j]:6);

if j=n then writeln;

end;

end;

{----------- Меняем местами элементы --------------------}

procedure change(var elem_1,elem_2:integer);

var rab:integer;

begin

rab:=elem_1;

elem_1:=elem_2;

elem_2:=rab;

end;

{----------- Основная программа -------------------------}

begin

write('m=');readln(m);

write('n=');readln(n);

{ Вводим имя файла с исходными данными}

write('File Name=');readln(St);

AssignFile(T,St);

Reset(T);

{ Вводим матрицу из файла}

for i:=1 to m do

for j:=1 to n do

Readln(T,matr[i,j]);

writeln(' Исходная матрица ');

smotr(matr);

for i:=1 to m do

change(matr[i,1],matr[i,n]);

writeln('Результат ');

smotr(matr);

closeFile(T);

readln;

end.

Задания для самостоятельного выполнения по теме «Работа с матрицами»

  1. Матрица М состоит из 8 строк, 4 столбцов. Сформировать из ее ненулевых элементов одномерный массив М.

  2. Матрица М состоит из 10 строк, 5 столбцов. Выяснить, есть ли в ней хотя бы один элемент, равный 10. Если есть, то перемен­ной К присвоить значение 1, если нет, то 0.

  3. Матрица МТ состоит из 9 отрок, 5 столбцов. Сформировать из ее элементов, расположив их столбец за столбцом, одномерный мас­сив М.

  4. Матрица М состоит из 7 строк, 9 столбцов. Вычесть из всех ее элементов, кроме последнего, соответствующие элементы послед­него столбца.

  5. Матрица М состоит из 5 строк, 7 столбцов. Расположить ее элементы в порядке возрастания по строкам. (Указание: можно использовать вспомогательный массив).

  6. Матрица М содержит 7 строк, 9 столбцов. Расположить эле­менты в каждой строке в порядке возрастания.

  7. Матрица Р состоит из М строк, N столбцов. Поменять местами первую строку с последней, вторую с предпоследней, и т.д.

  8. Матрица содержит 7 строк, 4 столбца. Сгруппировать ну­левые элементы в конце матрицы (Можно использовать вспомогатель­ный массив).

  9. Матрица М состоит из 6 отрок, 8 столбцов. Выяснить, сколько элементов в каждой строке превышают среднее арифметическое значение, определенное для этой отроки. Из найденных величин составить массив Р.

  10. Матрица М состоит на 9 отрок, 8 столбцов. Выяснить, явля­ется ли минимальный элемент 2-ой строки минимальным и в своем столице. В зависимости от результата напечатать "ДА" или "НЕТ".

  11. Матрица М состоит жз 4 строк, 6 столоцов. Сформировать матрицу М1, в каждой строке которой исходной матрицы соответствуют две отроки половинной, длины.

  12. Матрица М состоит из 8 строк, 6 столбцов. Сформировать матрицу М1, в которой каждым 2 строкам исход­ной матрицы соответствует 1 строка двойной длины. Выяснить, имеется ли в матрице М элемент, являющийся максимальным в своем столбце и минимальным в своей строке . Если такой найдется, напечатать его координаты , если нет – напечатать соответствующее сообщение.

  13. Матрица М состоит из К строк, Р столбцов. Если сумма элементов ее левой половины превышает сумму элементов правой по­ловины, поменять местами 2-ой и предпоследний столицы.

  14. Матрица М состоит ив 11 отрок в 11 столбцов. Поменять местами элементы, расположенные симметрично относительно 6-го столбца..

  15. Матрица МТ состоит из 5 строк, 6 столбцов. Переставить отроки в порядке возрастания их максимальных элементов.

  16. Матрица К состоит из 7 отрок, 8 столбцов. Расположить ее элементы в порядке возрастания по столбцам. (Можно использовать вспомогательный массив).

  17. Матрица М состоит из 5 строк, 7 столбцов. Расположить элементы в каждом столбце в порядке возрастания.

  18. Матрица М (6 строк, 7 столбцов) состоит из равного коли­чества положительных и отрицательных элементов. Сгруппировать положительные элементы в верхней половине матрицы.

  19. Матрица М состоит из 8 строк, 9 столбцов. Выяснить, есть ли среди ее элементов хотя бы два одинаковых. Напечатать "ДА" или "НЕТ" в зависимости от результатов анализа.

  20. Матрица М состоит из 13 строк и 13 столбцов. Поменять местами элементы, симметричные относительно 7-ой строки.

  21. Матрица МТ состоит из 13 строк, 13 столбцов. Поменять мос­тами элементы, расположенные симметрично относительно элемента М (7,7).

  22. Матрица М состоит из 5 строк, 7 столбцов. Выяснить, есть ли в числе ее элементов хотя бы два различных. Напечатать "ДА" или "НЕТ" в соответствии с результатом анализа. Сформировать массив М1 из элементов матрицы М. Повторяющиеся элементы записывать только один раз.

  23. Задана матрица В(8,8). Поменять местами элементы столбца, содержащего большее число положительных элементов, и элементы главной диагонали.

  24. Задана матрица А(5,7). Преобразовать строки матрицы по сле­дующему правилу: если число положительных элементов в строке боль­ше числа отрицательных - расположить элементы строки в обратном порядке. В противном случае отрицательные элементы заменить ну­лем.

  25. Матрица М состоит из 5 строк, 8 столбцов. Транспонировать ее.

  26. Сформировать матрицу М1, вычтя из каждого элемента исходной ной матрицы М среднее арифметическое, вычисленное по всем ее элементам.

  27. Матрица М состоит из 4 строк, 3 столбцов. Вычесть из всех строк, начиная со второй, первую строку.

  28. Матрица М состоит из 7 строк, 9 столбцов. Найти максималь­ный по абсолютной величине элемент и поменять его местами с первым эле­ментом.

  29. Матрица М состоит из 5 строк, 9 столбцов. Сформировать матрицу МТ1, первая строка которой равна последней строке исход­ной матрицы, вторая - предпоследней и т.д.

  30. Матрица М состоит из 8 строк, 5 столбцов. Поменять места­ми ее минимальный и максимальный элементы.

  31. Матрица М состоит из 7 отрок, 9 столбцов. Умножить элемен­ты всех столбцов, начиная со второго, на соответствующие элементы первого столбца.

  32. Матрица М состоит из 6 строк, 5 столбцов. Умножить эле­менты в каждой из строк на номер этой строки.

  33. Квадратная матрица М состоит из 6 строк, 6 столбцов. Вы­честь из каждого ее элемента сумму элементов, расположенных на главной диагонали.

  34. Матрица М состоит из 5 строк, 8 столбцов. Составить мас­сив М1 из положительных, М2 - из отрицательных элементов матрицы.