Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите решить задачу (http://www.tehnari.ru/f41/t73826/)

An4ik7689 23.05.2012 16:37

Помогите решить задачу
 
ДВУМЕРНЫЕ МАССИВЫ (МАТРИЦЫ). Паскаль.
Дана целочисленная квадратная матрица порядка n. Получить b1, b2,.... bn, где bi - это значение наименьшего положительного элемента i-й строки (если таких элементов нет, то принять bi =0).

An4ik7689 23.05.2012 16:39

это все до чего додумалась, но все равно работает не правильно.
Program P6; {Дана целочисленная квадратная матрица порядка n, Получить
b1,b2,...bn, где bi-это значение наименьшего положительного элемента
i-ой строки (если таких элементов нет , то принять bi=0) }
uses
crt;
const
n=4;

procedure RandomM(var M:array [0..n] of array [0..n] of integer);
var
i,j:integer;
begin
randomize;
for i:=0 to n do
for j:=0 to n do
M[i][j]:=random(10)-5;
end;

procedure OutM(M:array [0..n] of array [0..n] of integer);
var
i,j:integer;
begin
for i:=0 to n do begin
for j:=0 to n do
write(M[i][j]:4);
writeln;
end;
end;

var
M: array [0..n] of array [0..n] of integer;
A: array [0..n] of integer;
i,j,min:integer;
begin

RandomM(M);
OutM(M);

for i:=0 to n do begin
if M[i][0]>0 then
min:=M[i][0]
else
min:=0;
for j:=0 to n do
if (min>M[i][j]) and (M[i][j]>0) then begin
min:=M[i][j];
end;
A[i]:=min ;
if min<=0 then min:=A[i];

end;

writeln('Ответ');
for i:=0 to n do
write(A[i]:4);
End.


не знаю как ее доделать, помогите пожалуйста.

Vladimir_S 23.05.2012 17:01

Цитата:

Сообщение от An4ik7689 (Сообщение 736657)
не знаю как ее доделать, помогите пожалуйста.

О, ужас - наворотили! А всего и надо-то, что:
Код:

Const
 N=4;
Var
 M:Array[0..N,0..N] of Integer;
 A:Array[0..N] of Integer;
 i,j:Byte;
Begin
 Randomize;
 For i:=0 to N do
  begin
  For j:=0 to N do
    begin
    M[i,j]:=4-Random(10);
    Write(M[i,j]:4);
    end;
  Writeln;
  end;
 Writeln;
 For i:=0 to N do
  begin
  A[i]:=10;
  For j:=0 to N do
    If (M[i,j]>0) and (M[i,j]<A[i]) then A[i]:=M[i,j];
  If A[i]=10 then A[i]:=0;
  end;
 For i:=0 to N do Write(A[i]:4);
 Readln;
End.

А процедуры тут, по-моему, без надобности, равно как и подключение модуля CRT - всё равно ведь ни одной команды его не используете, так зачем он Вам?

Vladimir_S 23.05.2012 17:06

Поправил - привел систему обозначений и нумерации к Вашей.

An4ik7689 23.05.2012 17:08

О да то что нужно спасибо))


Часовой пояс GMT +4, время: 19:58.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.