Sei sulla pagina 1di 13

Tcnico em Informtica

Estrutura de Dados

Arrays
Alex Helder Cordeiro de Oliveira
Instituto Federal de Braslia -

Campus

Braslia

2 semestre de 2013

Alex Helder (IFB)

EDD - Arrays

2013/2

1 / 13

Exemplo Motivador

Imaginemos um programa para o IBGE, por exemplo, que tenha de


processar a renda de todas as famlias de uma cidade.
A renda de cada famlia ter de ser armazenada em uma varivel.
Se tivermos de declarar cada varivel explicitamente, teremos um
programa extremamente extenso.

Alex Helder (IFB)

EDD - Arrays

2013/2

2 / 13

Exemplo Motivador

main() {
float
float
float
....
float

renda0001;
renda0002;
renda0003;
renda8793;

scanf("%f",renda0001);
scanf("%f",renda0002);
scanf("%f",renda0003);
....
scanf("%f",renda8793);

float media = (renda0001+renda0002+renda0003+


+....+renda8793)/8793;
Alex Helder (IFB)

EDD - Arrays

2013/2

3 / 13

Soluo

Usar uma estrutura que permita:

Alocar de uma s vez, espao suciente para diversas variveis.


Jogar operaes repetidas nas diferentes variveis em algum tipo de
lao.

Alex Helder (IFB)

EDD - Arrays

2013/2

4 / 13

Array

Tambm chamado vetor;


um conjunto de variveis (elementos) de um mesmo tipo;
Os elementos so acessados atravs do nome do array e um ndice.

Alex Helder (IFB)

EDD - Arrays

2013/2

5 / 13

Array - Declarao

Semelhante a uma varivel comum, coloca-se o tipo seguido do nome


da varivel;
Acrescentamos o tamanho (quantidade de elementos) entre colchetes.

float renda[1000];
O tamanho tem de ser inserido literalmente ou atravs de uma

constante .
Uma vez criado o array, no se pode alterar seu tamanho.

Algumas variaes de C, tal como o C99 permitem que o tamanho seja

denido em tempo de execuo.


Alex Helder (IFB)

EDD - Arrays

2013/2

6 / 13

Array - Acesso

Cada elemento ser acessado pelo nome do array seguido do seu indice
entre colchetes;

float valor = renda[13];


renda[55] = valor;

O ndice um nmero inteiro que varia de 0 ao tamanho do array - 1 .


Tentar acessar elementos com ndice negativo, maior ou igual ao
tamanho ou com valor no inteiro resulta em erro.

O - 1 se d ao fato de que inclumos o 0.


Alex Helder (IFB)

EDD - Arrays

2013/2

7 / 13

Array - Manipulao dentro de

for

Os arrays permitem a realizao de operaes repetidas dentro de um


lao, utilizando o ndice para identicar cada item.
Uma vez que sabemos a quantidade de vezes que queremos repetir a
operao (quantidade de itens do array), podemos usar o lao

for.

Exemplo de atribuio de valores aos elementos do array atravs de


uma frmula (de nmeros pares):

int array[20];
int i;
for(i = 0; i < 20; i++) {
array[i] = 2*i;
}

Alex Helder (IFB)

EDD - Arrays

2013/2

8 / 13

Array - Manipulao dentro de

Alex Helder (IFB)

for

EDD - Arrays

2013/2

9 / 13

Array - Manipulao dentro de

for

Exemplo de como obter do usurio os valores para os elementos do


array:

int array[20];
int i;
for(i = 0; i < 20; i++) {
scanf("%d", &array[i]);
}
Exemplo de como apresentar o array ao usurio:

int i;
for(i = 0; i < 20; i++) {
printf("%d ", array[i]);
}

Exemplo encontrado no arquivo


Alex Helder (IFB)

array.c.
EDD - Arrays

2013/2

10 / 13

Constantes em C
Para se criar uma constante, podemos fazer a declarao semelhante
de uma varivel, acrescentando a palavra-chave

const

antes do tipo

da varivel.

const int taxa;

Com o valor que for inicializado , a constante car durante toda a


execuo do programa.

Caso tenhamos um valor que se repete durante diversos trechos do


programa, podemos criar um nome para este valor atravs do

#define.
#define QUANTIDADE 200;
comando #define faz com que o nome

comando de pr-processamento

aps o comando tenha o

valor apresentado a seguir em todas as ocorrncias dentro do


programa.

Primeiro valor atribudo


Alex Helder (IFB)

EDD - Arrays

2013/2

11 / 13

Sua Vez...

(1.0 pontos) - Questo 9:

Escreva um programa que receba 10 nmeros

e armazene-os em um array. Depois apresente quais destes nmeros so


menores que 10.

Alex Helder (IFB)

EDD - Arrays

2013/2

12 / 13

Sua Vez...

(1.0 pontos) - Questo 10:

Escreva um programa que receba 10

nmeros e armazene-os em um array. Depois apresente quantos destes


nmeros so maiores que 10.

Alex Helder (IFB)

EDD - Arrays

2013/2

13 / 13

Potrebbero piacerti anche