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

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

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

Автор: NRG 27.11.2010 1:43

Пожалуйста помогите мне написать прогу на паскале

а)заменить заданным вектором столбцы матрицы В, не содержащие ни одного отрицательного элемента;

б)в полученной матрице найти сумму элементов строк с четными номерами, содержащих хотя бы один нулевой элемент.

Автор: sheka 27.11.2010 1:46

Не вопрос. А что помочь то?

Автор: NRG 27.11.2010 1:49

как начать ??? я просто не понимаю какие переменные нужны и как создать там матрицу

Автор: sheka 27.11.2010 1:58

Можно, например, так:

1)
b: array[1..m,1..n]of integer;
x: array[1..m] of integer
i,j : integer;
flag: boolean;
2) добавить еще
s: integer;

Автор: NRG 27.11.2010 2:01

Цитата(sheka @ 26.11.2010 21:58) *

Можно, например, так:
1)
b: array[1..m,1..n]of integer;
x: array[1..m] of integer
i,j : integer;
flag: boolean;
2) добавить еще
s: integer;



у меня есть такая вот прога только я незнаю как сделать в ней чтобы можно было задавать матрицу самому ,и препод сказал что тут много лишнего только он несказал чего именно )))
CONST
m=4;
n=5;
VAR
B:ARRAY[1..m,1..n] of INTEGER;
C,SUM:ARRAY[1..m] of INTEGER;
Bul_1:ARRAY[1..n] of BOOLEAN;
Bul_2:ARRAY[1..m] of BOOLEAN;
i,j,p:INTEGER;
BEGIN
Randomize;
WriteLn('Initial matrix:');
For i:=1 to m do
begin
for j:=1 to n do
begin
B[i,j]:=Random(100)-50;
Write(B[i,j]:5);
end;
WriteLn;
WriteLn('The prescribed vector:');
For i:=1 to m do
begin
SUM[i]:=0;
C[i]:=Random(10)-5;
Write(C[i]:5);
end;
WriteLn;
WriteLn('Press "Enter" to continue...');
ReadLn;
For j:=1 to n do
Bul_1[j]:=false;
For j:=1 to n do
For i:=1 to m do
If B[i,j]<0 then Bul_1[j]:=true;
WriteLn('Reformed matrix:');
For i:=1 to m do
begin
for j:=1 to n do
begin
If Bul_1[j] then B[i,j]:=C[i];
Write(B[i,j]:5);
end;
WriteLn;
end;
WriteLn;
WriteLn('Press "Enter" to continue...');
ReadLn;
For i:=1 to m do
Bul_2[i]:=false;
p:=0;
For i:=1 to m do
For j:=1 to n do
If B[i,j]=0 then
begin
Bul_2[i]:=true;
If (i mod 2)=0 then
INC(p);
end;
For i:=1 to (m div 2) do
If Bul_2[2*i] then
begin
for j:=1 to n do
SUM[2*i]:=SUM[2*i]+B[2*i,j];
WriteLn('SUM[',2*i,']= ',SUM[2*i]);
end;
If p=0 then
WriteLn('There are no even strings, containing zero elements');
ReadLn;
END;
END.

Автор: sheka 27.11.2010 2:04

Значит писал не сам. А зачем мне исправлять чужой код? Не вижу смысла.

ЗЫ: Используй, пожалуйста, теги.

Автор: NRG 27.11.2010 2:43

Цитата(sheka @ 26.11.2010 22:04) *

Значит писал не сам. А зачем мне исправлять чужой код? Не вижу смысла.

ЗЫ: Используй, пожалуйста, теги.

да писал не сам .поэтому хочу написать свою но не догоняю как