Форум программистов, компьютерный форум, киберфорум
Наши страницы

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Напишите программу на СИ! снова геометрия(((( http://www.cyberforum.ru/cpp-beginners/thread327678.html
Нужно написать программу на си, которая это выполнит... Задано множество точек на плоскости, не лежащих на одной прямой. Определить минимальное количество точек, после удаления которых остаются...
C++ Написать программу, определяющую радиус и центр окружности, проходящей по крайней мере через три различные точки заданного множества точек Надо написать программу на СИ, определяюшую радиус и центр окружности, проходящей по крайней мере через три различные точки заданного множества точек на плоскости и содержащей внутри наибольшее... http://www.cyberforum.ru/cpp-beginners/thread327677.html
C++ exception при вызове функции по адресу (MAPILogon)
Пытаюсь прикрутить MAPI для работы с почтой. ULONG (*pMAPILogon)(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); //.................................... (FARPROC&)pMAPILogon =...
Книжки по С++ C++
Здравствуйте, я учусь на 1 курсе, где нам преподают си++. По сути нам объясняют как употреблять ключевые слова и что они "делают". Но как они конкретно влияют на программу я не пойму. Во время...
C++ Есть алгоритм для арбитражного торгового робота на РТС и ММВБ, нужны два - три партнера. http://www.cyberforum.ru/cpp-beginners/thread327655.html
Арбитражный робот предполагает безубыточную торговлю. Как правило доход незначительный. В моем случае доходность от 1 до 10 % в день. Хочу написать его самостоятельно, но пока в программировании...
C++ Перегрузка функций Моя последняя лаба=( Светлые умы, помогите... Выполнить задания пятой и шестой лабораторной работы, оформив каждый пункт задания в виде шаблона функции. Все необходимые данные должны передаваться им... подробнее

Показать сообщение отдельно
xAtom
916 / 741 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.06.2011, 18:30

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <stdio.h>
#include <math.h>
 
 
struct vector {
   long x, y;
};
 
 
// сложение векторов
struct vector  add(struct vector* a, struct vector* b) {
    struct vector res;
    res.x = a->x + b->x;
    res.y = a->y + b->y;
    return res;
}
 
// вычитание векторов
struct vector  sub(struct vector* a, struct vector* b) {
    struct vector res;
    res.x = a->x - b->x;
    res.y = a->y - b->y;
    return res;
}
 
// скалярное произведение векторов
struct vector  scale(struct vector* a, struct vector* b) {
    struct vector res;
    res.x = a->x * b->x;
    res.y = a->y * b->y;
    return res;
}
 
// умножение вектора на число
struct vector  mul(struct vector* a,long N) {
    struct vector res;
    res.x = a->x * N;
    res.y = a->y * N;
    return res;
}
 
// длина вектора
long length(struct vector*  vec) {
    long result = sqrtl(powl(vec->x, 2) + powl(vec->y, 2));
    return result;
}
 
// сортировка векторов по длине, от большего к меньшему
void  sort(struct vector*  vec, struct vector*  end) {
     int id;
     struct vector* last;
     struct vector* first;
     struct vector  tmp;
 
     while(1) {
           id = 0;
           first = vec;
           last  = vec + 1;
           for( ; last != end; ++last, ++first) {
 
               if(length(first) < length(last)) {
                   tmp    = *first;
                   *first = *last;
                   *last  = tmp;
                   id |= 1;
               }
           }
           if(! id)
              break;
     }
}
 
 
 
 
int main(int argc, char* argv[])
{
     struct vector a = { 3, 5 };
     struct vector b = { 2, 3 };
     struct vector c;
 
     struct vector vec[5] = { { 2, -2 }, { 2, 4 }, { -5, 9 }, { 9, -7 }, { 2, 3 } };
 
     int i, size   = sizeof(vec) / sizeof(struct vector);
     sort(vec, vec + size);
     for(i = 0; i < size; i++)
            printf("|%d,%d|, ", vec[i].x, vec[i].y);
 
 
     c = add(&a, &b);
     printf("\n\nadd(%d, %d)\n", c.x, c.y);
 
     c = sub(&a, &b);
     printf("sub(%d, %d)\n", c.x, c.y);
 
     c = scale(&a, &b);
     printf("scale(%d, %d)\n", c.x, c.y);
 
     c = mul(&a, 4);
     printf("mul(%d, %d)\n", c.x, c.y);
 
     printf("a - %d, b - %d\n", length(&a), length(&b) );
 
 
     getchar();
     return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru