0% acharam este documento útil (0 voto)
9 visualizações38 páginas

Aula Array

Enviado por

wandrewricardo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
9 visualizações38 páginas

Aula Array

Enviado por

wandrewricardo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 38

LINGUAGEM C:

ARRAY: VETORES E MATRIZES


POR QUE USAR ARRAY?
 As variáveis declaradas até agora são capazes
de armazenar um único valor por vez.
 Sempre que tentamos armazenar um novo valor
dentro de uma variável, o valor antigo é sobrescrito
e, portanto, perdido

Saída
x = 10.000000
x = 20.000000
ARRAY
 Array ou “vetor” é a forma mais familiar de dados
estruturados.
 Basicamente, um array é uma sequência de
elementos do mesmo tipo, onde cada elemento é
identificado por um índice
 A idéia de um array ou “vetor” é bastante simples:
criar um conjunto de variáveis do mesmo tipo
utilizando apenas um nome.
ARRAY - PROBLEMA
 Imagine o seguinte problema
 leia as notas de uma turma de cinco estudantes e
depois imprima as notas que são maiores do que a
média da turma.
 Um algoritmo para esse problema poderia ser o
mostrado a seguir.
ARRAY - SOLUÇÃO
ARRAY
 O algoritmo anterior apresenta uma solução possível
para o problema apresentado
 Porém, essa solução é inviável para grandes
quantidades de alunos
 Imagine se tivéssemos de processar as notas de 100 alunos
ARRAY
 Para 100 alunos, precisamos de:
 Uma variável para armazenar a nota de cada aluno
 100 variáveis
 Um comando de leitura para cada nota
 100 scanf()
 Um somatório de 100 notas
 Um comando de teste para cada aluno
 100 comandos if.
 Um comando de impressão na tela para cada aluno
 100 printf()
ARRAY - DEFINIÇÃO
 As variáveis têm relação entre si
 todas armazenam notas de alunos
 Podemos declará-las usando um ÚNICO nome
para todos os 100 alunos
 notas: conjunto de 100 valores acessados por um
índice
 Isso é um array!

0 1 ... 99

notas
ARRAY - DECLARAÇÃO
 Arrays são agrupamentos de dados adjacentes na
memória. Declaração:
 tipo_dado nome_array[tamanho];
 O comando acima define um array de nome
nome_array, capaz de armazenar tamanho
elementos adjacentes na memória do tipo tipo_dado
 Ex: int notas[100];

0 1 ... 99

notas
ARRAY - DECLARAÇÃO
 Em um array, os elementos são acessados
especificando o índice desejado entre colchetes [
]
 A numeração começa sempre do zero

 Isto significa que um array de 100 elementos terá


índices de 0 a 99:
 notas[0], notas[1], notas[2], ..., notas[99]
0 1 ... 99

81 52 72

notas
ARRAY - DEFINIÇÃO
 Observação
 Se o usuário digitar mais de 100 elementos em um
array de 100 elementos, o programa tentará ler
normalmente.
 Porém, o programa os armazenará em uma parte não
reservada de memória, pois o espaço reservado para o
array foi para somente 100 elementos.
 Isto pode resultar nos mais variados erros durante a
execução do programa.
ARRAY = VARÍAVEL
 Cada elemento do array tem todas as
características de uma variável e pode aparecer
em expressões e atribuições (respeitando os seus
tipos)
 notas[2] = x + notas[3];
 if (notas[2] > 60)

 Ex: somar todos os elementos de notas:


PERCORRENDO UM ARRAY
 Podemos usar um comando de repetição (for,
while e do-while) para percorrer um array
 Exemplo: somando os elementos de um array de 5
elementos

Variáveis
soma i lista[i]
0
3 0 3
54 1 51
72 2 18
74 3 2
119 4 45
5
ARRAY - CARACTERÍSTICAS
 Características básicas de um Array
 Estrutura homogênea, isto é, é formado por
elementos do mesmo tipo.
 Todos os elementos da estrutura são igualmente
acessíveis, isto é, o tempo e o tipo de procedimento
para acessar qualquer um dos elementos do array são
iguais.
 Cada elemento do array tem um índice próprio
segundo sua posição no conjunto
ARRAY - PROBLEMA
 Voltando ao problema anterior
 leia as notas de uma turma de cinco estudantes e
depois imprima as notas que são maiores do que a
média da turma.
ARRAY - SOLUÇÃO
 Um algoritmo para esse problema usando array:
ARRAY - SOLUÇÃO
 Se ao invés de 5, fossem 100 alunos?
EXERCÍCIO
 Para um array A com 5 números inteiros,
formular um algoritmo que determine o maior
elemento deste array
EXERCÍCIO - SOLUÇÃO
Variáveis
ma i A[i]
3 0 3
18 1 18
51 2 2
3 51
4 45
5
COPIANDO UM ARRAY
 Não se pode fazer atribuição de arrays inteiros,
apenas de suas posições individualmente
ARRAYS BIDIMENSIONAIS - MATRIZES
 Os arrays declarados até o momento possuem
apenas uma dimensão e, portanto, são tratados
como uma lista de variáveis.
 Porém, há casos em que uma estrutura com mais de
uma dimensão é mais útil.
 Por exemplo, quando os dados são organizados em
uma estrutura de linhas e colunas, como uma tabela.
Para isso usamos um array com duas dimensões, ou
seja, uma “matriz”.
ARRAYS BIDIMENSIONAIS - MATRIZES
 Arrays bidimensionais ou “matrizes”, contém:
 Dados organizados na forma de uma tabela de 2
dimensões;
 Necessitam de dois índices para acessar uma
posição: um para a linha e outro para a coluna

 Declaração
 tipo_variável nome_variável[linhas][colunas];
ARRAYS BIDIMENSIONAIS - MATRIZES
 Exemplo
 Criar uma matriz que tenha 100 linhas por 50
colunas
 int mat[100][50];
 mat[0][1] = 99;
0 1 ... 49

0 99

...

mat[0][1]

99
ARRAYS BIDIMENSIONAIS - MATRIZES
 Em uma matriz, os elementos são acessados
especificando um par de colchetes e índice para
cada dimensão da matriz
 A numeração começa sempre do zero
0 1 ... 49

0 99

...

mat[0][1]

99
ARRAYS BIDIMENSIONAIS - MATRIZES
 Cada elemento da matriz tem todas as
características de uma variável e pode aparecer
em expressões e atribuições (respeitando os seus
tipos)
 mat[0][1] = x + mat[1][5];
 if (mat[5][7] > 0)
ARRAYS BIDIMENSIONAIS - MATRIZES
 Como uma matriz possui dois índices, precisamos
de dois comandos de repetição para percorrer
todos os seus elementos.
ARRAYS MULTIDIMENSIONAIS
 Arrays podem ter diversas dimensões, cada uma
identificada por um par de colchetes na
declaração
 int vet[5]; // 1 dimensão
 float mat[5][5]; // 2 dimensões
 double cub[5][5][5]; // 3 dimensões
 int X[5][5][5][5]; // 4 dimensões
ARRAYS MULTIDIMENSIONAIS
 Apesar de terem o comportamento de estruturas
com mais de uma dimensão, na memória os dados
são armazenados linearmente:
 int mat[5][5];
0,0

4,4

0,0 1,0 2,0 3,0 4,0 4,4


ARRAYS MULTIDIMENSIONAIS
 Um array N-dimensional funciona basicamente
como outros tipos de array. Basta lembrar que o
índice que varia mais rapidamente é o índice
mais à direita.
 int vet[5]; // 1 dimensão
 float mat[5][5]; // 2 dimensões
 double cub[5][5][5]; // 3 dimensões
 int X[5][5][5][5]; // 4 dimensões
EXERCÍCIO
 Leia uma matriz de 3x3 elementos inteiros e
calcule a soma dos seus elementos
EXERCÍCIO - SOLUÇÃO
 Leia uma matriz de 3x3 elementos inteiros e
calcule a soma dos seus elementos
EXERCÍCIO
 Dado duas matrizes reais de dimensão 2x3, fazer
um programa para calcular a soma delas.
EXERCÍCIO - SOLUÇÃO
 Dado duas matrizes reais de dimensão 2x3, fazer
um programa para calcular a soma delas.
INICIALIZAÇÃO
 Arrays podem ser inicializados com certos valores
durante sua declaração. A forma geral de um
array com inicialização é:

tipo_da_variável nome_da_variável [tam1] ... [tamN] =


{dados};
INICIALIZAÇÃO
 A lista de valores é composta por valores (do
mesmo tipo do array) separados por vírgula.
 Os valores devem ser dados na ordem em que
serão colocados na matriz
INICIALIZAÇÃO SEM TAMANHO
 Inicialização sem especificação de tamanho
 Nesse tipo de inicialização, o compilador vai
considerar o tamanho do dado declarado como sendo
o tamanho do array.
 Isto ocorre durante a compilação e não poderá mais
ser mudado durante o programa.
 Isto é útil quando não queremos contar quantos
caracteres serão necessários para inicializarmos uma
string.
INICIALIZAÇÃO SEM TAMANHO
 Inicialização sem especificação de tamanho
MATERIAL COMPLEMENTAR
 Vídeo Aulas
 Aula 25: Array / Vetor
 Aula 26: Array / Matriz
 Aula 27: Array Multidimensional
 Aula 28: Inicialização de Arrays
 Aula 29: Somando um Array
 Aula 30: Maior valor de um Array

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy