Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2011, 18:10   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию класс атом

ЗДРАВСТВУИТЕ
мне надо написать прогу которая моделирует поведение атомов, а точнее элементарных кристалов (элементов) в твёрдом теле.
Элементы взаимодействуют между собой, к примеру если затронуть один элемент, он передаст это соседним элементам, те в свою очередь, соседним и т.д. по телу пробежит аккустическая волна. Ну там много видв взаимодействий(тепловое, аккустическое, магнитное) не будем на этом пока, зацикливатся рассматриваем механическое взаимодействие, которое порождает только аккустические волны и перемещает всё тело.
для начала я решил упростить себе садачу, по этому рассматриваю пока, двумерное пространство.
итак у каждого элемента следующие параметры:

int x, y; //коортинаты
int r; //ориентация в пространстве

параметр r значения 0, 1, 2, 3;

char color;//цвет или тип элемента

параметр color не меняется под воздействием внешних сил и остаётся не изменным с момента рождения элемента.

итак я решил написать класс element
Код:
#include <iostream>
#include <stdlib.h>

using namespace std;

class element
{
    public:
        element()
        {
            x = 0, y = 0;
            r = 0;//ооринтация вверх
            act = true;
            cont = {0};
        }

        //метод вращает элемент, усилие кручения
        //пока не дописан
        int rotat (bool L, bool R)
        {
            if ((L == true) && (R == false))
            {
                r -= 1;
            }
            if (r > 3)
                r = 0;
            if (r < 0)
                r = 3;
        }

//тут ещё будут методы движения

    private:
        int x, y;
        int r;//
        char color;
        bool act;
        bool cont [4];//определяет с какими элементами контактирует
};



int main()
{
    return 0;
}

далее начинаются трудности-

создадим тело из 10000 кристаллов(элементов)
площадка 100 на 100 элементов

Код:
element telo [10000];
если прикладывать усилие к одному элементу, к примеру тянуть вверх, он перадаст это усилие четырем сосетям те своим четырём соседям И ВОТ ТУТ ПРОБЛЕМА здесь это должно происходить одновременно в цикле это не получится.

на первом шагу столкнулся спроблемой
как зделать чтобы каждый элемент действовал сам по себе но одновременно с другими
SAMOUCHKA вне форума Ответить с цитированием
Старый 03.09.2011, 18:20   #2
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
как зделать чтобы каждый элемент действовал сам по себе но одновременно с другими
Прямо вот совсем одновременно? Многопоточность (да и то, при условии наличия нескольких процессоров у пользователя). Сомневаюсь, что именно это вам нужно.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 03.09.2011, 18:37   #3
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Прямо вот совсем одновременно? Многопоточность (да и то, при условии наличия нескольких процессоров у пользователя). Сомневаюсь, что именно это вам нужно.
да пожалуй согласен.
тем не менее я весь день думал и над последовательным способом. извел кучу бумаги. очень запутано получается, много if -ов да и времени, у процессора, отнимит прилично. что если элементов не 10000, а 1000000000. и еще это упрощенный двумерный вариант, а должен быть трёхмерный. тут вообще мозги закипят
SAMOUCHKA вне форума Ответить с цитированием
Старый 03.09.2011, 18:55   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,871
По умолчанию

ты сначала напиши взатимодействие с одним соседним атомом в одном направлении. ато замахнулся сразу на 3D-модель кристалла. мозги не только вскипят, но и вспучатся и лопнут... кстати, там взаимодействие по какому закону? вандерваальсовы силы тут уже не катят, так как ты будешь передавать и изображать взаимодействие уже решил?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
Класс Chartvit Visual C++ 2 05.01.2011 22:20
Солнечная система - атом Altera Свободное общение 14 25.11.2008 18:04
Класс Юлёк Фриланс 6 15.06.2008 15:00