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

Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле

16.01.2019, 13:32. Показов 2990. Ответов 2
Метки си (Все метки)

Author24 — интернет-сервис помощи студентам
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле. Вычисление скалярного произведения оформить в виде процедуры.
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
50
51
52
53
54
55
56
57
58
#include <stdio.h> 
#include <stdlib.h> 
#include < math.h > 
#define N 4 
 
double s(int *a, int *b) {
    int i, k;
    double sum;
    k = 0; sum = 0;
    for (i = 1; i <N;i++) {
        k = a[i] * b[i];
        sum = +k;
    }
    return sum;
 
}
 
 
int main() {
 
    int  i, x[N], y[N];
    double a, dx, dy, sumx, sumy, kx, ky; 
 
    //ввод
    printf("Vvedite koordinati vectora X");
    for (i = 0;i < N;i++)
        scanf_s("%d", &x[i]);
 
    printf("Vvedite koordinati vectora Y");
    for (i = 0;i < N;i++)
        scanf_s("%d", &y[i]);
 
    //вывод
    printf("Vector X:");
    for (i = 0;i < N;i++)
        printf("X[%d] = %d\n",i, x[i]);
    printf("Vector Y:");
    for (i = 0;i < N;i++) 
        printf("Y[%d] = %d\n",i, y[i]);
 
 
        kx = ky = sumx = sumy = dx = dy = a = 0;
        for (i = 1;i < N;i++) {
            kx = x[i] * x[i];
            ky = y[i] * y[i];
            sumx = +kx;
            sumy = +ky;
        }
        dx = sqrt(sumx);
        dy = sqrt(sumy);
        printf("sumx = %.2lf, sumy = %.2lf", sumx, sumy);
        printf("dx = %.2lf,dy = %.2lf", dx, dy);
        a = s(*x,*y) / (dx*dy);
 
        printf("Ugol megdu vectorami = %lf", acos(a));
 
        getch();
    }
Компилятор ошибок не выдает, но выполнение программы зависает на строке k = a[i] * b[i]; в процедуре. Подскажите, пожалуйста, что не так.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2019, 13:32
Ответы с готовыми решениями:

Заданы два вектора. Определить угол между векторами
№1 Вычисления в математических задачах Заданы два вектора с координатами (X1, Y1, Z1) и (X2, Y2, Z2). Определить угол между векторами. ...

Заданы два вектора с координатами (Хи Yu Z,) и (Х2, Y2, Z^). Определить угол между векторами
Заданы два вектора с координатами (Х1 Y1 Z1) и (Х2, Y2, Z2). Определить угол между векторами. Нужно написать простенькую программу на...

Заданы два вектора с координатами (x1, y1, z1) и (x2, y2, z2). Определить угол между векторами
Смотрел примеры на паскале но нужно написать на Dev-C++ помогите плз!

2
 Аватар для moskitos80
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
16.01.2019, 14:18
C
1
2
3
...
a = s(*x,*y) / (dx*dy); // так вы пытаетесь передать значение 1-го элемента массива
...
- не верно. Правильно так:
C
1
2
3
...
a = s(x,y) / (dx*dy);
...
0
2485 / 1149 / 709
Регистрация: 25.04.2016
Сообщений: 3,299
17.01.2019, 21:44
Anya394, я не знаю по какой формуле вы находите угол между векторами, но меня насторожили некоторые моменты в вашем коде.

Первое: в функции double s(int *a, int *b) у вас цикл действительно начинается с 1? Такой же вопрос к циклу в main.
Второе, в той же функции sum = +k; действительно так и должно быть? Потому как, если вы хотели написать sum = sum + k; то это записывается немного иначе: sum += k; Аналогичная форма записи встречается еще пару раз по тексту.

Ну и на ошибку передачи указателей в функцию вам уже любезно указал moskitos80.

В общем, поправил вашу программу на свое усмотрение, но не уверен действительно ли она считает то, что нужно, поскольку не знаю вашей формулы:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 4
 
double s (int *a, int *b)
{
    int i, k = 0;
    double sum = 0.0f;
    for (i=0; i<N; i++)     // <- тут точно цикл c 1 ?
        sum += a[i] * b[i];
    return sum;
}
void print (int *a)
{
    int i;
    printf("{ ");
    for (i=0; i<N; i++)
        printf("%d ", a[i]);
    printf("}\n");
}
 
int main (void)
{
    int  i, x[N], y[N];
    double a, dx, dy, sumx, sumy;
 
    //ввод
    printf("Vvedite koordinati vectora X:\n");
    for (i=0; i<N; i++)
    {
        printf("\tx%d = ", i+1);
        scanf("%d", &x[i]);     // scanf_s("%d", &x[i]);
    }   printf("\n");
 
    printf("Vvedite koordinati vectora Y:\n");
    for (i=0; i<N; i++)
    {
        printf("\ty%d = ", i+1);
        scanf("%d", &y[i]);     // scanf_s("%d", &y[i]);
    }   printf("\n");
 
    //вывод
    printf("Vector X ");    print(x);
    printf("Vector Y ");    print(y);
    printf("\n");
 
    sumx = sumy = 0.0f;
    for (i=0; i<N; i++)     // <- тут точно цикл c 1 ?
    {
        sumx += x[i] * x[i];
        sumy += y[i] * y[i];
    }
    dx = sqrt(sumx);
    dy = sqrt(sumy);
    printf("sumx = %.2lf\tsumy = %.2lf\n", sumx, sumy);
    printf("dx = %.2lf\tdy = %.2lf\n", dx, dy);
    a = s(x,y) / (dx*dy);
 
    printf("Ugol megdu vectorami = %lf\n", acos(a));
 
    getchar();  // getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2019, 21:44
Помогаю со студенческими работами здесь

Заданы 2 вектора с координатами. Определить угол между векторами
Заданы 2 вектора с координатами (X1,Y1,Z1) и (X2,Y2,Z2). Определить угол между векторами. Помогите пожалуйста решить!Заранее...

Заданы 2 вектора. Определить угол между векторами x и y. Вычисление скалярного произведения оформить в виде процедуры
Нуждаюсь в помощи т.к. совсем не разбираюсь в Pascal Заданы 2 вектора. Определить угол между векторами x и y. Вычисление скалярного...

Определить угол a между векторами x и y по формуле
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле(Прикрепленна) Вычисление...

Определить угол a между векторами x и y по формуле
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле: \alpha =\arccos...


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

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

Новые блоги и статьи
Введение в Q# - язык квантовых вычислений от Microsoft
EggHead 19.05.2025
Microsoft вошла в гонку технологических гигантов с собственным языком программирования Q#, специально созданным для разработки квантовых алгоритмов. Но прежде чем погружаться в синтаксические дебри. . .
Безопасность Kubernetes с Falco и обнаружение вторжений
Mr. Docker 18.05.2025
Переход организаций к микросервисной архитектуре и контейнерным технологиям сопровождается лавинообразным ростом векторов атак — от тривиальных попыток взлома до многоступенчатых кибератак, способных. . .
Аугментация изображений с Python
AI_Generated 18.05.2025
Собрать достаточно большой датасет для обучения нейронной сети — та ещё головная боль. Часами вручную размечать картинки, скармливать их ненасытным алгоритмам и молиться, чтобы модель не сдулась при. . .
Исключения в Java: советы, примеры кода и многое другое
Javaican 18.05.2025
Исключения — это объекты, созданные когда программа сталкивается с непредвиденной ситуацией: файл не найден, сетевое соединение разорвано, деление на ноль. . . Список можно продолжать до бесконечности. . . .
Как сделать SSO (Single Sign-On) в C# приложении
stackOverflow 18.05.2025
SSO — это механизм, позволяющий пользователю пройти аутентификацию один раз и получить доступ к нескольким приложениям без повторного ввода учетных данных. Вы наверняка сталкивались с ним, когда. . .
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru