Форум программистов, компьютерный форум 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++ Упорядочить массив по не росту методом «пузырька» Отсортировать массив указанным способом, использовать процедуры ввода и вывода массивов, выделить в задаче вспомогательные алгоритмы и оформить их в виде подпрограмм. Упорядочить массив по не росту методом «пузырька». Если не сложно, написать пример на С++. Заранее спасибо. подробнее

Показать сообщение отдельно
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
15.04.2013, 11:21     Массив: Создать кристаллическую решетку произвольной величины
Цитата Сообщение от Skrypnyk Посмотреть сообщение
Нельзя превышать размеры массива. Всем спасибо за интерес.
Пожалуйста. Ночью особо такие моменты не заметны, сейчас только заметил, иду сюда - а здесь уже решено.
Зато заметна не самая лучшая архитектура.
Плохо как минимум то, что приходится в трёх циклах инициализировать трёхмерный массив - такое лучше хотя заинкапсулировать в конструктор.
Более того, вот это:
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
    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


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    for (int i = 0; i < Lx; i = i+a) // start of the outer for loop
    {
        Atom1[i] = new AtomType* [Ly];
        for (int j = 0; j < Ly; j = j+a)
        {
            Atom1[i][j] = new AtomType [Lz];
            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;
            }
        }
    }
Зачем три цикла подряд? И это в такой небольшой программке. Мне кажется, если будет в том же духе, будет очень, очень сложно...
 
Текущее время: 17:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru