Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 5

Построение модели движения краевых дислокаций в кристалле

28.12.2020, 19:46. Показов 1020. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, нужно построить модель передвижения верхней части кристалла относительно нижней.
Форумом пользуюсь редко, вроде сделал вложения, но уверен, что сделал это неправильно, там будет приведена ожидаемая картина(получена путем сдвига все верхней части кристалла, а не одного лишь столба), если не будет, дополню ниже. Первый слой атомов должен занять место второго слоя, второй-третьего, и так далее. Код программы прикреплен ниже. Помогите исправить ошибку, заранее благодарю.
Миниатюры
Построение модели движения краевых дислокаций в кристалле   Построение модели движения краевых дислокаций в кристалле  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2020, 19:46
Ответы с готовыми решениями:

Построение модели кругового движения
Здравствуйте. Строю модель кругового движения машин. Имеется прямоугольник(машинка), которая двигается по окружности. К окружности...

Построение формальной модели движения тела
задача "Бросание мячика в стенку" нужно построить график, который будет отражать траекторию полета мяча... вот собственно сама...

Построение полной нелинейной математической модели пространственного движения зенитной управляемой ракеты
Не получается может у кого есть пример, например а матлаб/симулинк, поделитесь пожалуйста

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.12.2020, 19:58
Цитата Сообщение от RocketonZ Посмотреть сообщение
Код программы прикреплен ниже
И где он?
0
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 5
28.12.2020, 19:59  [ТС]
Прошу прощения, совсем забыл)
Pascal
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
uses graphABC;
var
  parametr,r,a,b,c,d,e,f,dx:integer;
  x,y:array[1..10,1..14] of integer;
  Lmax,L:real;
begin
  parametr:=60;
  Lmax:=sqrt(5/4)*parametr;
  r:=15;
  For c:=1 to 10 do
    For d:=1 to 14 do
    begin
      x[c,d]:=50+(d-1)*parametr;
      y[c,d]:=50+(c-1)*parametr;
    end;
  SetWindowWidth(900);
  SetWindowHeight(700);
  SetBrushColor(ClPink);
 
  dx:=1;
  For f:=1 to 14 do
  begin
    For e:=0 to parametr do
    begin
      clearwindow;
      if e>0 then
        For a:=1 to 5 do x[a,f]:=x[a,f]+dx;
      if (f<14) then
        if ((x[1,f+1]-x[1,f])=2*r) then
          For a:=1 to 5 do x[a,f+1]:=x[a,f+1]+dx;
      For a:=1 to 10 do
        For b:=1 to 14 do
          For c:=1 to 10 do
            For d:=1 to 14 do
            begin
              L:=sqrt(sqr(x[c,d]-x[a,b])+sqr(y[c,d]-y[a,b]));
              If L<Lmax Then
              begin
                MoveTo(x[a,b],y[a,b]);
                LineTo(x[c,d],y[c,d]);
              end;
            end;
      For c:=1 to 10 do
        For d:=1 to 14 do circle(x[c,d],y[c,d],r);
      sleep(200);
    end;
  end;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.12.2020, 20:11
Чуть поправил код в смысле синтаксиса и чтобы не дергалсь.
Pascal
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
uses graphABC;
var
  parametr,r,dx:integer;
  x,y:array[1..10,1..14] of integer;
  Lmax,L:real;
