Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Матрицы

Автор: Dr. Froze 13.05.2007 1:43

решите пожалуйста задачу - очень надо!
Определить номера тех строк целочисленной матрицы A(n x k) , которые совпадают с массивом D(k) . Если таких строк нет, выдать соответствующее сообщение.

Автор: Dr. Froze 14.05.2007 23:30

Цитата(Dr. Froze @ 12.05.2007 22:43) *

решите пожалуйста задачу - очень надо!
Определить номера тех строк целочисленной матрицы A(n x k) , которые совпадают с массивом D(k) . Если таких строк нет, выдать соответствующее сообщение.

почему не отвечаете?

Автор: Артемий 14.05.2007 23:34

Цитата
почему не отвечаете?

Интересный вопрос!Прости,но пока тебе никто не обязан..показывай что делал.

Автор: Dr. Froze 14.05.2007 23:38

вот что есть...нихрена не работает...а сдавать уже послезавтра(
М
пользуемся тегами


uses crt;
var i,j,n,k,rez:integer;
D:array [1..10] of integer;
A:array[1..10,1..10] of integer;
flag1:boolean;
function flag(g,s:integer;U:array of integer):boolean;
var h:integer;
begin

flag:=false;
for h:=1 to g do
if s=U[h] then flag:=true;
end;
begin
clrscr;
flag1:=false;
readln(k,n);
for j:=1 to k do readln(D[j]);
writeln;
for i:=1 to n do
begin
writeln;
for j:=1 to k do
begin
readln(A[i,j]);
end;
end;
rez:=0;
for i:=1 to n do
begin
rez:=0;
for j:=1 to k do
begin
if flag(n,A[i,j],D)=true then rez:=rez+1;
end;
if rez=n then begin writeln(' nomer stroki ',i);flag1:=true;end;
end;
for j:=1 to k do write(' ',D[j]);
writeln;
for i:=1 to n do
begin
writeln;
for j:=1 to k do
write(A[i,j],' ');
end;
if not(flag1) then writeln('nety');
readln;
end.

Автор: Артемий 15.05.2007 0:10

А может так?

const
n=3;
var
flag: boolean;
A: array [1..n,1..n] of Integer;
D: array [1..n] of integer;
i,j,k: integer;
begin
flag:=true;
for i:=1 to n do readln(D[i]);

for i:=1 to n do begin
for j:=1 to n do begin
readln(A[i,j]);
end;
end;

for i:=1 to n do begin
for j:=1 to n do begin
if A[i,j]=D[j] then if j=n then writeln(i)else continue else begin
flag:=false;break; end;
end;
end;

Автор: Dr. Froze 15.05.2007 21:55

я плохо разбираюсь в паскале, но она не работает...там когда начинаешь вводить данные, то ... вобщем нужно чтобы программа понимала сколько строчек и столбцов ты хочешь ввести...а там вводи сколько хочешь...и нет предела...нужно ограничить. помогите пожалуйста...а то отчислят нах(

Автор: Артемий 16.05.2007 1:10

Цитата
я плохо разбираюсь в паскале, но она не работает...

у меня все прекрасно работало!Ты бы не поленился разобраться в коде...
сначала поочередно вводим массив D потом A.lдалее пробегаемся в цикле и сравниваем!


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Dr. Froze 16.05.2007 4:32

да, прости пожалуйста, туплю. Большое тебе спасибо, очень помог!!!