|
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
|
||||||
Массив: заполнить пространство определенным количеством атомов16.03.2013, 17:18. Показов 1065. Ответов 6
Метки нет (Все метки)
Доброго времени суток!
Я делаю проект для учебы. Передо мной стоит задача заполнить пространство определенным количеством атомов. Для этого я использовал трехмерный массив Atom [10][10][10]. Этим массивом я обозначаю 1000 атомов. Кроме того, каждый элемент массива должен хранить сведения о пространственных координатах. Для этого я создаю класс Atom с переменными x, y, z и создаю на его базе новый тип данных AtomType. Теперь все мои координаты могут быть получены следующим выражением: Atom [i][j][k].x (или Atom [i][j][k].у, Atom [i][j][k].z). Теперь, чтобы задать координаты, соответствующие положениям атомов я использую 3 вложенных цикла for. Привожу для наглядности код:
Заранее благодарен!
0
|
||||||
| 16.03.2013, 17:18 | |
|
Ответы с готовыми решениями:
6
|
|
3 / 3 / 1
Регистрация: 24.06.2012
Сообщений: 50
|
||||||
| 16.03.2013, 17:35 | ||||||
|
Оператор a[i] эквивалентен *(a + i).
А Вам нужно трижды разыменовать:
1
|
||||||
|
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
|
||
| 16.03.2013, 18:01 [ТС] | ||
|
0
|
||
|
117 / 116 / 8
Регистрация: 23.12.2012
Сообщений: 195
|
||
| 16.03.2013, 18:19 | ||
|
1
|
||
|
3 / 3 / 1
Регистрация: 24.06.2012
Сообщений: 50
|
|||||||||||
| 16.03.2013, 19:02 | |||||||||||
|
Skrypnyk, почитайте немного про адресную арифметику в C\C++.
Там всё несколько своеобразно. Попробую изложить кратко. В C определена операция сложения над указателями. Если мы к указатели прибавим, допустим единицу, то указатель увеличится на количество байт, которое занимает единица того, типа, на который указывает указатель. То есть
Но когда объявляете массив
1) создаёт переменную-указатель типа int*; 2) выделяет под неё 400 байт памяти; 3) устанавливает указатель a на начало этого куска памяти. А когда вы обращаетесь к i-ому элементу массива - a[i] - компилятор фактически заменяет этот код на *(a + i) - сдвинуть указатель на i ячеек по 4 байта от начала области памяти, на которую указывает a и работать с этой ячейкой. Таким образом, с C\C++ массивы - и не массивы вовсе, а указатели на области памяти. И всё. Если всё же не понятно - почитайте ещё про адресную арифметику в С, на эту тему много написано. Я бы посоветовал классиков - Кернигана и Ритчи.
1
|
|||||||||||
|
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
|
||
| 16.03.2013, 20:46 [ТС] | ||
|
shau-kote, спасибо, кажется, понял. Но на всякий случай прочту.
0
|
||
|
3 / 3 / 1
Регистрация: 24.06.2012
Сообщений: 50
|
|
| 20.03.2013, 02:25 | |
|
Skrypnyk, не рекомендуется?..
Удивлён, честно. Книга написана прекрасным языком, я сам читал её с большим удовольствием - как первую книгу по Си. Добавлено через 9 минут Другой вопрос, что надо понимать, что книга именно по С, а не по C++. Тем не менее, её стоит прочитать даже если Вы собираетесь на C++. Дело в том, что C++, принеся в С много нового, немало оставил по-старому - та же адресная арифметика с массивами, которые не массивы, тот же оператор switch-case-break, совершенно неприличный для высокоуровневого языка. Что касается книг именно по C++, то того же Дейтела многие хвалят, но я его не читал. Могу порекомендовать Подбельского В.В., "Язык Си++", могу не рекомендовать читать Страуструпа, по крайней мере, пока Вы не освоитесь в языке достаточно хорошо.
0
|
|
| 20.03.2013, 02:25 | |
|
Помогаю со студенческими работами здесь
7
Заполнить массив А определенным образом Заполнить массив А определенным образом
Заполнить массив А определенным образом
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|