begin
  parametr:=60;
  Lmax:=sqrt(5/4)*parametr;
  r:=15;
  For var c:=1 to 10 do
    For var d:=1 to 14 do
    begin
      x[c,d]:=50+(d-1)*parametr;
      y[c,d]:=50+(c-1)*parametr;
    end;
  SetWindowWidth(900);
  SetWindowHeight(700);
  Centerwindow;
  SetBrushColor(ClPink);
  LockDrawing;
  dx:=1;
  For var f:=1 to 14 do
  begin
    For var e:=0 to parametr do
    begin
      clearwindow;
      if e>0 then
        For var a:=1 to 5 do x[a,f]:=x[a,f]+dx;
      if (f<14) then
        if ((x[1,f+1]-x[1,f])=2*r) then
          For var a:=1 to 5 do x[a,f+1]:=x[a,f+1]+dx;
      For var a:=1 to 10 do
        For var b:=1 to 14 do
          For var c:=1 to 10 do
            For var d:=1 to 14 do
            begin
              L:=sqrt(sqr(x[c,d]-x[a,b])+sqr(y[c,d]-y[a,b]));
              If L<Lmax Then
              begin
                MoveTo(x[a,b],y[a,b]);
                LineTo(x[c,d],y[c,d]);
              end;
            end;
      For var c:=1 to 10 do
        For var d:=1 to 14 do circle(x[c,d],y[c,d],r);
      sleep(200);
      redraw
    end;
  end;
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
29.12.2020, 13:13
Pascal
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
uses
  GraphABC;
 
const
  x0 = 20;
  y0 = 20;
  dX = 40;
  dY = 40;
  R = 10;
  Rows = 10;
  Cols = 10;
  yTerm = 200;
  xMove = 2;
 
var
  maxDist := (dY+dX)*Sqrt(2)/2;
  
type
  Atom = class
    x, y : Real;
    con : List<Atom>;
    
    constructor (x, y : Real);
    begin
      Self.x := x; Self.y := y;
      con := New List<Atom>;
    end;
    
    procedure drawCon;
    begin
      pen.Style := psDash;
      pen.Color := clBlack;
      foreach var other in con do
        Line(Round(x), Round(y), Round(other.x), Round(other.y));
    end;
    
    procedure drawAtom;
    begin
      pen.Style := psClear;
      brush.Color := clPink;
      circle(Round(x), Round(y), r);
    end;
    
    procedure moveRight;
    begin
      if y < yTerm then
        x += xMove;
    end;
    
    function distance(other : Atom) := Sqrt((x-other.x)**2 + (y-other.y)**2);
    
  end;
 
function InitAtoms : List<Atom>;
begin
  Result := New List<Atom>;
  // сами атомы
  for var row := 0 to Rows-1 do
    for var col := 0 to Cols-1 do
      Result.Add(New Atom(x0 + dx*col, y0 + dy*row) );
end;
 
procedure Reconnection(var atoms : List<Atom>);
begin
  for var i := 0 to atoms.Count-1 do
    begin
      atoms[i].con.Clear;
      for var j := 0 to atoms.Count-1 do
        if i <> j then
          if atoms[i].distance(atoms[j]) < maxDist then
            atoms[i].con.Add( atoms[j] );
    end;
end;
 
  
begin
  var atoms := InitAtoms;
  LockDrawing;
  loop 100 do
    begin
      Reconnection(atoms);
      
      Window.Clear;
      foreach var curAtom in atoms do curAtom.drawCon;
      foreach var curAtom in atoms do curAtom.drawAtom;
      Redraw;
      Sleep(20);
  
      for var i := 0 to atoms.Count-1 do
        atoms[i].moveRight;
    end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2020, 13:13
Помогаю со студенческими работами здесь

Генерация движения новой модели
Здравствуйте. Решил написать небольшой &quot;пакмен&quot;. Проблема в том, что второй призрак, который догоняет самого пакмена, не правильно...

Реализация математической модели движения автомобиля на Python
Уважаемые форумчане, подскажите подходит ли Python для написания программы для решения уравнений математической модели движения автомобиля....

Уравнение динамики и баланса в модели случайного движения (блуждания)
Рассмотрим модель случайного движения (блуждания). Пусть система может совершать только один тип движения в дискретные моменты времени t1,...

Отображения для гейзенберговских уравнений движения в модели Джейнса-Каммингса
Имеется гамильтониан \hbar = 1 \begin{equation} \hat{H}= \dfrac{\omega_q \hat\sigma_z}{2} + \omega\hat{a}^{\dagger}\hat{a} +...

построение ER-модели
Предметная область: Ремонтная мастерская занимается ремонтом бытовой техники. Клиент оформляет заказ на ремонт изделия. Ремонт изделий...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru