Помощь - Поиск - Пользователи - Календарь
Полная версия: программа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
krasnblj

PROGRAM NORM;
{Нахождение в матрице номера вектор-строки максимальной длины}


VAR
n,m,j,i,k: INTEGER;
A: ARRAY [1..100,1..100] OF REAL;
S,Q: REAL;
B:ARRAY [1..100] OF REAL;

PROCEDURE VVOD;
BEGIN
WRITELN ('Программа нахождения в матрице номера вектор-строки максимальной длины');
WRITELN ('Введите размеры матрицы');
REPEAT
WRITE ('Количество столбцов = ');
READ (n);
IF (n<1) OR (n>100) THEN
WRITELN ('Неверное значение');
UNTIL (n>=1) AND (n<=100);
REPEAT
WRITE ('Количество строк = ');
READ (m);
IF (m<1) OR (m>100) THEN
WRITELN ('Неверное значение');
UNTIL (m>=1) AND (m<=100);
WRITELN ('Введите элементы матрицы');
FOR j:=1 TO m DO
BEGIN
FOR i:=1 TO n DO
BEGIN
WRITE ('ВВЕДИТЕ a[j,i] = ');
READ (a[j,i]);
END;
END;
END;
PROCEDURE RAS;
begin
FOR j:=1 TO m DO
BEGIN
S:=0;
FOR i:=1 TO n DO
S:=S+a[j,i];
IF j=1 THEN
Q:=(sqr(S));
K:=j;
IF (sqr(S))>Q THEN
Q:=(sqr(S));
k:=j;
END;
WRITELN ('Строка =',k);
END;
BEGIN
WRITELN('нахождения в матрице номера вектор-строки максимальной длины');
VVOD;
RAS;
WRITELN ('вектор-строка максимальной длины');
WRITE (B[j]:5:2,',');
READLN;
END.



выдаёт ошибку в выделенном месте..
и вобще,привильно ли делаю?? программу

Добавлено через 1 мин.
ай,место не выделилось,но вот оно:
Цитата
PROCEDURE RAS;
begin
FOR j:=1 TO m DO
Ozzя
А в каком месте "выделенное место"?

Добавлено через 1 мин.
Какую ошибку?
krasnblj
исправил,ошибки не стало,зато теперь при запуске ввожу количество строк,ввожу количество столбцов,ввожу элементы матрицы и тут программу выкидывает без всяких ошибок и прочего..
Client
Покажи где исправил
krasnblj
сам ненаю точно что я изменил,но писал все заново с алгорима..
получилось вот что:


PROGRAM NORM;

VAR
n,m,j,i,k: INTEGER;
A: ARRAY [1..50,1..50] OF REAL;
S,Q: REAL;
B:ARRAY [1..50] OF REAL;

PROCEDURE VVOD;

BEGIN
WRITELN ('Программа нахождения в матрице номера вектор-строки максимальной длины');
WRITELN ('Введите размеры матрицы');
REPEAT
WRITE ('Количество столбцов = ');
READ (n);
IF (n<1) OR (n>50) THEN
WRITELN ('Неверное значение');
UNTIL (n>=1) AND (n<=50);
REPEAT
WRITE ('Количество строк = ');
READ (m);
IF (m<1) OR (m>100) THEN
WRITELN ('Неверное значение');
UNTIL (m>=1) AND (m<=100);
WRITELN ('Введите элементы матрицы');
FOR j:=1 TO m DO
BEGIN
FOR i:=1 TO n DO
BEGIN
WRITE ('ВВЕДИТЕ a[j,i] = ');
READ (a[j,i]);
END;
END;
END;

PROCEDURE RAS;
begin
FOR j:=1 TO m DO
BEGIN
S:=0;
FOR i:=1 TO n DO
S:=S+a[j,i];
IF j=1 THEN
Q:=(sqr(S));
K:=j;
IF (sqr(S))>Q THEN
Q:=(sqr(S));
k:=j;
END;
WRITELN ('Строка =',k);
END;

BEGIN
WRITELN('нахождения в матрице номера вектор-строки максимальной длины');

VVOD;

RAS;

READLN;
END.

krasnblj
[/code]
вобщем работающий код:
(малоли кому понадобится)

[code=pas]

Program MaxVecStr;
Uses Crt;
Var
i,j,n,m,k: integer;
P,max: real;
ok:boolean;
S: array[0..10] of real;
A: array[0..10,0..10] of real;
Begin
WriteLN('программа нахождения в матрице');
WriteLN('вектор-строки максимальной длины.');

{ ввод количества строк и столбцов }
repeat
writeln('введите количество строк');
readln(n);
if (n>10) or (n<0) then
WriteLN ('неверное значение')
else ok:=true;
until ok=true;
ok:=false;
repeat
writeln('введите количество столбцов');
ReadLN(m);
if (m>10) or (m<0) then
WriteLN ('неверное значение')
else ok:=true;
until ok=true;

{ввод матрицы}
for i:=1 to n do
begin
for j:=1 to m do
begin
Write('вв элем ' ,i, ',', j, ' :');
ReadLN(A[i,j])
end;
end;

{обработка}

if (n=1) then
begin
for j:=1 to n do
S[j]:=A[k,j];
Write('элементы вектор-строки максимальной длины: ');
for j:=1 to m do
Write(S[j],' ');
writeln('длина максимальной вектор-строки: ',max);
writeln('номер вектор-строки максимальной длины: ',k);
ReadLN;
end

else
for i:=1 to n do
begin
P:=0;
for j:=1 to m do
P:=P+sqr(A[i,j]);
if (sqrt(P)>=max) then
begin
max:=sqrt(p);
k:=i;
end;
end;

{вывод результата}
for j:=1 to m do
S[j]:=A[k,j];
Write('элементы вектор-строки максимальной длины: ');
for j:=1 to m do
Write(S[j],' ');
writeln('длина максимальной вектор-строки: ',max);
writeln('номер вектор-строки максимальной длины: ',k);
ReadLN;
end.



Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.