0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 36
1

Нужен пример с массивами

14.03.2014, 21:30. Показов 7174. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу догнать, зачем нужен массив конкретно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2014, 21:30
Ответы с готовыми решениями:

Программа с Массивами, нужен код
Дано одномерный массив целых чисел A размерности N (размерность и элементы массива ввести с...

Нужен пример программы с массивами
Народ дайте пожалуйста решение парочку типичных задачек под массив.Любые примитивные задачки и их...

Нужен код для задачи c массивами
Дан массив размера n перед каждым элементом равным введенному с клавиатуры вставить 0

Нужен готовый класс для работы с массивами
Для работы с массивами, то есть добавление, вычитание, умножение и все в таком роде. Буду очень...

28
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
14.03.2014, 21:47 2
Timurcpp, допустим, вам нужно хранить где-то в программе 100 имен, как вы будете это делать без массива ?
или допустим вам нада реализовать алгоритм флойда, как вы это сделайте без массива ?
1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 36
14.03.2014, 22:25  [ТС] 3
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
Timurcpp, допустим, вам нужно хранить где-то в программе 100 имен, как вы будете это делать без массива ?
или допустим вам нада реализовать алгоритм флойда, как вы это сделайте без массива ?
Это я понимаю, а что еще кроме этого он выполняет?
0
184 / 168 / 53
Регистрация: 27.01.2013
Сообщений: 788
14.03.2014, 22:28 4
Цитата Сообщение от Timurcpp Посмотреть сообщение
Это я понимаю, а что еще кроме этого он выполняет?
Массив ничего не выполняет. Он позволяет хранить несколько однотипных данных под одним именем и получать доступ к ним через "разыменование": массив[N]
1
135 / 134 / 53
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
14.03.2014, 22:32 5
C++
1
2
3
4
5
6
7
8
9
10
11
// Переменные
int i = 1;
int i1 = 2;
int i2 = 3;
int i3 = 4;
 
 
// Массив
int mas[4];
for (int i = 0; i < 4; i++)
   mas[i] = i;
Вроде, ясно же всё
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2014, 22:35 6
Если простым языком, то можно как-то так:
Обычное яблоко - это обычный элемент.
Корзина с яблоками - это массив
0
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 36
14.03.2014, 22:40  [ТС] 7
Цитата Сообщение от saden Посмотреть сообщение
Массив ничего не выполняет. Он позволяет хранить несколько однотипных данных под одним именем и получать доступ к ним через "разыменование": массив[N]
Можете пример написать массива с циклом

Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
Если простым языком, то можно как-то так:
Обычное яблоко - это обычный элемент.
Корзина с яблоками - это массив
Интересное мышление у вас, хороший подход к вопросу
0
135 / 134 / 53
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
14.03.2014, 22:44 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main() {
    int mas[10];
 
    for (int i = 0; i < 10; i++){
        std::cout << "mas[" << i+1 << "]: ";
        std::cin >> mas[i];
    }
 
    for (int i = 0; i < 10; i++){
        std::cout << "mas[" << i+1 << "]: ";
        std::cout << mas[i] << std::endl;
    }
 
        std::cin.get();
    std::cin.get();
    return 0;
}
И не нужно 10 переменных
0
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 36
14.03.2014, 22:47  [ТС] 9
Цитата Сообщение от recoder Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
// Переменные
int i = 1;
int i1 = 2;
int i2 = 3;
int i3 = 4;
 
 
// Массив
int mas[4];
for (int i = 0; i < 4; i++)
   mas[i] = i;
Вроде, ясно же всё
Да нет, все вроде бы понятно, но и не понятно тоже. Я только вторую неделю учу С++, темный лес, честное слово.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2014, 22:49 10
Лучший ответ Сообщение было отмечено Timurcpp как решение

Решение

Цитата Сообщение от Timurcpp Посмотреть сообщение
подход к вопросу
Его можно развить и еще дальше.
Например, то, как зачастую объявляют кучу переменных - и аналогичный вариант с массивом.
Возьмем тот же пример с яблоками.
Например, у нас есть две программы, которые просто выводят артикулы яблок (для простоты)
Вариант без массива будет выглядеть как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(int argc, char *argv[])
{
    int apple1, apple2, apple3, apple4, apple5;
    apple1 = 124;
    apple2 = 134;
    apple3 = 143;
    apple4 = 543;
    apple5 = 123;
 
    std::cout << "Apple 1: " << apple1 << std::endl;
    std::cout << "Apple 2: " << apple2 << std::endl;
    std::cout << "Apple 3: " << apple3 << std::endl;
    std::cout << "Apple 4: " << apple4 << std::endl;
    std::cout << "Apple 5: " << apple5 << std::endl;
 
    return 0;
}
Вариант с массивом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
const int N = 5;
 
int main(int argc, char *argv[])
{
    int apples[N];
    apples[0] = 124;
    apples[1] = 134;
    apples[2] = 143;
    apples[3] = 543;
    apples[4] = 123;
 
    std::cout << "Apple 1: " << apple[0] << std::endl;
    std::cout << "Apple 2: " << apple[1] << std::endl;
    std::cout << "Apple 3: " << apple[2] << std::endl;
    std::cout << "Apple 4: " << apple[3] << std::endl;
    std::cout << "Apple 5: " << apple[4] << std::endl;
 
    return 0;
}
Вроде бы "тоже самое". Однако, объединение в массив позволяет нам выполнять дополнительные операции более просто. Например, предыдущий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
const int N = 5;
 
int main(int argc, char *argv[])
{
    int apples[N];
 
    apples[0] = 124;
    apples[1] = 134;
    apples[2] = 143;
    apples[3] = 543;
    apples[4] = 123;
 
    for(size_t i = 0; i < N; ++i)
        std::cout << "Apple " << i + 1 << ": " << apple[i] << std::endl;
 
    return 0;
}
Уже намного короче, и более "динамически".. Если переводить на тот пример с яблоками и корзинами - то в случае не использования массивов вы определяете уникальные имена для яблок (красное_яблоко_1, зеленое_яблоко_2, ....), в случае использования массивов - все проще, в какой-то степени (первое яблоко, которое достали; второе яблоко, которое достали; третье яблоко, ....). В общем, массивы удобны тогда, когда у вас много однотипных элементов, которые вы храните. Особенно удобно, если у вас в планах какая-то общая задача для выполнения над ними. Не отходя далеко от примера с яблоками: вы хотите съесть все яблоки. Все просто
C++
1
2
3
....
while(i != 0) //пока еще есть яблоки в корзине
    eat_apple(apple[i--]); //обжираемся и соответственно уменьшаем счетчик яблок в корзине)
1
184 / 168 / 53
Регистрация: 27.01.2013
Сообщений: 788
15.03.2014, 09:25 11
можно представить массив, как фотопленку. Ячейка массива - это кадр. Номер кадра - номер ячейки. Картинка в кадре № х - это содержимое ячейки массива. Переход к ячейке х+1 - переход к следующему кадру. Первый и последний кадры - границы массива.
0
3 / 3 / 1
Регистрация: 13.07.2013
Сообщений: 71
17.03.2014, 19:22 12
Можете подсказать, а как инициализировать элементы массива значениями переменных, которые считываются из файла?
Допустим, в примере KOPOJI:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
const int N = 5;
 
int main(int argc, char *argv[])
{
    int apples[N];
 
    apples[0] = 124;
    apples[1] = 134;
    apples[2] = 143;
    apples[3] = 543;
    apples[4] = 123;
 
    for(size_t i = 0; i < N; ++i)
        std::cout << "Apple " << i + 1 << ": " << apple[i] << std::endl;
 
    return 0;
}
значения
C++
1
2
3
4
5
apples[0] = 124;
    apples[1] = 134;
    apples[2] = 143;
    apples[3] = 543;
    apples[4] = 123;
находятся в стороннем текстовом файле, который я построчно читаю.
Тогда надо в массиве использовать только идентификаторы? Примерно так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
const int N = 5;
 
int main(int argc, char *argv[])
{
    int apples[N];
 
    apples[0] = a0;
    apples[1] = a1;
    apples[2] = a2;
    apples[3] = a3;
    apples[4] = a4;
 
    for(size_t i = 0; i < N; ++i)
        std::cout << "Apple " << i + 1 << ": " << apple[i] << std::endl;
 
    return 0;
}
А значения a0-a4 последовательно присваивать элементам массива при чтении файла?
Можно ли так делать?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
17.03.2014, 19:31 13
Цитата Сообщение от KOPOJI Посмотреть сообщение
C++
1
2
3
4
5
6
 int apple1, apple2, apple3, apple4, apple5;
    apple1 = 124;
    apple1 = 134;
    apple1 = 143;
    apple1 = 543;
    apple1 = 123;
Эт ты здорово объяснил
тоже болезнь "копи-пасте"

Добавлено через 2 минуты
kotgav,
как считать значения из файла знаешь?
1
KOPOJI
17.03.2014, 19:34
  #14

Не по теме:

ValeryS, спасибо, исправил. Думаю, это даже в плюс, что я ошибся - более наглядна возможность ошибиться и запутаться в названиях переменных любому человеку ;) А объяснил как сумел :pardon: Можете объяснить лучше и понятнее - я буду только за :)

