IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> программа, по нахождению в матрице вектор строки макс длины..
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +



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


Сообщение отредактировано: krasnblj -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


А в каком месте "выделенное место"?

Добавлено через 1 мин.
Какую ошибку?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


исправил,ошибки не стало,зато теперь при запуске ввожу количество строк,ввожу количество столбцов,ввожу элементы матрицы и тут программу выкидывает без всяких ошибок и прочего..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Покажи где исправил
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


сам ненаю точно что я изменил,но писал все заново с алгорима..
получилось вот что:


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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


[/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.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 1:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name