Programação de computador - Arrays
Considere uma situação em que precisamos armazenar cinco números inteiros. Se usarmos os conceitos de variável simples de programação e tipo de dados, precisamos de cinco variáveis deint tipo de dados e o programa serão os seguintes -
#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);
}
Era simples, porque tínhamos que armazenar apenas cinco números inteiros. Agora vamos supor que temos que armazenar 5.000 números inteiros. Vamos usar 5000 variáveis?
Para lidar com tais situações, quase todas as linguagens de programação fornecem um conceito chamado array. Uma matriz é uma estrutura de dados, que pode armazenar uma coleção de tamanho fixo de elementos do mesmo tipo de dados. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis do mesmo tipo.
Em vez de declarar variáveis individuais, como número1, número2, ..., número99, você apenas declara uma variável de matriz numberde tipo inteiro e use número1 [0], número1 [1] e ..., número1 [99] para representar variáveis individuais. Aqui, 0, 1, 2, ..... 99 sãoindex associado com var variável e eles estão sendo usados para representar os elementos individuais disponíveis na matriz.
Todas as matrizes consistem em locais de memória contíguos. O endereço mais baixo corresponde ao primeiro elemento e o endereço mais alto ao último elemento.
Criar matrizes
Para criar uma variável de array em C, um programador especifica o tipo dos elementos e o número de elementos a serem armazenados nesse array. Dada a seguir é uma sintaxe simples para criar um array em programação C -
type arrayName [ arraySize ];
Isso é chamado de matriz unidimensional . oarraySize deve ser uma constante inteira maior que zero e typepode ser qualquer tipo de dados C válido. Por exemplo, agora para declarar uma matriz de 10 elementos chamadanumber do tipo int, use esta declaração -
int number[10];
Aqui, o número é uma matriz variável, que é suficiente para conter até 10 números inteiros.
Inicializando matrizes
Você pode inicializar um array em C um por um ou usando uma única instrução da seguinte maneira -
int number[5] = {10, 20, 30, 40, 50};
O número de valores entre colchetes {} não pode ser maior do que o número de elementos que declaramos para a matriz entre colchetes [].
Se você omitir o tamanho do array, um array grande o suficiente para conter a inicialização é criado. Portanto, se você escrever -
int number[] = {10, 20, 30, 40, 50};
Você criará exatamente o mesmo array que fez no exemplo anterior. A seguir está um exemplo para atribuir um único elemento da matriz -
number[4] = 50;
A instrução acima atribui o número do elemento 5 na matriz com um valor de 50. Todas as matrizes têm 0 como o índice de seu primeiro elemento, que também é chamado de índice base e o último índice de uma matriz será o tamanho total da matriz menos 1. A imagem a seguir mostra a representação pictórica da matriz que discutimos acima -
Acessando Elementos de Matriz
Um elemento é acessado indexando o nome da matriz. Isso é feito colocando o índice do elemento entre colchetes após o nome da matriz. Por exemplo -
int var = number[9];
A instrução acima pegará o décimo elemento da matriz e atribuirá o valor a varvariável. O exemplo a seguir usa todos os três conceitos acima mencionados viz. criação, atribuição e acesso a matrizes -
#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;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
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
Arrays em Java
A seguir está o programa equivalente escrito em Java. Java oferece suporte a matrizes, mas há uma pequena diferença na maneira como são criados em Java usando onew operador.
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo C acima.
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;
}
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
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
Arrays (listas) em Python
Python não tem um conceito de Array, em vez disso, Python fornece outra estrutura de dados chamada list, que fornece funcionalidade semelhante às matrizes em qualquer outra linguagem.
A seguir está o programa equivalente escrito em 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
Quando o programa acima é executado, ele produz o seguinte resultado -
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