Форум программистов, компьютерный форум 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
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
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;
            }
        }
    }
Зачем три цикла подряд? И это в такой небольшой программке. Мне кажется, если будет в том же духе, будет очень, очень сложно...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru