Ввести размер матрицы (М и N) и значения ее элементов. Составить вектор номеров строк, элементы которых представляют симметричную последовательность.
30го уже надо здавать.. такчто нужно почти срочно.. спасибо заранее..
! | 1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... |
var n,m,k,i,j: integer;
matr: array[1..50,1..50] of integer; //исходная матрица
vect: array[1..50] of integer; //массив номеров строк
f: boolean; //эта логическая переменная в нашем случае отмечает, симметричная ли строка
begin
k:=0;
write('введите количество строк: ');
readln(n);
write('введите количество столбцов: ');
readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('введите элементы матрицы: ');
readln(matr[i,j]); //ну тут думаю все понятно, вводим количество строк/столбцов и заполняем массив
end;
for i:=1 to n do
begin
f:=true; //изначально принимаем, что строка симметрична
for j:=1 to m div 2 do //проходим по столбцам до середины
begin
//теперь будем искать симметричность, точнее в нашем случае ее отсутствие
//как уже сказал volvo, симм-сть это "равенство элементов A1 = An, A2 = An - 1 и так далее"
//посмотри как изменяется номер столбца в цикле 1<>m, 2<>m-1, 3<>m-2 и т.д.
if matr[i,j]<>matr[i,m+1-j] then f:=false; //если строка не симметричная, то меняем f на false
end;
if f then //если f так и осталось правдой, то накручиваем номер элемента в массиве индексов строк и
//присваиваем k-му элементу значение, равное номеру симм-ной строки
begin
inc(k);
vect[k]:=i;
end;
end;
writeln('матрица:'); //выводим исходную матрицу..
for i:=1 to n do
begin
for j:=1 to m do
write(matr[i,j]:4);
writeln;
end;
writeln('номера симметричных строк:'); //..и вектор номеров строк
for i:=1 to k do write(vect[i]:4); //довольствуемся результатом
end.
var n,m,k,i,j: integer;
matr: array[1..50,1..50] of integer; //исходная матрица
vect: array[1..50] of integer; //массив номеров строк
f: boolean; //эта логическая переменная в нашем случае отмечает, симметричная ли строка
begin
k:=0;
write('введите количество строк: ');
readln(n);
write('введите количество столбцов: ');
readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('введите элементы матрицы: ');
readln(matr[i,j]); //ну тут думаю все понятно, вводим количество строк/столбцов и заполняем массив
end;
for i:=1 to n do
begin
f:=true; //изначально принимаем, что строка симметрична
for j:=1 to m div 2 do //проходим по столбцам до середины
begin
//теперь будем искать симметричность, точнее в нашем случае ее отсутствие
//как уже сказал volvo, симм-сть это "равенство элементов A1 = An, A2 = An - 1 и так далее"
//посмотри как изменяется номер столбца в цикле 1<>m, 2<>m-1, 3<>m-2 и т.д.
if matr[i,j]<>matr[i,m+1-j] then f:=false; //если строка не симметричная, то меняем f на false
end;
if f then //если f так и осталось правдой, то накручиваем номер элемента в массиве индексов строк и
//присваиваем k-му элементу значение, равное номеру симм-ной строки
begin
inc(k);
vect[k]:=i;
end;
end;
writeln('матрица:'); //выводим исходную матрицу..
for i:=1 to n do
begin
for j:=1 to m do
write(matr[i,j]:4);
writeln;
end;
writeln('номера симметричных строк:'); //..и вектор номеров строк
for i:=1 to k do write(vect[i]:4); //довольствуемся результатом
end.