Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Сортировка | обработка | работа с одномерными массивами

   Одномерный массив

Это слово кажется на первый взгляд абсолютно незнакомым, но давайте приведем примеры работы массивов из жизни. Подставка для дисков, в которую помещаются диски (подставка - это массив); папка, в которую помещаются тетрадки (папка - это массив);

Т.е. массив - это контейнер, в котором можно располагать, извлекать данные (объекты). Давайте рассмотри, как обозначаются одномерные массивы:

int a[5] = {1,2,3,4,5}; double b[3] = {2.2, 3.3, 4,4};

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

int a[] = {1,2,3,4,5}; double b[] = {2.2, 3.3, 4,4};

Мы теперь знаем, как объявлять массивы, а вот как обрабатывать их не на этапе инициализации - вообще не в курсе. И так вот пример:

int a[5];
for (int i =0; i < 5;i++)
   scanf ("%d", &a[i]);

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

В С/C++ индексы всегда начинаются с нуля. Этот процесс нельзя ни как изменить. Поначалу будет слегка непривычно, но вскоре втянетесь.

А что же означает имя массива? Ответом на этот вопрос, является урок: указатели. Т.к. имя массива и является указателем на первый элемент. Поэтому при передаче массива в функцию, у вас не будет проблемы с изменением значений. Поэтому давайте рассмотрим пример:

void PrintArr (int arr[], int len)
{
    for (int i = 0; i < len; i++){
       printf ("%d", arr[i]);
    }
}

Эта функция выведет наш одномерный массив, который мы заполнили чуток выше. Кстати, вместе с массивом мы передаем его длину, что б мы случайно не вылезли за его пределы. Во многих компиляторах, уход за пределы массива оканчивается ошибкой, а некоторые компиляторы продолжают выполнение программы, выводя жуткие результаты. Поэтому будьте осторожны и определяйте длину массива функцией sizeof, для избегания ошибок.

Ой, мы ж забыли про вызов этой функции:

PrintArr(a, 5);

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

   Сортировка массива

Сортировка массива занимает важнейшую роль в работе с массивами, а точнее их обработке. Сортировок массива существуте множество. Я вам советую понять одну из сортировок массива. И когда вы будете работать с массивами, то обрабатывать их уже с помощью изученной сортировки. Подробнее о сортировках вам расскажет и покажет эта статья: Сортировки — Метод Прямого Включения | Пузырьковая Сортировка

Задания:

  1. Создайте одномерный массив из 10-ти элементов. Далее, создайте функцию заполнения этого массива случайными числами; создайте функцию сортировки этого массива; создайте функцию вывода всех значений массива

Следующие уроки:

  1. Многомерные массивы
  2. Работа со строками в c (си)
  3. Функции работы со строками
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru