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

Сместить на плоскости три точки с определенной закономерностью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объяснить код http://www.cyberforum.ru/cpp-beginners/thread1542534.html
Может кто-нибудь смог бы закомментировать данные участок кода или объяснить что за что отвечает( можно еще и ссылки на сторонние ресуры скинуть)..? Пока дальше циклов и простых функций не продвинулся, а разобраться с кодом очень надо! Заранее спасибо. ... конкретно данный участок позволяет найти повторяющиеся слова(2 и более раза) в строке и образует из них новую последовательность. ...
C++ Найти простые числа и занести их в новый массив Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. Первая функция ищет простые числа и заносит их в новый массив, вторая – все числа кратные трем, третья – все четные числа. В программе создайте массив из 3-х указателей на эти функции. Добавьте меню, в котором пользователь может выбрать желаемую... http://www.cyberforum.ru/cpp-beginners/thread1542516.html
Ошибка при определении переменной в switch C++
case 2: // почасовые работники - фиксированная плата за 40ч, после 40ч полуторная ставка int workingNorm = 40; int hours; rate = 1.5; // ставка за сверхурочные часы cout << "Enter the salary for hour: "; cin >> salary; cout << "Enter the number of hours: ";
Странная инициализация, объясните код C++
Встретил такой код: int x = (3, 2 , 5 , 4 ); std::cout<<x;//4 Вопросы: -как это называться; -зачем; -что происходит в этом случае; Спасибо!
C++ Как сравнить элемент массива с другими элементами этого же по значению? http://www.cyberforum.ru/cpp-beginners/thread1542492.html
Здравствуйте, мне нужно сравнить определенный элемент массива с другими элементами по значению. К примеру дан массив чисел. Мне нужно сравнить его элемент по значению. То есть встречаются ли в нем другие элементы одинакового значения.
C++ Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается ? подробнее

Показать сообщение отдельно
Barrent
 Аватар для Barrent
212 / 88 / 27
Регистрация: 04.05.2013
Сообщений: 260
Завершенные тесты: 1
02.10.2015, 14:15     Сместить на плоскости три точки с определенной закономерностью
Если я вообще правильно понял задачу:
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
#include "stdafx.h"
#include <math.h>
#include <iostream>
 
using namespace std;
 
class Otrezok
{
protected:
    double x1, x2;
    double y1, y2;
    double L;
    double fi;
public:
    Otrezok(int x1, int y1, int x2, int y2)
    {
        //проверка
        if ((x1 <= 1000) || (x1 >= 0))
            this->x1 = x1;
        else this->x1 = 0;
        if ((x2 <= 1000) || (x2 >= 0))
            this->x2 = x2;
        else this->x2 = 0;
        if ((y1 <= 500) || (y1 >= 0))
            this->y1 = y1;
        else this->y1 = 0;
        if ((y2 <= 500) || (y2 >= 0))
            this->y2 = y2;
        else this->y2 = 0;
        ////////////////////////////////////
        L = sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); //Dlina
    }
    void oMethod(int x12, int y12)
    {
        //тело метода
        fi = atan((y1 - y2) / (x1 - x2));
        x1 = x12;
        y1 = y12;
        x2 = L*cos(fi) + x12;
        y2 = L*sin(fi) + y12;
    }
    int getX1() { return x1; }
    int getX2() { return x2; }
    int getY1() { return y1; }
    int getY2() { return y2; }
};
class Lomanaya : public Otrezok
{
private:
    double x3, y3;
    double L;
    double fi;
public:
    Lomanaya(int x1, int y1, int x2, int y2, int x3, int y3) : Otrezok(x1, y1, x2, y2) //нашли длину для
                                                                                       //отрезка
    {
        //прверили другие точки
        if ((x3 <= 1000) || (x3 >= 0))
            this->x3 = x3;
        else this->x3 = 0;
        if ((y3 <= 1000) || (y3 >= 0))
            this->y3 = y3;
        else this->y3 = 0;
        //////////////////////////////////////
        //измерим отрезок для последней точки
        L = sqrt((x3 - x2)*(x3 - x2) + (y3 - y2)*(y3 - y2));
    }
 
    void lMethod(int x12, int y12)
    {
        fi = atan((y3 - y2) / (x3 - x2));
        oMethod(x12, y12);      
        x3 = L*cos(fi) + x2;
        y3 = L*sin(fi) + y2;
 
    }
    int getX3() { return x3; }
    int getY3() { return y3; }
};
 
void main()
{
    Lomanaya b(3, 2, 9, 4, 10, 3);
    int x12 = 4;
    int y12 = 4;
    cout << "[" << b.getX1() << ":" << b.getY1() << "]" << "  [" << b.getX2() << ":" << b.getY2() << "]" << "  [" << b.getX3() << ":" << b.getY3() << "]" << endl;
    b.lMethod(x12, y12);
    cout << "[" << b.getX1() << ":" << b.getY1() << "]" << "  [" << b.getX2() << ":" << b.getY2() << "]" << "  [" << b.getX3() << ":" << b.getY3() << "]" << endl;
 
    system("pause");
}
Для того, чтобы обойтись 1 методом, нужно в Ломаной хранить отрезки в виде массива и при изменении 1 точки в цикле по цепочке менять весь массив.
Еще можно хранить отрезки в виде двунаправленного списка. В этом случае при вызове метода обновления координат отрезка, он будет сообщать соседям о необходимости обновления.
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru