segunda-feira, 2 de dezembro de 2019

C++ - Arrays



As arrays servem para armazenar dados do mesmo tipo, em sequência.
São parecidas com as listas de Python.

Declaração
Para criar uma array sem nenhuns valores iniciais (declarar), temos de especificar o seu tamanho.

int arr[5];
Onde arr é o nome da array.
Isto criou a array com 5 lugares vazios.

O tamanho especificado tem que ser uma constante, ou seja não é possível escrever
int arr[n];
onde n é uma variável.

O tamanho da array não pode ser mudado de forma fácil. Para isso, é melhor usar o vector, uma "array" mais potente, que falarei futuramente.

Inicialização
Podemos atribuir valores logo na declaração.
Para isso, à direita da declaração da array, colocamos um igual (=) e entre { } os elementos, separados por vírgulas.

int arr[5] = {2, 3, 6, 1, 9};

Se especificarmos o tamanho, temos de colocar o mesmo número ou menos elementos que o tamanho. Se colocarmos menos, o resto, quando é uma array de inteiros, vai ser 0.

Também podemos não especificar o tamanho, e o número de elementos que colocarmos vai ser o tamanho.
int arr[] = {2, 3, 6, 1};
Uma array de 4 elementos.

Acessar um elemento
O índice de cada elemento é 1 a menos que a sua posição.
Isto é, o primeiro elemento é o 0, segundo elemento é o 1 e o terceiro elemento é o 2.

Para acessar um elemento, escrevemos o nome da array e o índice entre [ ].
cout << arr[2] << endl;
Aqui fazemos print do terceiro elemento (o elemento de índice 2).

Ou seja, para mudar o valor de um elemento fazemos
arr[1] = 5;

E todas as outras operações que se podem fazer com uma variável int normal.

Porquê a array
Cada elemento funciona então como uma variável, aliás, ter uma array é essencialmente ter várias variáveis com o mesmo nome mas cada uma tem um número diferente.
Imaginem que temos várias notas de 0 a 20. Em vez de escrevermos
float nota1 = 12.5;
float nota2 = 18.9;
float nota3 = 14.6;

Escrevemos
float notas[3] {12.5, 18.9, 14.6};

Tanto poupamos tempo a inicializar, como também é mais fácil modificar e adicionar novos valores.
Claro que nesta não podemos adicionar mais valores durante o programa, mas se tivessemos inicializado com, digamos tamanho 100, podiamos adicionar mais ao longo do tempo, talvez com input do utilizador.
Sem a array, isto seria impossível.

Uso do for loop com a array
Costuma-se usar muito o for loop para fazer uma mesma operação com todos os elementos da array.
Digamos que se quer adicionar 1 a todos os elementos de uma array int.
int elements[5] = {1, 2, 3, 4, 5};

for(int i = 0; i < 5; i++){
    elements[i]++;
}

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    string finalName;
    string names[3];
    cout << "Enter 3 names:" << endl;
    
    for(int i = 0; i < 3; i++){
        cin >> names[i];
        finalName += names[i];
    }
    
    cout << finalName << endl;
}

Este programa pede um nome ao utilizador 3 vezes, depois faz print dos 3 nomes juntos.
Para isto, temos uma array vazia de nomes, e um for loop de 3 ciclos.
Dentro dele temos um "cin" que pede input em cada elemento, o de índice 0, 1, e 2 (1º, 2º, 3º).
Depois, como foi atribuído um valor aos elementos da array, adicionam-se à string finalName, a qual é feita print no final.

Se os nomes forem "Oh", "My" e "God" (escritos separados por espaço ou Enters), na consola vai estar:
Enter 3 names:
Oh My God
OhMyGod

Referências - 30/11/2019

1 comentário:

  1. Muito bem explicado! Agora devias ir ver a minha publicação de listas para compararmos: http://aebenficaonline.blogspot.com/2019/12/python-listas-parte-1.html

    ResponderEliminar

Comente de uma forma construtiva...

Mensagem em destaque

IoT está a transformar o mundo dos videojogos

Os videojogos ou games evoluíram muito desde o "pong", tornando-se uma das formas mais populares de entretenimento, gerando recei...