Компьютерное программирование - массивы

Рассмотрим ситуацию, когда нам нужно сохранить пять целых чисел. Если мы используем концепции простых переменных и типов данных в программировании, нам понадобится пять переменныхint тип данных и программа будет следующей -

#include <stdio.h>

int main() {
   int number1;
   int number2;
   int number3;
   int number4;
   int number5;
   
   number1 = 10;      
   number2 = 20;   
   number3 = 30;   
   number4 = 40; 
   number5 = 50;     

   printf( "number1: %d\n", number1);
   printf( "number2: %d\n", number2);
   printf( "number3: %d\n", number3);
   printf( "number4: %d\n", number4);
   printf( "number5: %d\n", number5);
}

Это было просто, потому что нам нужно было хранить всего пять целых чисел. Теперь предположим, что нам нужно сохранить 5000 целых чисел. Собираемся ли мы использовать 5000 переменных?

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

Вместо объявления отдельных переменных, таких как число1, число2, ..., число99, вы просто объявляете одну переменную массива numberцелочисленного типа и используйте число1 [0], число1 [1] и ..., число1 [99] для представления отдельных переменных. Здесь 0, 1, 2, ..... 99 являютсяindex связан с var переменная, и они используются для представления отдельных элементов, доступных в массиве.

Все массивы состоят из непрерывных ячеек памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес - последнему элементу.

Создать массивы

Чтобы создать переменную массива в C, программист указывает тип элементов и количество элементов, которые будут храниться в этом массиве. Ниже приведен простой синтаксис для создания массива в программировании на C -

type arrayName [ arraySize ];

Это называется одномерным массивом. ВarraySize должно быть целочисленной константой больше нуля и typeможет быть любым допустимым типом данных C. Например, теперь для объявления массива из 10 элементов с именемnumber типа int, используйте это утверждение -

int number[10];

Здесь число - это массив переменных, которого достаточно для хранения до 10 целых чисел.

Инициализация массивов

Вы можете инициализировать массив в C либо по одному, либо с помощью одного оператора следующим образом:

int number[5] = {10, 20, 30, 40, 50};

Количество значений в фигурных скобках {} не может быть больше количества элементов, которые мы объявляем для массива в квадратных скобках [].

Если вы не укажете размер массива, будет создан массив, достаточно большой, чтобы вместить инициализацию. Поэтому если написать -

int number[] = {10, 20, 30, 40, 50};

Вы создадите точно такой же массив, как и в предыдущем примере. Ниже приведен пример назначения одного элемента массива:

number[4] = 50;

Вышеупомянутый оператор присваивает элементу номер 5-го в массиве со значением 50. Все массивы имеют 0 в качестве индекса их первого элемента, который также называется базовым индексом, а последний индекс массива будет общим размером массива минус 1. На следующем изображении показано графическое представление массива, который мы обсуждали выше.

Доступ к элементам массива

Доступ к элементу осуществляется путем индексации имени массива. Это делается путем помещения индекса элемента в квадратные скобки после имени массива. Например -

int var = number[9];

Вышеупомянутый оператор возьмет 10-й элемент из массива и присвоит значение varпеременная. В следующем примере используются все три вышеупомянутых концепции, а именно. создание, назначение и доступ к массивам -

#include <stdio.h>
 
int main () {
   int number[10]; /* number is an array of 10 integers */
   int i = 0;
 
   /* Initialize elements of array n to 0 */         
   while( i < 10 ) {
	
      /* Set element at location i to i + 100 */
      number[ i ] = i + 100;
      i = i + 1;
   }
   
   /* Output each array element's value */
   i = 0;
   while( i < 10 ) {
	
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
   
   return 0;
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат:

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Массивы в Java

Ниже приводится эквивалентная программа, написанная на Java. Java поддерживает массивы, но есть небольшая разница в том, как они создаются в Java с использованиемnew оператор.

Вы можете попробовать выполнить следующую программу, чтобы увидеть результат, который должен быть идентичен результату, полученному в приведенном выше примере C.

public class DemoJava {
   public static void main(String []args) {
      int[] number = new int[10];
      int i = 0;
      
      while( i < 10 ) {
		
         number[ i ] = i + 100;
         i = i + 1;
      }

      i = 0;
      while( i < 10 ) {
         System.out.format( "number[%d] = %d\n", i, number[i] );
         i = i + 1;
      }
   }
}

Когда вышеуказанная программа выполняется, она дает следующий результат -

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Массивы (списки) в Python

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

Ниже приведена эквивалентная программа, написанная на Python -

# Following defines an empty list.
number = []
i = 0

while i < 10:
   # Appending elements in the list
   number.append(i + 100)
   i = i + 1

i = 0
while i < 10:
   # Accessing elements from the list
   print "number[", i,  "] = ", number[ i ]
   i = i + 1

Когда вышеуказанная программа выполняется, она дает следующий результат -

number[ 0 ] =  100
number[ 1 ] =  101
number[ 2 ] =  102
number[ 3 ] =  103
number[ 4 ] =  104
number[ 5 ] =  105
number[ 6 ] =  106
number[ 7 ] =  107
number[ 8 ] =  108
number[ 9 ] =  109