0
184 / 168 / 53
Регистрация: 27.01.2013
Сообщений: 788
17.03.2014, 19:42 15
Цитата Сообщение от kotgav Посмотреть сообщение
Можете подсказать, а как инициализировать элементы массива значениями переменных, которые считываются из файла?
Смотря как читается файл. Основная идея:
цикл до конца файла
{
чтение из файла -> в переменную х
присваивание х очередному элементу массива
}
1
С++ Beginner
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
17.03.2014, 20:03 16
Цитата Сообщение от KOPOJI Посмотреть сообщение
....
while(i != 0) //пока еще есть яблоки в корзине
* * eat_apple(apple[i--]); //обжираемся и соответственно уменьшаем счетчик яблок в корзине)
Первый(0-ой) элемент не будет съеден
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
17.03.2014, 20:08 17
Цитата Сообщение от MarVaL Посмотреть сообщение
Первый(0-ой) элемент не будет съеден
можно поправить условие
C++
1
2
while(i >= 0) //пока еще есть яблоки в корзине
    eat_apple(apple[i--]); //обжираемся и соответственно уменьшаем счетчик яблок в корзине)
1
KOPOJI
17.03.2014, 20:14
  #18

Не по теме:

MarVaL, это был образный пример, понятный для человека, а не рассчитанный на нумерацию массивов в данном ЯП.

