Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Структуры данных. Массивы, строки, Указатели и структуры




 

Массивы

Многие алгоритмы обработки данных связаны с выполнением однообразных действий над группой величин одного типа. В этом случае целесообразно работать с этими данными как с массивом.

Массив – это структура данных, состоящая из фиксированного числа элементов, имеющих одинаковое имя, одинаковый тип и расположенных в памяти последовательно.

Операция выбора элемента массива называется индексацией; синтаксически она записывается как имя массива, за которым в квадратных скобках следует значение индекса (номера) выбираемого элемента.

Массив – это структура данных с произвольным доступом, то есть время доступа к значению элемента массива не зависит от номера элемента.

Описание массива имеет следующий формат:

тип имя_массива[размер_массива];

В С++ первый элемент любого массива – это нулевой элемент. Таким образом индекс первого элемента – 0, второго – 1, третьего – 2 и так далее.

 

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

 

Пример 3_1_1. Одномерный массив

# include < iostream >

using std::endl;

using std::cout;

Int main()

{

       const int ArraySize=5;                        // размер массива

       int a [ ArraySize ] = {12, 3, 42, 5, 34};// инициализация массива:

// a [0]=12, a [1]=3, a [2]=43,

// a [3]=5, a [4]=34

       //начальные значения можно ввести и с клавиатуры:

       /*

                   for (int i=0; i<ArraySize; ++i)

                   cin>>a[i];

*/

for (int i=0; i<ArraySize;++i)        // вывод значений элементов

                   cout << a [ i ]<< endl;             //массива

       int to tal=0;                                       //сумма значений элементов массива

       for (int i=0; i<ArraySize; ++i)       // цикл вычисления суммы

                   total+=a[i];

       cout << " Сумма элементов массива: " <<total<<endl;

       system("pause");

       return 0;

}

 

 

Пример 3_1_2. Сортировка массива методом «пузырька»

#include <iostream>

using std::endl;

using std::cout;

Int main()

{

       const int ArraySize=5                              // размер массива

       int a[ArraySize] = {12, 3, 42, 5, 34};     // инициализация массива

       int i, j, temp;

      

//сортировка элементов массива

       for (i =0; i < ArraySize -1; i ++)               //каждый проход цикла ставит на свое

       for (j = ArraySize -1; j > i; j --)               //место одно значение

         if (a[j]<a[j-1])                                  

           temp=a[j], a[j]=a[j-1], a[j-1]=temp;// перестановка элементов

      

//вывод значений элементов массива

       for (i =0; i < ArraySize -1;++ i)                 

                   cout<<a[i]<<endl;                      // результат: 3, 5, 12, 34, 42

       system (" pause ");

       return 0;

}

 

Пример 3_1_3. Двумерный массив

#include <iostream>

using std::endl;

using std::cout;

Int main()

{

       const int ArraySize1=3, // размер1 массива(количество строк таблицы)

                   ArraySize2=2; // размер2 массива(количество столбцов)

                                      // инициализация массива:

       int a[ArraySize1][ArraySize2] ={ {12, 3}, // a[0][0]=12, a[0][1]=3,

                                                         {42, 5}, // a[1][0]=42, a[1][1]=5,

   {10, 34} // a[2][0]=10, a[2][1]=34

                                                        };

       //начальные значения можно ввести и с клавиатуры:

       /*

                   for(int i=0; i<ArraySize1; ++i)

                   for(int j=0; j<ArraySize2; ++j)

                   cin>>a[i][j];

*/

       for (int i=0; i<ArraySize1;++i){  // вывод значений элементов

       for (int j=0; j<ArraySize2; ++j) // массива

                   cout<<a[i][j]<<" ";

       cout<<endl;           

       }

       //сумма значений элементов массива

       int total=0;

       for (int i=0; i<ArraySize1; ++i)  

       for (int j=0; j<ArraySize2; ++j)

                   total+=a[i][j];

       cout << " Сумма элементов массива: " <<total<<endl;

       system("pause");

       return 0;

}

 

Строки – массивы символов

 

Массивы могут использоваться для хранения не только числовых данных, но и для хранения символьной информации – символов и строк.

Символьный массив, представляющий строку, должен быть достаточно большим для того, чтобы вместить все символы строки и специальный завершающий символ – '\0'.

 

Инициализировать массив символов можно символьной константой. Например:

char string1[]= " hello ";

Размер массива определяется компилятором по длине строки инициализации. Для данного массива (string1) размер = 5 (длина строки " hello ") + 1 (завершающий символ) = 6.

Символьному массиву можно задать в качестве начального значения сисок отдельных символьных констант, указанных в списке инициализации. Например, предыдущее объявление эквивалентно следующему:

char string 1[]= {' h ', ' e ', ' l ', ' l ', ' o ', '\0' };

Так как строка является символьным массивом, можно получить доступ к отдельным символам, как к элементам массива. Например, string1[0] – символ ' h 'string1[5] – символ ' o '.





Поделиться с друзьями:


Дата добавления: 2018-10-14; Мы поможем в написании ваших работ!; просмотров: 286 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2787 - | 2499 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.