Автор: sergey121212 27.11.2011 18:37
Вот дана задача
Дана символьная матрица размера nXm. Получить последовательно все строки матрицы, исключая те, для которых есть равные среди строк с меньшими номерами.
Не получается сделать помогите пожалуйста
вот что я сделал (т.е. начал) и дальше не пойму
Код
uses crt;
const N=5; M=10;
var
Ch : set of char;
d : array[1..N] of string;
s:string;
i, j : integer;
begin
for i:=1 to N do
read(d[i]);
for i:=1 to N do begin
while i<>(i-1) do
if d[i]
end.
Заранее благодарен
Автор: Lapp 28.11.2011 7:08
Сергей, я не смог понять условие. Поясни, пожалуйста. Ты ничего не пропустил там?
Начни с того, что значит "получить строки". Напечатать, что ли?
А исключать надо просто повторы строк?
Автор: sergey121212 28.11.2011 21:01
Нужно сравнить все елесенты строки матрици и потом вывести то, что осталось без повторений
Вот так
2 3 4 5
1 2 3 4
2 3 4 5
сравниваем 1 и 3 строку и если елементы расн то их включаем счетчик и если счетчик равен 4(в данном случае) то удаляем ети строки и выводим
1 2 3 4
Автор: sergey121212 29.11.2011 0:51
Вот я сделал но что-то ен выводит то, что нужно
Код
uses crt;
const n=4; m=3;
var a,b,c:array[1..n,1..m] of integer;
q,i,j,k,p:integer; f:boolean;
begin clrscr;
writeln('Введите построчно элеметы матрицы:');
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;
writeln;
q:=0;
for i:=1 to n do
begin
for j:=1 to m do
begin
k:=0;
for p:=1 to m do
if a[i,p]=a[j,p] then k:=k+1;
if k=m then
begin a[i,p]:=b[i,j]; q:=q+1; end;
if k<>m then a[i,p]:=c[i,p];
end; end;
for i:=1 to q do
begin
for j:=1 to m do
write(c[i,j]:4); writeln;
end;
end.
Добавлено через 2 мин. Выводит только нули и все