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

Массив: Создать кристаллическую решетку произвольной величины - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Надо создать массив путем слияния двух произвольных одномерных массивов http://www.cyberforum.ru/cpp-beginners/thread837980.html
Надо создать массив путем слияния двух произвольных одномерных массивов. Порылся в интернете и подумал что создание массива должно выглядеть примерно так: for(i=0;i<n+m;i++) { M3=M1; M3=M2; }//n i m - kolichestva elementov izvestnuh masivov ничего не получается, помогите создать массив...
C++ Обработка фразы (работа со строками) Добрый вечер. Нужно написать программу, состоящую из описанных ниже функций: • Функция void delNsymbl TCHAR* str, int n) получает строку, число n и удаляет из строки первые n символов. • Функция TCHAR* poisk1BigAlfa (TCHAR* str), получив строку, ищет в ней адрес первого прописного буквенного латинского символа, за которым следует или перед которым стоит его строчный символ. Если таких... http://www.cyberforum.ru/cpp-beginners/thread837975.html
C++ Реализовать двусвязный список и операции работы с ним
Реализовать двусвязный список и операции работы с ним. В списке хранить, что пожелаете. Операции: - добавить в начало. - добавить в конец. - добавить в середину (после/до указанного по значению элемента). - удалить (из любого места списка). - искать по значению. - распечатать список.
C++ как сделать чтобы сокращало дробь?что добавить?
#include <iostream> using namespace std; int main() { int a, b, c, d, e; char ch1, ch2; char drob = '/'; do { cout << "vvedite 1 chast: ";
C++ класс SET http://www.cyberforum.ru/cpp-beginners/thread837943.html
Разработать шаблонный класс Set. Класс должен содержать конструктор по умолчанию, основной конструктор и конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса, а также операторную функцию присваивания. Кроме этого перегрузить операторные функции * и *=, которые вычисляют пересечение двух множеств. Создать с помощью этого класса...
C++ Упорядочить массив по не росту методом «пузырька» Отсортировать массив указанным способом, использовать процедуры ввода и вывода массивов, выделить в задаче вспомогательные алгоритмы и оформить их в виде подпрограмм. Упорядочить массив по не росту методом «пузырька». Если не сложно, написать пример на С++. Заранее спасибо. подробнее

Показать сообщение отдельно
Skrypnyk
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
14.04.2013, 22:45     Массив: Создать кристаллическую решетку произвольной величины
Здравствуйте! Пытаюсь создать кристаллическую решетку произвольной величины. Для этого использую трехмерный динамический массив (подскажите что-нибудь более подходящее, если такое есть), каждый элемент которого должен содержать 3 координаты атома (х, у, z). Создаю класс Atom, который содержит три переменные (х, у, z). Определяю производный от класса тип данных и создаю массив такого типа. Когда запускаю программу для проверки, получаю следующий результат:
Atom1: 000 001 002 010 011 012 - Три цифры обозначают соответственно x, y, z.
Хотя ожидаемый результат - все возможные комбинации 0, 1 и 2.
Подскажите, пожалуйста, что не так. Заранее благодарен!
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
#include <iostream>
 
using namespace std;
 
class Atom
{
    public:
 
    float x, y, z;
};
 
typedef class Atom AtomType;
 
int main () // beginning of the DoBCC function
{
    float a=1; // lattice parameter
    int Lx=2, Ly=2, Lz=2; // number of translated lattices along each axis
 
    AtomType ***Atom1; // 3-dimensional dynamic array for atom type 1
 
    Atom1 = new AtomType** [Lx];
 
    for (int i=0; i<Lx; i=i+a) // start of for loop
    {
        Atom1[i] = new AtomType* [Ly];
    } // end of for loop
    for (int i=0; i<Lx; i=i+a) // start of the outer for loop
    {
        for (int j=0; j<Ly; j=j+a)
        {
            Atom1[i][j] = new AtomType [Lz];
        }
    } // end of the outer for loop
cout << "Atom1:" << endl;
    for (int i=0; i<=Lx; i++) // start of the 3 nested for loops to populate atoms of type 1
    {
        for (int j=0; j<=Ly; j++)
        {
            for (int k=0; k<=Lz; k++)
            {
                Atom1[i][j][k].x = i*a;
                Atom1[i][j][k].y = j*a;
                Atom1[i][j][k].z = k*a;
 
                cout << Atom1[i][j][k].x << "   " << Atom1[i][j][k].y << "   " << Atom1[i][j][k].z << endl;
            }
        }
    } // end of the 3 nested for loops to populate atoms of type 1
 
 
    for (int i=0; i<=Lx; i++) // start deleting array Atom1
    {
        for (int j=0; j<=Ly; j++)
        {
            delete[] Atom1[i][j];
        }
    }
    for (int i=0; i<=Lx; i++)
    {
        delete[] Atom1[i];
    }
    delete[] Atom1; // end of deleting array Atom1
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru