0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 6
|
|
1 | |
Матрица. Найти 2 одинаковые строки и вывести их01.11.2010, 22:25. Показов 2384. Ответов 0
Метки нет (Все метки)
Добрый вечер, помогите написать программу на паскале:
Создать матрицу A[1..N,1..M]. Найти две строки, в которых элементы одинаковы, но могут стоять в различной последовательности. Вывести номера строк и их значения Вот прогуглил нашел программу, но надо чтобы была не через процедуры.Помогите переделат. Код
uses crt; type Tmatr=array[1..50,1..50] of integer; var a,b:Tmatr; n,m,i,j,s1,s2:integer; procedure SortStr(var z:Tmatr);{сортировка строк массива по возрастанию методом пузырька} var i,j,k,x:integer; begin for i:=1 to n do for j:=1 to m-1 do for k:=1 to m-1 do if z[i,k]>z[i,k+1] then begin x:=z[i,k]; z[i,k]:=z[i,k+1]; z[i,k+1]:=x; end; end; procedure Sravn(z:tmatr;var s1:integer;var s2:integer);{процедура сравнения} var i,j,k,t,q:integer; begin q:=0; {переменная для фиксации события совпадения строк} for i:=1 to n-1 do for k:=i+1 to n do begin t:=0; for j:=1 to m do if z[i,j]=z[k,j] then t:=t+1;{если элементы двух строк совпадают} if t=m then {если совпали все} begin q:=1; {фиксируем событие} s1:=i; {запоминаем первую стороку} s2:=k; {запоминаем первую стороку} exit; {заканчиваем поиск} end; end; if q=0 then {если совпадений нет, сообщаем} begin writeln('Takih strok net!'); readln; halt; end; end; begin clrscr; write('Vvedite kolicestvo strok n=');readln(n); write('Vvedite kolicestvo stolbcov m=');readln(m); writeln('Vvedite elementy matricy:'); for i:=1 to n do for j:=1 to m do read(a[i,j]); {елементы удобно вводить по строкам через пробел, в конце строки Enter} readln; clrscr; {очищаем экран и выводим матрицу} writeln('Matrica:'); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; b:=a; {запоминаем неотсортированную матрицу} SortStr(a); {сортируем по строкам} Sravn(a,s1,s2); {ищем одинаковые} writeln('Elementy strok ',s1,' i ',s2,' ravny'); {выводим сообщение} for j:=1 to m do write(b[s1,j],' '); {первая совпавшая строка} writeln; for j:=1 to m do write(b[s2,j],' '); {вторая совпавшая строка} readln end.
0
|
01.11.2010, 22:25 | |
Ответы с готовыми решениями:
0
Найти одинаковые данные в столбце A и вывести все строки на новый лист Заданная матрица размером NxM. Удалить те строки, в которых встречаются одинаковые элементы Найти одинаковые элементы первой строки, максимум соответствующих элементов второй строки, сократив матрицу Определить одинаковые по значению строки и вывести их на экран |
01.11.2010, 22:25 | |
01.11.2010, 22:25 | |
Помогаю со студенческими работами здесь
1
Дана матрица размером МxN. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер Если две строки одинаковые по длине то вывести Yes иначе No Текстовый файл. Вывести строки, содержащие одинаковые слова Дана матрица размера MxN. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |