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

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

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

> Обработка массивов
Старающийся
сообщение 9.04.2007 18:05
Сообщение #1


Новичок
*

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

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


Будьте любезны горит задание.Завтра сдавать,не могли бы посмотреть,я написал прогу но ничего в программировании не понимаю.Писал чисто по образцам.Не могли бы проверить.Вот само задание.
Ввести массив А[5].Сформировать массив В[5,5],где B[i,j]=i+j,если i<j;иначе B[i,j]=(i-j)/(i+1).Найти массив С=А*В.Упорядочить массив С в порядке возрастания абсолютных значений его элементов.
Программа:
Program lab3;
Uses CRT;
const n=5;m=5;
Var A[1..n],B[1..m,1..n],C[1..n]
 of real;
i,j:integer;
r,S:real;
Begin
clrscr;
writeln('Vvedite massiv A [',n,']:');
  for i:=1 to n do
  read(A[i]);
    for i:=1 to m do
    begin
      for j:=1 to n do
        read (B[i,j];
      if i<j then B[i,j]:=i+j else
      B[i,j]:=(i-j)/i+1;
    end;
        for i:=1 to m do
        begin
          for j:=1 to n do
          write(B[i,j],' ');
        end;
          for j:=1 to n do
          begin
          S:=0
            for i:=1 to m do
            S:S+A[i]*B[i,j];
          end;
          C[j]:=S;
            for j:=1 to n do
            write(C[j],' ');
              for j:=1 to n-1 do
              for i:=n down to j+1 do
                begin
                if abs(C[i-1])<abs(C[i]) then
                r:=C[i];
                C[i]:=C[i-1];
                C[i-1]:=r;
                end;
                  for i:=1 to n do
                  begin
                  write(C[i],' ');
                  end;
                  readkey
END.


М
с тегами красивее, правда?..
мисс_граффити

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
Старающийся
сообщение 9.04.2007 22:16
Сообщение #2


Новичок
*

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

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


Да лучше.Но у меня к великому сожалению прога из за этого все равно не запустится.=(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Perfez
сообщение 9.04.2007 22:45
Сообщение #3


Бывалый
***

Группа: Модераторы
Сообщений: 231
Пол: Женский

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


Цитата(Старающийся @ 9.04.2007 20:05) *

Найти массив С=А*В


Старающийся,ты хоть сообрази как это возможно.... norespect.gif если
Цитата
A[5]
и
Цитата
B[5,5]
...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.04.2007 23:04
Сообщение #4


Гость






Perfez, про перемножение сцепленных матриц слышал?

Массивы. Матрицы. Типичные задачи.

Вот так, примерно:


Program lab3;
Uses CRT;
const
  n = 5;
  m = 5;
Var
  A: array[        1 .. n] of real;
  B: array[1 .. n, 1 .. m] of real;
  C: array[        1 .. m] of real;

  i, j, k: integer;
  T: real;


Begin
  clrscr;
  writeln('Vvedite massiv A [',n,']:');
  for i := 1 to n do readln(A[i]);

  for i:=1 to m do
    for j := 1 to n do
      if i < j then B[i, j] := i + j
      else B[i, j] := (i - j) / (i + 1);

  for i := 1 to m do begin
    for j := 1 to n do
      write(B[i,j]:5:2);
    writeln;
  end;

  for j := 1 to m do begin
    C[j] := 0;
    for k := 1 to n do
      C[j] := C[j] + A[k] * B[k, j];
  end;

  writeln('C before sort:');
  for i := 1 to m do write(C[i]:7:2);
  writeln;

  for i := 1 to m do
    for j := m downto i + 1 do
      if Abs(C[j - 1]) > Abs(C[j]) then begin
        T := C[j - 1]; C[j - 1] := C[j]; C[j] := T
      end;

  writeln('C after sort:');
  for i := 1 to m do write(C[i]:7:2);
  writeln;

end.



Сообщение отредактировано: volvo - 10.04.2007 0:41
 К началу страницы 
+ Ответить 
Старающийся
сообщение 10.04.2007 5:35
Сообщение #5


Новичок
*

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

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


Спасибо большое за помощь.Я понял свои ошибки!=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

- Текстовая версия 27.07.2025 12:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"