|
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 157
|
|
Давайте все вместе пообщаемся про массивы!19.10.2015, 19:14. Показов 763. Ответов 17
Метки нет (Все метки)
Дело такое, что я понимаю что-либо или усваиваю материал, только в процессе диалога. Читаю - бесполезно. Дальше понимания что такое массивы я не ушел. И то, только потому, что знаком с понятием множества из математики. А так как в реальной жизни мне пообщаться не с кем (я немой + нет друзей, вероятней всего из-за того, что я немой) поэтому хотелось бы пообщаться на предмет массивов тут. Может есть кто-то еще, кто не до конца понимает эту тему и тоже хочет присоединиться. Итак, я начну с того, что я узнал:
Массивы - это данные (возможно много), которые располагаются в одной ячейке памяти (для чего они в одной ячейке непонятно). Массив данных есть, в независимости от того, объявил я его или нет. Он существует и всё. Если я объявляю массив Q то я должен в скобках указать количество элементов в этом массиве, если я этого не сделаю, то КПД объявления массива Q = нулю. Теперь то, что никак не укладывается в моей голове: независимо от того, сколько элементов я укажу в скобках, например 10. При попытке напечатать 11 элемент - ошибки не будет. Так как этот элемент есть, просто он находится за пределами объявленного массива, и единственный для него (или меня) минус, это то, что я просто не могу к нему обращаться, т.к. он не имеет индекса Кто поддержит мой диалог? простите за многа букаф. для меня это как райское наслаждение.
0
|
|
| 19.10.2015, 19:14 | |
|
Ответы с готовыми решениями:
17
Давайте создадим ИИ вместе Давайте вместе сделаем супер проект Давайте соберём PC вместе только привезли |
|
Модератор
|
|||
| 19.10.2015, 23:02 | |||
|
То есть, в более сложном случае, вы можете собрать из простых массивов массив и оперировать уже большим количеством данных, которые объединены между собой разными признаками, например, в одном массиве собраны численные данные, в другом - символьные и т.д. Причём, все эти данные могут принадлежать группе однотипных объектов, например, описывать некоторую таблицу. Это уже двумерный массив Далее, таким же образом можно создать массив из уже двумерных массивов, который будет уже трёхмерным. И так далее. Размерность массива может быть очень велика. Этим и достигается очень высокая гибкость фильтрации и выборки современных коммерческих приложений. Для того, чтобы массив мог быть переменной длины он должен быть динамическим. В динамическом можно просто указать допустимый диапазон количества элементов. Делается это с помощью переменных.
0
|
|||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||||||||||||||||||||||||||||
| 20.10.2015, 00:04 | ||||||||||||||||||||||||||||||||
|
Добавлено через 2 минуты NeoMatrix, что, прости? Разница между статикой и динамикой в том, что размер статического должен быть известен на этапе компиляции, а динамического - в рантайме.
И выделено должно быть по-другому, емнип:
Добавлено через 2 минуты Добавлено через 8 минут
Каким образом мы получаем элемент a[x]? Мы складываем адрес массива (записанный в переменной a) и сдвиг, переданный опреатору индексации (да-да, вот этим квадратным скобкам). Из полученного адреса мы просто берём значение. Что будет, если мы сделаем a[43] ? Всё будет так же, но мы выйдем за пределы выделенного блока. Что это значит для нас? Это значит, что система могла выделить эти ячейки памяти для каких-то других данных, и мы просто напросто работаем с "котом в мешке". Ошибки никакой компилятор не выдаст. Она проявится в рантайме, только и всего.
0
|
||||||||||||||||||||||||||||||||
| 20.10.2015, 00:41 | ||
|
Поскольку память линейна, множества представлены в ней последовательно. Ради оптимизации, обычно используются два различных представления: с доступом к элементу множества по индексу (массивы) и с доступом к элементу множества по имени (структуры). Индексный доступ требует, чтобы все элементы были одного типа (и при этом они анонимны), доступ по имени не имеет такого ограничения. Все множество (как единое понятие) адресуется собственным именем - именем массива или структуры (которое, фактически, является адресом первого элемента множества). Для доступа к отдельному элементу массива следует указать его индекс (компилятор по этому индексу вычислит смещение элемента в массиве относительно самого первого). Есть языки, в которых проверяется выход индекса за пределы массива (влечет потерю производительности), в других этого не делается. Все, что вам нужно знать о массиве - это множество однородных элементов, записанное в строчку без зазоров между ними, и к каждому из элементов можно обратиться по его номеру в списке.
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,868
|
||||||
| 20.10.2015, 01:26 | ||||||
|
а в Си вроде даже это дело в стандарт ввели можно ячейкой назвать байт, можно несколько байт необходимых для хранения типа, а можно память для хранения массива у каждого компьютера может быть разная ячейка, поэтому языки высокого уровня абстрагируются от архитектуры они оперируют значениями целое, действительное, строка поэтому,чтобы лучше запомнить, и изучай массивы абстрактно массив это хранилище однотипных данных например город это массив улиц улица массив домов дом массив квартир тебе сказали пойти к одиннадцатому, ошибки не будет но куда ты придешь?когда ты обращаешься к элементу массива ты по сути командуешь компьютеру пойти по адресу улица Главная дом 1234, и он попытается пойти поскольку не знает сколько на улице домов
0
|
||||||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|||
| 20.10.2015, 01:35 | |||
|
0
|
|||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||
| 20.10.2015, 01:59 | ||||
|
0
|
||||
| 20.10.2015, 07:14 | |
|
0
|
|
| 20.10.2015, 08:56 | |
|
Не по теме: NeoMatrix, и изложил в корне неверную инфу человеку, который и так запутан. Не надо так.
0
|
|
| 20.10.2015, 09:47 | |
|
0
|
|
|
|
|||||||||||
| 20.10.2015, 18:38 | |||||||||||
|
bad_santa, давай лучше так, вот код
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 157
|
|||||||||||
| 20.10.2015, 19:14 [ТС] | |||||||||||
|
FraidZZ на NeoMatrix наезжаешь, а у самого в объяснении много непонятного.
NeoMatrix спасибо. все ясно и понятно, кроме момента про динамический массив. FraidZZ
gazlan
При этом у 17 будет нулевой индекс, у 04 - 1, 35 -2 и т.д. ValeryS
Вообще речь о с++, и вроде пока все понятно. могу тест пройти Массивы - это множества данных, объединенных общими признаком (кстати, одним или этих признаков может быть много?). Массивы состоят из элементов, к которым мы можем обратиться по индексу. Но самая главная фишка массивов в том, что я могу обратиться сразу к целой куче однотипных данных и применить какой-нибудь метод сразу ко всем. Например, есть 10000 домов с адресами, на улице абрикосовой, мне нужно переименовать адрес каждого дома. И так бы я и делал, если бы у всех не было общего адреса "абрикосовая" которая позволяет не 1000 командами, а одной сменить адрес у всех домов. завтра попробую выложить все, что я понял о многомерных массивах. если сегодня никто не забракует моё понимание одномерных :_)а вообще всем спасибо! особенно за то, что не ударились в свой холивар по динамике и статике
0
|
|||||||||||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 20.10.2015, 19:44 | |
|
0
|
|
| 20.10.2015, 20:14 | ||
|
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,868
|
||
| 20.10.2015, 21:58 | ||
![]() структура это хранилище разнородных данных структура будет содержать ФИО ЗП соцстрахование должность а вот структуры уже можно запихать в массив
0
|
||
|
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 157
|
|||||||||||
| 21.10.2015, 18:42 [ТС] | |||||||||||
|
ну до структуры я еще не дошел. но суть уловил
Хотел малость поэксперементировать с массивами, но что-то на начальном этапе не компилирует в srand ошибку выдает. посмотрите пжл
и еще такой момент, символьные массивы так заполнять:
Добавлено через 3 минуты уже проверил. не так)) а как?
0
|
|||||||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 21.10.2015, 18:50 | |
|
Фамилии в кавычках?
0
|
|
|
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 157
|
||||||||||||
| 21.10.2015, 20:27 [ТС] | ||||||||||||
|
Добавлено через 6 минут всё, я сам разобрался. вот рабочий код
помогите передать массивы в функцию
0
|
||||||||||||
| 21.10.2015, 20:27 | |
|
Помогаю со студенческими работами здесь
18
Собираю команду начинающих! Давайте учиться вместе Давайте вместе разберём, как работает эта игра Quake? Давайте сочиним что нибудь про инопланетян Что случилось с HDD? Профи, все сюда! Давайте разберёмся Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|