Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 20:43   #1
as1212
Пользователь
 
Регистрация: 08.10.2011
Сообщений: 42
По умолчанию ПАСКАЛЬ РАБОТА С МАТРИЦАМИ!

Здраствуйте, помоготе пожалуйста очень нужно решить

Найдите средние геометрические из интервала [10; 50] элементов каждого столбца матрицы Х (4,5). Результат запишите в массив В.

Вот мой код но он не выдает тго, чого нужно
Код:
PROGRAM O;
USES CRT;
CONST M=4;N=5;
VAR X:ARRAY[1..M,1..N] OF REAL; B:ARRAY[1..M] OF REAL;
    SR:ARRAY[1..N] OF REAL; I,J,K:INTEGER; P,sg:REAL; H:CHAR;
BEGIN CLRSCR;
 FOR I:=1 TO M DO
  BEGIN WRITELN('ВВЕДИТЕ ',N,' ЧИСЕЛ ',I,'-ОГО РЯДА');
   FOR J:=1 TO N DO
    READ (X[I,J]);  END;
WRITELN(' ':20,'GIVVEN MATRIX');
FOR I:=1 TO M DO  BEGIN
 FOR J:=1 TO N DO  WRITE(X[I,J]:5:1);  WRITELN; END;
  {VICHISLENIE SREDNIH GEOMETRICHESKIH}
 FOR J:=1 TO M DO
   BEGIN
    B[J]:=X[1,J]; P:=1; K:=0;
    FOR I:= 1 TO N DO
   if (B[J]> 10) and (B[J]<50) then
   BEGIN  P:=P*B[J]; K:=K+1; sg:=exp(ln(p)/k); B[J]:=sg; END;
  END;
 FOR J:=1 TO M DO
WRITELN(B[J]);
 FOR J:=1 TO M DO
WRITELN(B[J]);
H:=READKEY
END.

Последний раз редактировалось Stilet; 08.10.2011 в 23:26.
as1212 вне форума Ответить с цитированием
Старый 08.10.2011, 23:21   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

вот, проверяйте
Код:
PROGRAM O;
USES CRT;
CONST M=4;N=5;
VAR X:ARRAY[1..M,1..N] OF REAL; B:ARRAY[1..M] OF REAL;
SR:ARRAY[1..N] OF REAL; I,J,K:INTEGER; P,sg:REAL; H:CHAR;
BEGIN CLRSCR;
  FOR I:=1 TO M DO
  BEGIN WRITELN('ВВЕДИТЕ ',N,' ЧИСЕЛ ',I,'-ОГО РЯДА');
            FOR J:=1 TO N DO READ (X[I,J]); 
  END;
  WRITELN(' ':20,'GIVVEN MATRIX');
  FOR I:=1 TO M DO BEGIN
    FOR J:=1 TO N DO WRITE(X[I,J]:5:1); 
    WRITELN; 
  END;
{VICHISLENIE SREDNIH GEOMETRICHESKIH}
FOR J:=1 TO M DO BEGIN
 P:=1; K:=0;
 FOR I:= 1 TO N DO
  if (X[i,J]>=10) and (X[i,J]<=50) then
  BEGIN P:=P*X[i,J]; K:=K+1; END;
 if k<>0 then B[J]:=exp(ln(p)/k) else B[J]:=0;  
END;

FOR J:=1 TO M DO
WRITELN(B[J]);
H:=READKEY
END.
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 09.10.2011, 01:00   #3
as1212
Пользователь
 
Регистрация: 08.10.2011
Сообщений: 42
По умолчанию

Вот что выбивает

http://programmersforum.ru/attachmen...1&d=1318107574

http://programmersforum.ru/attachmen...1&d=1318107574
as1212 вне форума Ответить с цитированием
Старый 09.10.2011, 01:05   #4
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

пишет что вложения нет
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 09.10.2011, 01:24   #5
as1212
Пользователь
 
Регистрация: 08.10.2011
Сообщений: 42
По умолчанию

непонял, обьясните пожалуйста!
as1212 вне форума Ответить с цитированием
Старый 09.10.2011, 01:30   #6
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

я про ссылки в предыдущем сообщении
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 09.10.2011, 01:36   #7
as1212
Пользователь
 
Регистрация: 08.10.2011
Сообщений: 42
По умолчанию

в сторочке if (X[i,J]>=10) and (X[i,J]<=50) then пишет что выход за граници диапазона измениния индекса 1..4
as1212 вне форума Ответить с цитированием
Старый 09.10.2011, 05:57   #8
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от as1212 Посмотреть сообщение
в сторочке if (X[i,J]>=10) and (X[i,J]<=50) then пишет что выход за граници диапазона измениния индекса 1..4
Поменяй местами верхние пределы циклов - внешний до N, а внутренний до M, и еще граница B должна быть N, и цикл вывода тоже до N.

2 rubius2008:
я бы не рекомендовал тут присваивать 0 в случае отсутствия чисел из заданного диапазона в столбце, лучше присвоить -1. А при выводе, наткнувшись на отрицательное, выдавать сообщение, что мол нет таких.
Код:
CONST
  M=4;
  N=5;
  x1= 10;
  x2= 50;
VAR
  X:ARRAY[1..M,1..N] OF REAL;
  B:ARRAY[1..N] OF REAL;
  SR:ARRAY[1..N] OF REAL;
  I,J,K:INTEGER;
  P,sg:REAL;
  H:CHAR;

BEGIN
  FOR I:=1 TO M DO BEGIN
    WRITELN('ВВЕДИТЕ ',N,' ЧИСЕЛ ',I,'-ОГО РЯДА');
    FOR J:=1 TO N DO x[i,j]:= random*100;  //READ (X[I,J]);
  END;
  WRITELN(' ':20,'GIVVEN MATRIX');
  FOR I:=1 TO M DO BEGIN
    FOR J:=1 TO N DO WRITE(X[I,J]:7:2);
    WRITELN;
  END;
  {VICHISLENIE SREDNIH GEOMETRICHESKIH}
  FOR J:=1 TO N DO BEGIN
    P:=1; K:=0;
    FOR I:= 1 TO M DO
      if (x1<=X[i,J]>) and (X[i,J]<=x2) then BEGIN
      P:=P*X[i,J];
      K:=K+1;
    END;
    if k<>0 then B[J]:=exp(ln(p)/k) else B[J]:= -1;
  END;

  FOR J:=1 TO N DO
    if b[j]<0 then writeln('нет чисел из заданного диапазона в столобце ',j)
    else WRITELN(B[J]:7:2);
  readln
END.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 09.10.2011, 13:27   #9
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Папа, поясни что такое
Цитата:
if (x1<=X[i,J]>) and (X[i,J]<=x2) then BEGIN
и ещо одно пап, k ты проверил, не спорю, а если p=0 то всё будет типо нормально ?
Код:
if k<>0 then B[J]:=exp(ln(p)/k) else B[J]:= -1;
-----------
Руки или голова, или проффесионализм зашкаливает?
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 09.10.2011 в 13:31.
JUDAS вне форума Ответить с цитированием
Старый 09.10.2011, 19:48   #10
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Цитата:
Сообщение от as1212 Посмотреть сообщение
в сторочке if (X[i,J]>=10) and (X[i,J]<=50) then пишет что выход за граници диапазона измениния индекса 1..4
поменяйте в описание массива Х местами M и N, и все
Код:
VAR X:ARRAY[1..N,1..M] OF REAL;
2 TinMan чем вызвана данная рекомендация? В любом случае вряд ли когда-либо получится 0 при средне геометрическом в данной постановке задачи
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами и матрицами (Паскаль) DarKsp Помощь студентам 5 10.01.2011 23:46
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа с матрицами в Паскаль A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 2 10.06.2010 11:38
Работа с матрицами, Турбо Паскаль Dell2dimka Помощь студентам 6 13.03.2010 18:10
Паскаль. Две задачи с матрицами L@dy Помощь студентам 1 12.06.2007 23:58