0
С++ Beginner
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
17.03.2014, 20:15 19
Цитата Сообщение от KOPOJI Посмотреть сообщение
MarVaL, это был образный пример, понятный для человека, а не рассчитанный на нумерацию массивов в данном ЯП.
Это раздел С++. Смотрите внимательнее пожалуйста.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
17.03.2014, 20:21 20
Timurcpp,
попытаюсь еще интересней объяснить, тем более впереди у тебя двумерные, трехмерные массивы
представь себе улицу, на улице дома, в домах квартиры
так вот улица это массив домов, линейный это значит друг за другом дома идут
дома массив квартир
и ты пишешь адрес ул Массив дом 2 кв 3
в программировании это будет так arr[2][3];
если нужен дом то просто arr[2]

но дом представить массивом подъездов а подъезд массивом квартир и мы получаем 3х мерный массив
адрес уже надо писать так ул Массив дом 2 подъезд 1 квартира в подъезде 3
тогда arr[2][1][3];
а если подъезд это массив этажей а этажи массив квартир то получим 4х мерный массив
адрес уже надо писать так ул Массив дом 2 подъезд 1 этаж 3 квартира на этаже 3
arr[2][1][3][3];

есть еще одна тонкость человек считает от 1 а машина от 0
тогда ул Массив дом 1
на машинный язык переведется как arr[0]
1
17.03.2014, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2014, 20:21
Помогаю со студенческими работами здесь

Нужен пример))
У меня такая Задача, 1) Приход. Здесь должны фиксироваться поставщики, товар, кол-во и сумма...

нужен пример
всем привет! у кого есть пример похожий на Разработка аис подготовки и введения документации,...

Нужен пример по SOAP
Можно посмотеть как пользоваться SOAP? Как я понял нужно на сайте найти API который он...

Нужен пример верстки
Всем привет! Выпала задачка, может кто-нибудь знает как можно реализовать. Каждый элемент должен...

Нужен пример анимации
Помогите у кого есть готовые задачи по турбо графика с анимацием например движение предметов!

Нужен пример хэширования
Здравствуйте! Ни как не могу понять хэширование,если не трудно, то напишите какие нибудь простейшие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru