Страница 1 из 1
Обработка массива
Добавлено: 16 апр 2009, 19:46
Volnyi
Pascal
1. Дана матрица A(n*m) целых чисел. Получить два новых вектора логических значений B(n) и C(m) . Положить Bi равным истина, если в i-ой строке матрицы есть положительные элементы, и ложь, если нет. Аналогично, элемент вектора Ci должен показывать наличие в соответствующем столбце отрицательных элементов.
[*разнотипные задачи удалены*]
Re: Обработка массива
Добавлено: 17 апр 2009, 00:38
Esgal
Код: Выделить всё
for i:=1 to n do
for j:= 1 to m do
begin
if A[i,j]>0 then B[i]:=true;
if A[i,j]<0 then C[j]:=true;
end;
помоему както так, причём массивы Б и Ц должны быть иициализированны ложью
Re: Обработка массива
Добавлено: 17 апр 2009, 11:05
Volnyi
Esgal, спасибо.
Re: Обработка массива
Добавлено: 17 апр 2009, 13:44
Naeel Maqsudov
Так это на паскале и есть. См. правила раздела "Решите мне задачу", так об это м есть комментарий.
Вот что вышло
Добавлено: 17 апр 2009, 19:42
Volnyi
Код: Выделить всё
program task01;
uses WinCRT;
const M = 3;
N= 4;
var
Mi: integer;
B:array[1..N] of boolean;
C:array[1..M] of boolean;
i,j,v:integer;
Begin
for j:=1 to M do C[j]:=false;
for i:=1 to N do
begin
B[i] := false;
for j:=1 to M do
begin
write('Enter value at ',i,',',j,':');read(Mi);
if Mi>0 then B[i]:=true;
if Mi<0 then C[j]:=true;
end;
end;
writeln('Vector B:');
for i:=1 to N do write(B[i],' ');
writeln;
writeln; writeln('Vector C:');
for j:=1 to M do write(C[j],' ');
writeln;
Re: Обработка массива
Добавлено: 17 апр 2009, 20:21
Naeel Maqsudov
хорошо, только где же массив А, который по условию тоже "дан"?
Код: Выделить всё
program task01;
uses WinCRT;
const
M=3;N=4;
var
A:array[1..N,1..M] of integer;
B:array[1..N] of boolean;
C:array[1..M] of boolean;
i,j:integer;
Begin
{инициализация трех массивов и контрольный вывод массива A}
for i:=1 to N do for j:=1 to M do begin
write('Enter value at ',i,',',j,':');
read(A[i,j]);
end;
for i:=1 to N do begin
for j:=1 to M do write(A[i,j]:10);
writeln;
B[i]:=false;
end;
for j:=1 to M do C[j]:=false;
{теперь вычисления}
for i:=1 to N do for j:=1 to M do begin
if A[i,j]>=0 then B[i]:=true;
if A[i,j]<0 then C[j]:=true;
end;
{вывод результата}
writeln('Vector B:');
for i:=1 to N do write(B[i],' ');
writeln;
writeln; writeln('Vector C:');
for j:=1 to M do write(C[j],' ');
writeln;
end.
Re: Обработка массива
Добавлено: 17 апр 2009, 20:35
Volnyi

ой... Спасибо))) (кстати кнопочки спасибо не вижу нигде???? )