Форум программистов, компьютерный форум CyberForum.ru

Найти скалярное произведение двух n-мерных векторов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.68
DimaSoldier
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 31
21.12.2010, 23:13     Найти скалярное произведение двух n-мерных векторов #1
У меня вообще не понимаю. И ничего не получился!
Задача СИ :
Написать программу, которая находит скалярное произведение двух n-мерных векторов.
Указание. Скалярное произведение определяется по формуле
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DimaSoldier
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 31
22.12.2010, 23:24  [ТС]     Найти скалярное произведение двух n-мерных векторов #2
жду...

Добавлено через 10 часов 21 минуту
Ну это самая последняя задача и все!

Добавлено через 3 часа 56 минут
Вверх
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
23.12.2010, 00:26     Найти скалярное произведение двух n-мерных векторов #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <conio.h>
#include <vector>
#include <stdio.h>
#include <numeric>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    size_t n;
    cout << "Введите размерность пространства" << endl;
    cin >> n;
    vector<vector<int> > matrix(2, vector<int>(n));
    for (vector<vector<int> >::iterator i = matrix.begin(); i != matrix.end(); ++i)
    {
        cout << "Введите вектор" << endl;
        for (vector<int>::iterator j = i->begin(); j != i->end(); ++j)
            cin >> *j;
    }
    vector<int> vec;
    for (size_t i = 0; i < n; ++i)
        vec.push_back(matrix[0][i] * matrix[1][i]);
    cout << "Скалярное произведение " << accumulate(vec.begin(), vec.end(), 0) << endl;
 
    _getch();
    return EXIT_SUCCESS;
}
DimaSoldier
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 31
23.12.2010, 07:12  [ТС]     Найти скалярное произведение двух n-мерных векторов #4
Это совсем другая задача!
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.12.2010, 07:25     Найти скалярное произведение двух n-мерных векторов #5
DimaSoldier, Не-а. Решение верное. По формуле.
Правда на С++.
DimaSoldier
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 31
23.12.2010, 13:24  [ТС]     Найти скалярное произведение двух n-мерных векторов #6
ForEveR, Хорошо! Ну пожалуйста переписать на СИ ?
DimaSoldier
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 31
09.01.2011, 23:47  [ТС]     Найти скалярное произведение двух n-мерных векторов #7
Ну пожалуйста переписать на СИ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 01:15     Найти скалярное произведение двух n-мерных векторов
Еще ссылки по теме:

Вычислить скалярное произведение двух векторов C++
C++ ОпенМП расспаралелить скалярное произведение двух n-мерных векторов (массивов)
C++ Найти пару векторов из заданного набора имеющую минимальное скалярное произведение

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.01.2011, 01:15     Найти скалярное произведение двух n-мерных векторов #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <conio.h>
#include <stdio.h>
#include <malloc.h>
 
int main()
{
    size_t n, i, j;
    printf("Enter the space dimension\n");
    scanf("%u", &n);
    double* mas[2];
    for (i = 0; i < 2; ++i)
    {
        mas[i] = (double*)realloc(NULL, sizeof(double) * n);
        printf("Enter the vector %u\n", i + 1);
        for (j = 0; j < n; ++j)
            scanf("%lf", &mas[i][j]);
    }
    double S = 0;
    for (i = 0; i < n; ++i)
        S += mas[0][i] * mas[1][i];
    printf("Scalar product %lf\n", S);
    getch();
    for (i = 0; i < 2; ++i)
        mas[i] = (double*)realloc(mas[i], NULL);
    return 0;
}
Yandex
Объявления
10.01.2011, 01:15     Найти скалярное произведение двух n-мерных векторов
Ответ Создать тему
Опции темы

Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru