0 / 0 / 1
Регистрация: 23.10.2017
Сообщений: 11
1

Написать двойную функцию doubl(double [], double []) вычисляющая скалярное произведения векторов, заданных как параметры

06.11.2017, 03:46. Показов 553. Ответов 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
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
double il(double a[3], double b[3])
{
    int i;
    return a[i]*b[i];
}
 
int main()
{
    double a[3], b[3];
    int k;
    for (int i=0;i<3;i++) {cout<<"Podaj wartosc "<<i<<"-go elementu: "; cin >> a[i]; cout<<endl;}
    for (int i=0;i<3;i++) {cout<<"Podaj wartosc "<<i<<"-go elementu: "; cin >> b[i]; cout<<endl;}
    for (int i=0;i<3;i++)
    k+= il(a[i],b[i]);
    cout << k ;          
 
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2017, 03:46
Ответы с готовыми решениями:

Написать функцию, которая почленно заключает первые четыре элемента двух заданных как параметры массивов типа double
Написать функцию, которая почленно заключает первые четыре элемента двух заданных как параметры...

Написать функцию int Search ( double A[], int n , double x), которая находит в массиве double A[n] элемент, значение которого равно x
Написать функцию int Search ( double A, int n , double x), которая находит в массиве double A...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std;...

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double...

3
836 / 639 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
06.11.2017, 08:20 2
C++
1
2
3
double dot(double* a, double* b){
    return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
}
0
0 / 0 / 1
Регистрация: 23.10.2017
Сообщений: 11
06.11.2017, 10:24  [ТС] 3
Геомеханик, Выскакивает ошибка, что строчка k+= il(a[i],b[i]); неправильная, а по поводу первой, она по заданию должна такая быть double il(double a[3], double b[3])
0
308 / 220 / 74
Регистрация: 23.05.2011
Сообщений: 981
06.11.2017, 14:38 4
У тебя непонимание функций и видимостей переменных. Стоит это повторить.

Та i, что внутри функции, не та, что там, где вы её вызываете. Поэтому она неинициализирована.

А так, правильная версия твоего кода.

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
//g++  5.4.0
 
#include <iostream>
 
using namespace std;
 
constexpr size_t VECTOR_SIZE = 3; // Чтобы не было магических констант
 
// Делаем более понятное имя функции
double scalar_product(double a[VECTOR_SIZE], double b[VECTOR_SIZE]) 
{
    // Засовываем всё вычисление произведения в функцию
    double sum = 0;
    for (size_t i = 0; i<VECTOR_SIZE; ++i)
        sum += a[i]*b[i];
    return sum;
}
 
int main()
{
    double a[VECTOR_SIZE], b[VECTOR_SIZE];
    double k; // скалярное произведение должно быть того же типа, что и множители 
    for (int i=0;i<3;i++) {cout<<"Podaj wartosc "<<i<<"-go elementu: "; cin >> a[i]; cout<<endl;}
    for (int i=0;i<3;i++) {cout<<"Podaj wartosc "<<i<<"-go elementu: "; cin >> b[i]; cout<<endl;}
    // убрали цикл, так как вычисление скалярного произведения — один вызов функции
    k = scalar_product(a,b);
    cout << k ;          
 
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2017, 14:38
Помогаю со студенческими работами здесь

Создать функцию с параметрами GetFunctionValue(double& a, double& b, double& c, double& x)...
Есть код что считает нужно сделать пару манипуляций что у не могу реализовать 1) создать функцию...

Напишите функцию double power(double a, int n), вычисляющую значение a^n
Чем мой код отличается от библиотечной функции pow()? #include &lt;stdio.h&gt; double power(double a,...

Передача параметров в функцию. Ошибка cannot convert 'double' to 'double*'
Здравствуйте! Задали исправить ошибки в коде. Вот его часть: double MyF1(double *x) { *x*=...

Ругается на строчку double[] wArray = new double[n];, double[] w = new double[n];
Ругается на строчку double wArray = new double;, double w = new double; Не удаётся преобразовать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru