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

 



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