|
|
|
| Помогите пожалуйста!
Последняя надежда на вас)
нужно написать программу и блок-схему,ну или хотябы просто программу
Дана матрица 6х8 с действительными числами(float).
Создайте вектор столбцом с максимальной дистанцией от первого ряда.
Дистанция : dj=сумма,где і=1 по n*|aij|*|ai1|,j!=1
i,j,ij,i1 - индексы
Джей(обычная маленькая буква не равно единицы) | |
|
|
|
|
|
|
|
для: Анастасия
(29.12.2011 в 18:48)
| | 1. 6 - это количество строк, а 8 - количество столбцов?
2. А в формуле n*|aij|*|ai1| откуда берется n? Это просто 8 (или 6, если ответ на первый вопрос отрицательный)? | |
|
|
|
|
|
|
|
для: cheops
(29.12.2011 в 19:07)
| | 1.6-столбец
8-строка
2. там идет значок суммы.вверху n,внизу i=1,после значка суммы произведение двух модулей |aij|*|ai1| | |
|
|
|
|
|
|
|
для: Анастасия
(29.12.2011 в 20:13)
| | Хм... вот судя по формуле, 6 - это все-таки строка, а 8 - столбец, либо приходится в формуле менять местами все индексы. Вот что у меня получилось. Кроме того не понятно, это дистанция должна получаться одна на строку?
#include<iostream>
using namespace std;
// Функция распечатывает матрицу
// matrix - адрес двумерного массива
// row - количество рядов
// col -количество столбцов
void print_matrix(double *matrix, int const row, int const col)
{
// Вспомогательные переменные
int i, j;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
cout << *(matrix + i * (row - 1) + j) << " ";
}
cout << endl;
}
}
// Главная функция
void main()
{
// Вспомогательные переменные
int i, j;
const int ROW = 4;
const int COL = 3;
// Объявляем матрицу 6x8
double matrix[ROW][COL];
// Результирующий вектор
double vector[ROW];
// Инициализируем элементы матрицы
for(i = 0; i < ROW; i++)
{
cout << "Вводим элементы " << i << "столбца" << endl;
for(j = 0; j < COL; j++)
{
cout << i << " " << j << " = ";
cin >> matrix[i][j];
// Сразу переводим все числа с положительные
// чтобы потом не возиться с модулем числа
if(matrix[i][j] < 0) matrix[i][j] = -matrix[i][j];
}
}
// Выводим для контроля, то что получилось
cout << endl;
print_matrix(&matrix[0][0], ROW, COL);
// Формируем вектор дистанций
for(i = 0; i < ROW; i++)
{
vector[i] = 0;
for(j = 1; j < COL; j++)
{
vector[i] += matrix[i][j] * matrix[i][0];
}
}
// Выводи вектор
cout << endl;
for(i = 0; i < ROW; i++)
{
cout << "vector[" << i << "] = " << vector[i] << endl;
}
// Пауза перед завершением программы
system("pause");
} |
Лучше вручную задачу решить, я намеренно, в программе уменьшил значения в двое до 3 и 4, если вводить значения от 1 до 12 то получается вот такая матрица
1 2 3
4 5 6
7 8 9
10 11 12 | а ответ
Это хотя бы близко лежит к тому, что нам надо? | |
|
|
|