O que são arrays: estruturas de dados homogêneas coleção de elementos do mesmo tipo...

33
Programação I Arrays

Transcript of O que são arrays: estruturas de dados homogêneas coleção de elementos do mesmo tipo...

Page 1: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Programação I

Arrays

Page 2: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Arrays

O que são arrays: estruturas de dados homogêneas coleção de elementos do mesmo tipo

referenciada por um nome comum um array pode ser imaginado como uma

linha em uma tabela são usados para ordenação e busca

Page 3: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Arrays

Arrays são compostos por posições contíguas na memória

Exemplo: um array de 4 elementos

Page 4: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Arrays

Como declarar arrays: <tipo dos elementos> <nome> [<número de

elementos>];

Exemplo:int v[10];float notas[4];

Page 5: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Arrays

<tipo> <nome> [<número de elementos>];

tipo: o tipo de dado que o array armazena. Arrays só podem armazenar um único tipo

nome: qualquer identificador válido. Mesmas regras de identificadores de variáveis

número de elementos: array são estruturas estáticas, portanto o tamanho é definido na declaração

Page 6: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Acessando elementos do array Os elementos são acessados por meio

do nome seguido do índice do elemento O índice do primeiro elemento é O (zero)

e do último é n-1, sendo n o número de elementos

Exemplo:int a[3]; primeiro elemento : a[0] segundo elemento: a[1] terceiro elemento: a[2]

Page 7: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Acessando elementos do array Para atribuir valor ao elemento do array:

a[2] = 10; //armazena 10 no elemento de índice 2

Para usar o valor do elemento do array:

soma = a[0] + a[1];

Page 8: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Acessando elementos do array Acessar um array sem especificar o

índice é um erro de sintaxe

int a[10];a = 99; //errocout << a; //erro

Page 9: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Acessando elementos do array Acessar um elemento “fora” do array é

um erro de lógica e traz resultados inesperados em tempo de execução

int a[10];… soma = soma + a[10];

Page 10: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Inicializando arrays

Com estrutura de repetição

int arr[10]; int i = 0; for(i=0; i<10; i++) {

arr[i] = 0; }

Page 11: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Inicializando arrays

Atribuindo valor a cada elemento

char vogais[5] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};

int a[3] = { 1, 4, 9};

Page 12: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Inicializando arrays

Atribuindo valor zero a todos os elementos

int a[100] = {0}; //isto funciona

No entanto

int a[100] = {-1}; //isto não funciona!

Page 13: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Arrays de caracteres possuem certas características próprias

A principal diferença entre este tipo e os arrays numéricos é que eles podem ser tratados como palavras ou frases

Por exemplo, é possível “ler” todos os caracteres de uma vez só

Page 14: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Declarando um array de char:

char palavra[30];

Declarando e inicializando:

char vogais[6]={ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’};ou

char vogais[6]=“aeiou”; // isto pode na declaração

Page 15: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Arrays de char devem reservar a última posição para o terminador ‘\0’ ou caractere NULL

Isto é especialmente importante quando a “palavra” não ocupa todas as posições

Exemplochar p[30] = “teste”;

Internamente será armazenado“teste\0” sobrando 24 posições

Page 16: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Atribuição de valoresa[0]=‘x’;a[1]=‘y’;

No entanto:a = “xy”; // isto é um erro

a[1] = “x” // isto é um erro

Page 17: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Lendo valores Não use cin

Para ler arrays de caracteres gets( <array>) ; não faz verificação de tamanho

Esta função faz parte de <cstdio>

Page 18: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Lendo valores – exemplo

char a[10]; gets(a);

Lê uma palavra ou frase e coloca cada letra em uma posição do array, a partir da posição 0

Page 19: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

mostrando valores – exemplo

char a[10]; …

puts(a); //exibe o conteúdo do array

Oucout << a;

Page 20: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de caracteres

Outras funções para caracteres tolower(<caractere>) - converte para

minúsculo toupper (<caractere>) – converte para

maiúsculo isspace (<caractere>) - retorna

verdadeiro se o caractere for um espaço em branco

isdigit (<caractere>) - verifica se o caractere é um número decimal

Page 21: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Outras funções para arrays de caracteres strcpy(<destino>, <conteúdo>); Exemplo

char frase[50];

frase = “teste”; // isto é um erro

strcpy(frase, “teste”); // copia a cadeia // “teste” no array frase

Page 22: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Outras funções para arrays de caracteres strcmp(<array>, <array>); compara se dois arrays são iguais Exemplo

char palavra[50], outraPalavra[50];

if (frase == “teste”) // isto é um erro

strcmp(palavra, outraPalavra)

Page 23: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Outras funções para arrays de caracteres strcmp( ) é uma função que recebe

duas cadeias de caracteres e retorna:

0, se as duas cadeias forem iguais -1, se a primeira for menor que a segunda 1, se a primeira for maior que a segunda

Page 24: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Arrays podem ter mais de uma dimensão Arrays de duas dimensões podem ser

vistos como tabelas e geralmente são chamados de matrizes

Matrizes são conjuntos de dados arranjados na forma de linhas e colunas

Para identificar um elemento na tabela é necessário indicar a linha e coluna do elemento (célula)

Page 25: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Page 26: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Declarando arrays de duas dimensões

int a[3][4];

Inicializando na declaração

int a[2][2] = {{ o,o}, {0,0}};

Page 27: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Inicializando com estrutura de repetição

int a[3][4];for (i=0; i < 3; i++){

for (j=0; j < 4; j++){a[i][j] = 0;

}}

Page 28: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Inicializando com estrutura de repetição

int a[3][4];for (i=0; i < 3; i++){for (j=0; j < 4; j++){a[i][j] = 0;}} sempre é necessário referenciar alinha e coluna

Page 29: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Lendo os dados de uma matriz

int a[3][4];for (i=0; i < 3; i++){

for (j=0; j < 4; j++){cin >> [i][j];

}}

Page 30: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Array de duas dimensões

Mostrando os dados de uma matriz

int a[3][4];for (i=0; i < 3; i++){for (j=0; j < 4; j++){cout << [i][j] << “\t”;}cout << endl; //muda a linha}

Page 31: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Busca em Arrays

Uma busca consiste em saber: se um dado elemento está no array quantas ocorrências do elemento

procurado existem no array Exemplo:

Dado um número de candidato, saber se ele está na lista dos aprovados

Page 32: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Busca em Arrays

Exemplo:…bool achou = false;

while (i < TAM){ if (lista[i] == elemento){ achou = true; } i++; }

Page 33: O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.

Busca em Arrays

Exemplo melhorado:…bool achou = false;

while (i < TAM && !achou){ if (lista[i] == elemento){ achou = true; } i++; }