Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 9

Вычислить скалярное произведение векторов методом parallel.for

30.10.2016, 01:30. Показов 1457. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вычислить скалярное произведение векторов методом parallel.for правильно? если нет помогите(

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System; 
using System.Threading.Tasks; 
namespace TPLscalarProd 
{ 
class Program 
{ 
static void Main() 
{ 
double[] x = new double[] { 1, -5, 4, -7, 8, -15, 3, 2, -2, 1 }; 
int n = x.Length; 
int m = n / 2; 
double p1 = 0,p2=0; 
Parallel.For(0, 2, i => 
{ if (i == 0) { 1 поток действия для вашего варианта }; 
if (i == 1) { 2 поток действия для вашего варианта}); }
 
Console.WriteLine("р1: " + (p1)); 
Console.WriteLine("р2: " + (p2)); 
Console.WriteLine("Норма вектора: " + (p1 + p2)); 
Console.ReadLine(); 
} } }
Добавлено через 40 минут
тут вроде правильно но не до конца нужно еще сложить элементы произведения наверно

Добавлено через 1 час 19 минут
ПРОСТИТЕ НЕ ТО СКИНУЛ, КАК МНЕ ЭТО ВСЕ СЛОЖИТЬ???или я не правильно по заданию делаю?помогите кто разбирается(((

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
namespace MultVectors
{
    class Program
    {
        static int[] vector1 = new int[4] { 1, 2, 3, 4 };
        static int[] vector2 = new int[4] { 5, 6, 7, 8 };
        static int[] vector3 = new int[4];
     public   static void Main(string[] args)       
            {
    Parallel.For(0, 4, Vect);
    Console.ReadLine();
            }
       
        static void Vect(int x)
            
        {
            Console.WriteLine("x=" + x);
            vector3[x] = vector1[x] * vector2[x];          
            Console.WriteLine("Выполняется задача {0}", Task.CurrentId);
            for (var i = 0; i < vector1.Length; i++)
            {
                Console.WriteLine(vector1[i] + "*" + vector2[i] + "=" + vector3[i]);А
              
            }
            Console.WriteLine(" ");
            Console.ReadKey();
            int[] z = new int[5];
            Console.WriteLine("Massivtin kosindisin esepteu!!!");
            for (int i = 0; i < 5; i++)
            {
                Console.Write("Z[{0}]=", i);
                z[i] = int.Parse(Console.ReadLine());
            }
            int sum = 0;
            for (int i = 0; i < 5; i++)
            {
                sum = z[i] + sum;
            }
            Console.Write("sum = {0}", sum);
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2016, 01:30
Ответы с готовыми решениями:

(x0,y0) и (x1,y1)- координаты двух векторов. Вычислить их сумму,разницу, скалярное произведение и длинны
Дано(x0,y0) и (x1,y1)- координаты двух векторов. Вычислить их сумму,разницу, скалярное произведение и длинны.

Найти скалярное произведение двух n-мерных векторов X и Y
Найти скалярное произведение двух n-мерных векторов X и Y Спасибо

Найти скалярное произведение двух n-мерных векторов X и Y
Здравствуйте,помогите пожалуйста сделать из этого кода работоспособную программу Заранее спасибо Найти скалярное произведение двух...

6
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
30.10.2016, 02:20
Djinn_Slayer, Перегрузка метода Parallel.For, Parallel Aggregation
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int n = 100;
int[] v1 = new int[n]; // !
int[] v2 = new int[n]; // !
 
int dotProd = 0;
object lockObject = new object();
Parallel.For(0, n, 
    () => 0,
    (i, state, partialSum) => {
        Console.WriteLine("{0}'е компоненты умножаются в потоке #{1}", 
            i, Thread.CurrentThread.ManagedThreadId);
        return partialSum + v1[i] * v2[i];
    },
    (partialSum) => { lock (lockObject) {
            Console.WriteLine("Поток #{0} прибавляет свой результат к сумме",
                Thread.CurrentThread.ManagedThreadId);
            dotProd += partialSum;
        } });
 
Console.WriteLine("Ответ: " + dotProd);
0
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 9
30.10.2016, 22:51  [ТС]
выдает ошибку почему то не работает
0
.NET senior
 Аватар для bax_tang
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
30.10.2016, 22:58
Djinn_Slayer, какую ошибку выдаёт и на каком этапе?
0
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 9
30.10.2016, 23:08  [ТС]
я исправил запустил НО вы серьезно я запустил прогу там какая то жесть.... 100 строк
0
.NET senior
 Аватар для bax_tang
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
30.10.2016, 23:10
Djinn_Slayer, добавьте, пожалуйста, конкретики - текст ошибки, например.

Не по теме:

Телепаты в отпуске.

0
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 9
30.10.2016, 23:19  [ТС]
Вычислить скалярное произведение векторов методом parallel.for
я чет не понял где что умножается) где еще цифры чето там гигантская ком строка вылезла

Добавлено через 2 минуты
bax_tang, Спасибо мне уже сделали исправили то что скинули
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApplication19
{
class Program
{
static void Main(string[] args)
{
int n = 100;
int[] v1 = new int[4] { 1, 2, 3, 4 };// !
int[] v2 = new int[4] { 5, 6, 7, 8 };// !

int dotProd = 0;
object lockObject = new object();
Parallel.For(0, 4,
() => 0,
(i, state, partialSum) =>
{
return partialSum + v1[i] * v2[i];
},
(partialSum) =>
{
lock (lockObject)
{
dotProd += partialSum;
}
});

Console.WriteLine("Ответ: " + dotProd);
Console.ReadLine();
}
}
}

Добавлено через 3 минуты
Ошибка 1 Имя "Thread" отсутствует в текущем контексте c:\users\никита\documents\visual studio 2013\Projects\ConsoleApplication25\Conso leApplication25\Program.cs 24 28 ConsoleApplication25

Вот такую ошибку выдавало в том коде что скинули мне
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2016, 23:19
Помогаю со студенческими работами здесь

Написать функцию вычисояющую скалярное произведение векторов
3. Написать функцию вычисояющую скалярное произведение векторов

вычислить скалярное произведение векторов
1)Дан массив X=(12.8,-5.6,28,41,52,4.281,-0.025,0,-5.1) Вычислить и напечатать кол-во положительных элементов массива X и квадрат суммы...

Вычислить скалярное произведение векторов
На двух скрещивающихся прямых, угол между которыми равен \arccos \frac 14, отложены отрезки MN = 10 и RS =6 таким образом, что общий...

Вычислить скалярное произведение векторов
Задание:

Вычислить скалярное произведение векторов
Вычислить скалярное произведение векторов Х=(х1, х2, ..., хn) и Y=(y1, y2, ..., yn), где n - задается произвольно.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru