Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> матрицы n*n, Найти (A+B)*C 
:(
    Опции темы
Bony
Дата 28.12.2005, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Дана матрицы A,B,C n -ого порядка, найти матрицу (A+B)*C!!

Пасибо!!!! завтра последний срок! Я конечно понимаю , у меня наглости хоть отбовляй, но все же....
PM MAIL ICQ   Вверх
Бегемот
Дата 28.12.2005, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



А язык-то какой?! smile
PM MAIL   Вверх
mvdr
Дата 28.12.2005, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 7
Всего: 42



насколько я помню: сума матриц=сумме их соответствующих элементов
умножение = умножению соотв. элементов.
Тогда просто циклом прогоняем от 1 до n и в новую матрицу заносим элементы: d[i,j]:=(a[i,j]+b[i,j])*c[i,j]
Добавлено @ 09:07
Код

program 1;
uses crt;
const n=10; {нужное число}
var A,B,C,D:array[1..10] of integer;
 i, j:integer;
begin clrscr;
{ввод массивов А В С}
for i:=1 to n do
for j:=1 to n do
d[i,j]:=(a[i,j]+b[i,j])*c[i,j];
{вывод массива D};
readkey;
end.




--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Guest
Дата 28.12.2005, 09:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Язвк Си!

Владимир Сергеевич, спасибо, а не составит труда на Си!!



  Вверх
mvdr
Дата 28.12.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 7
Всего: 42



Цитата(Guest @ 28.12.2005, 09:51)
не составит труда на Си!!
составит . Но смысл же простой:
  • задание размерности
  • заполение массивов
  • вычисление по формуле каждого элемента нового массива d[i,j]:=(a[i,j]+b[i,j])*c[i,j]
  • вывод нового массива



--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Akina
Дата 28.12.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата
насколько я помню: сумма матриц=сумме их соответствующих элементов

да

Цитата
умножение = умножению соотв. элементов.

нет
Код

Result(i,j) = Summ(Matrix1(i,k)*Matrix2(k,j))



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
mvdr
Дата 28.12.2005, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 7
Всего: 42



Akina, точно, строка на столбец.



--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Bony
Дата 28.12.2005, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Код

Result(i,j) = Summ(Matrix1(i,k)*Matrix2(k,j))


Вот это я не понял!!!
PM MAIL ICQ   Вверх
Akina
Дата 28.12.2005, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(Bony @ 28.12.2005, 11:47)
Вот это я не понял!!!

А что непонятного? для того чтобы получить элемент матрицы-произведения Result(i,j) - i-й столбец j-й строки - нужно сложить произведения элементов i-го столбца первой матрицы на соответствующий элемент j-й строки второй матрицы.

Код

for (i=0;i<N;i++)
{
  for (j=0;j<N;j++)
  {
    Result(i,j) = 0;
    for (k=0;k<N;k++)
    {
      Result(i,j) += Matrix1(i,k) * Matrix2(k,j);
    }
  }
}



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Bony
Дата 28.12.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Это реализованно умножение!!

А сложение так?
Код

Summ(i,j)=0;
for (i=0;i<N;i++)
{
  for (j=0;j<N;j++)
  {
    Summ(i,j)+=Matrix1(i,j)+Matrix(i,j);
  }
}



PM MAIL ICQ   Вверх
Bony
Дата 28.12.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



А как сделать чтоб порядок задавал пользователь??

smile

И как ввести матрицу?
так что ли
Код

printf("vvedite");
for(i=0;i<n;i++)
scanf("%d%d", &m[][],&m[][]) // вот здесь незнаю че в скобках писать!

PM MAIL ICQ   Вверх
Akina
Дата 28.12.2005, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(Bony @ 28.12.2005, 13:14)
А сложение так?

Нет.
Код

for (i=0;i<N;i++)
{
  for (j=0;j<N;j++)
  {
    Result[i,j] = Matrix1[i,j] + Matrix[i,j];
  }
}


Цитата(Bony @ 28.12.2005, 14:27)
И как ввести матрицу?


Код

cout << "Вводим очередную матрицу, аднака...\n";
for (i=0;i<N;i++)
{
  for (j=0;j<N;j++)
  {
    cout << "\nM(",i,",",j,")=";
    cin >> Matrix(i,j);
  }
}



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Bony
Дата 28.12.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Matrix(i,j); - это функция??
Или этот массив надо просто определить int matrix[n][n]?

Это сообщение отредактировал(а) Bony - 28.12.2005, 14:41
PM MAIL ICQ   Вверх
Бегемот
Дата 28.12.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Bony, Matrix - это массив!
Если хочешь, что бы порядок задавал пользователь, создавай массив динамически....
Код

int N;
cout << "Введите порядок матрицы! : ";
cin >> N;
int **Matrix = new int *[N];
for(int i=0; i<N; i++)
   Matrix[i] = new int [N];
......................................
//освобождаем выделенную память
delete[] Matrix;

...ну или объявляй его с заведомо большой размерностью!(Плохой совет! Его не слушай)

PM MAIL   Вверх
Bony
Дата 28.12.2005, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



А если порядок const например 5, можешь код кинуть?? Войди в моё положений!!!

Условие:

Дана матрицы A,B,C n -ого порядка, найти матрицу (A+B)*C!!

PM MAIL ICQ   Вверх
Бегемот
Дата 28.12.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Bony, код не идеальный, делал упор на то, что бы было понятно!
Расписал всё последовательно!
Код

#include<iostream.h>
#include<conio.h>
int main(int argc, char* argv[])
{
   const n = 5;
   int A[n][n];
   int B[n][n];
   int C[n][n];
   int Sum[n][n];
   int Result[n][n];
// Вводим элементы матрицы A
   cout << "Введите матрицу A\n";
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
      {
         cout << "A[" << i << "][" << j<< "] = ";
         cin >> A[i][j];
      }
// Вводим элементы матрицы B
   cout << "\nВведите матрицу B\n";
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
      {
         cout << "B[" << i << "][" << j<< "] = ";
         cin >> B[i][j];
      }
// Вводим элементы матрицы C
   cout << "\nВведите матрицу C\n";
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
      {
         cout << "C[" << i << "][" << j<< "] = ";
         cin >> C[i][j];
      }
// Считаем сумму матрицы A и B
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
         Sum[i][j] = A[i][j] + B[i][j];
// Считаем произведение суммы матриц (A + B) и матрицы C
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
      {
         Result[i][j] = 0;
         for (int k=0;k<n;k++)
            Result[i][j] += Sum[i][k] * C[k][j];
      }
// Выводим результат
   cout << "\nРезультат работы программы\n";
   for (int i=0;i<n;i++)
      for (int j=0;j<n;j++)
      {
         cout << "Result[" << i << "][" << j<< "] = ";
         cout << Result[i][j] << endl;
      }
   getch();
   return 0;
}



PM MAIL   Вверх
Bony
Дата 28.12.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Вот спасибо!! Настоящие такое спасибо!!!

А что это за ошибка: Multiple declaration for 'i' ?
PM MAIL ICQ   Вверх
Бегемот
Дата 28.12.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Bony, это значит, что ты более чем один раз объявляешь переменную 'i'

Это сообщение отредактировал(а) Бегемот - 28.12.2005, 16:50
PM MAIL   Вверх
Akina
Дата 28.12.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(Bony @ 28.12.2005, 17:41)
А что это за ошибка: Multiple declaration for 'i' ?

убери декларации i,j,k в циклах for и вытащи их наверх.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Бегемот
Дата 28.12.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Цитата
убери декларации i,j,k в циклах for и вытащи их наверх

Akina, в циклах объявлены локальные переменные. Область их действия - тело цикла!

PM MAIL   Вверх
Bony
Дата 28.12.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Akina спасибо, все раьотает как по маслу!!

Ребятки, спасибо, теперь меня доаустят к экзамену, и у меня есть шанс перейти на 2-ой семестр!

Я понимаю спасибо в карман не положишь, но все же - СПАСИБО!!!
PM MAIL ICQ   Вверх
Akina
Дата 28.12.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



smile При такой учебе у тебя мало шансов дойти до 3-го семестра.
Добавлено @ 17:37
Цитата
в циклах объявлены локальные переменные. Область их действия - тело цикла!

Ясен пень... но сразу возникает 2 вопроса: 1) зачем? в данном конкретном случае. 2) откуда double definition? вот это и вправду загадка.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Bony
Дата 28.12.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.12.2005
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата(Akina @ 28.12.2005, 17:35)
При такой учебе у тебя мало шансов дойти до 3-го семестра.

Но ведь такие замечательные люди как вы!(щутка!!!)
Цитата(Akina @ 28.12.2005, 16:58)
убери декларации i,j,k в циклах for и вытащи их наверх.

Действительно, наверх вытащил и за работало!!!!
PM MAIL ICQ   Вверх
Бегемот
Дата 28.12.2005, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Цитата
Действительно, наверх вытащил и за работало!!!!

Ничего не понимаю! smile
PM MAIL   Вверх
nurkan
Дата 1.6.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Дана матрица размера NxN, содержащая как положительные, так и отрицательные элементы.
И нужно их разложить на треугольные матрицы,методом Хаушолдера или же другими методами,кроме метода Холецкого.
Помогите написать программу на C++.
Буду очень признателен.За ранее благодарю!!!!  
PM MAIL   Вверх
Rodman
Дата 1.6.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



nurkan, 
M
Rodman
создай свой топик. Только правильно!
 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.