o que são arrays: estruturas de dados homogêneas coleção de elementos do mesmo tipo...
TRANSCRIPT
![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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022051519/5706385d1a28abb8238fe2ee/html5/thumbnails/33.jpg)
Busca em Arrays
Exemplo melhorado:…bool achou = false;
while (i < TAM && !achou){ if (lista[i] == elemento){ achou = true; } i++; }