Вы находитесь на странице: 1из 24

Universidade Federal da Paraba

Centro de Informtica
Introduo Programao
Prof. Bruno Jefferson
bruno@ci.ufpb.br
1 Bruno Jefferson (2014)
Roteiro
Introduo
Vetores
Arranjos Multidimensionais
Exerccios
Bruno Jefferson (2014) 2
Introduo
Motivao
E se vocs tivessem que guardar um registro
de duzentos valores informados pelo usurio?
Ser que seriam necessrias duzentas
variveis?
Alm de deselegante, seria bastante prejudicial para
a legibilidade do cdigo, e certamente vocs iriam
se perder com tanta varivel para controlar.
A soluo seria a declarao de uma varivel que
consistisse de um conjunto de valores, armazenados
de forma estruturada e organizada.
Introduo
Definio
Conjuntos de elementos de um mesmo
tipo, representados por um nico nome.
Tambm chamados de variveis compostas
homogneas ou arrays.
Introduo
Os arrays podem variar quanto sua
dimenso, isto , a quantidade de ndices
necessria para a individualizao de cada
elemento do conjunto.
O array unidimensional tambm
conhecido por vetor, enquanto o array
bidimensional denominado de matriz.
Ilustrao
Cada elemento dos arranjos pode ser
referenciado atravs de ndices. Exemplos:
V[1] = M[1][1] = T[1][1][1] =
V[2] = M[2][3] = T[2][3][2] =
V[5] = M[3][1] = T[1][2][3] =
4
7
3
3
4
2
3
9
3
Vetores
Vetores so arrays que necessitam de apenas
um ndice para individualizar um elemento
do conjunto, ou seja, arrays unidimensionais.
Declarao
Onde:
nome_vetor o nome da varivel que se deseja
declarar;
quant_elementos quantidade mxima de
elementos que o vetor poder armazenar;
tipo o tipo dos elementos do vetor.
<tipo> <nome_vetor>[<quant_elementos>];
Declarao de vetores
Exemplos
float notas[3];
Declara uma um vetor chamado notas, alocando
espao para armazenamento de no mximo 3 elementos
do tipo float.
char nome[40];
Declara uma um vetor chamado nome, alocando
espao para armazenamento de no mximo 40
elementos do tipo char.
int idades[10];
Declara uma um vetor chamado idades, alocando
espao para armazenamento de no mximo 10
elementos do tipo int.
Declarao com inicializao
Sintaxe:
Exemplos:
float notas[3] = {10.0, 7.0, 8.5};
char nome[40] = {B,r,u,n,o};
int idade[5] = {18, 10, 35, 30, 26};
Na declarao com inicializao, a quantidade
de elementos do vetor pode ser omitida. Ex:
int alturas[] = {1.80, 1,75, 2.00};
Cria um arranjo com 3 elementos do tipo
float.
<tipo> <nome_vetor>[<quant_elementos>] = {valores};
Acessando elementos do vetor
Os elementos de um vetor podem ser
acessados individualmente.
O acesso feito atravs de ndices que
variam de 0 at (quant_elementos-1).
1 elemento do array possui ndice 0
2 elemento da array possui ndice 1
...
N-simo elemento possui ndice
(quant_elementos-1)
<nome_vetor>[<indice>]
Acessando elementos do vetor
Atribuio
possvel atribuir valores aos elementos do
vetor individualmente.
Ex:
float notas[3]; // Declaracao do vetor
nota[0] = 8.0;
nota[1] = 7.0;
nota[2] = 9.5;
ndices
0 1 2
notas
8.0 7.0 9.5
nota[3] = 10.0; // Erro: O limite do array ultrapassado
Acessando elementos do vetor
Estruturas de repetio
Estruturas de repetio so utilizadas para
percorrer o vetor.
float notas[3];
int i;
for (i = 0; i < 3; i++) // Inserindo valores no vetor
scanf(%f, &notas[i]);
for (i = 0; i < 3; i++) // Percorrendo o vetor
printf(%f, notas[i]);
Sempre use o smbolo <, j
que os ndices variam de 0 at
quant_elementos - 1.
Vetores
Exerccio Resolvido IV
Escreva um programa para ler a idade de 10
pessoas, calcular a mdia de idade do grupo
e exibir apenas as idades das pessoas acima
da mdia.
Vetores
Exerccio Resolvido IV (Esboo da
Soluo)
Entrada de dados
Idade de 10 pessoas
Processamento
I estrutura de repetio para calcular a mdia
for (i = 0; i < 10; i++)
soma = soma + i
media = soma / n
1 estrutura de repetio para exibio das idades
Sada de dados
Idades maiores que a mdia.
Exerccio Resolvido IV (Soluo)
#include <stdio.h>
#include <conio.h>
int main() {
int idade[10], soma = 0, i;
float media = 0;
for (i = 0; i < 10; i++) {
printf("Digite a idade da %d pessoa: ", i+1);
scanf("%d", &idade[i]);
soma = soma + idade[i];
}
media = soma/10;
printf("\nIdades maiores que a media:\n");
for (i = 0; i < 10; i++) {
if (idade[i] > media)
printf("%d ", idade[i]);
}
getch();
return 0;
}
Arrays Multidimensionais
Permite a criao de arranjos, cujos
elementos tambm so arranjos.
Os elementos so acessados atravs de
ndices para cada dimenso.
Sintaxe:
Ex:
int idade[3][10]; // 3 grupos de 10 pessoas
float notas[3][30]; // notas de 3 turmas de 30 alunos
<tipo> <nome_vetor>[quant1][quant2]...[quantN];
Arrays Multidimensionais
Declarao com inicializao
Os valores de cada dimenso so colocados
entre chaves.
Se houver elementos sem respectivos valores
numa dada dimenso, eles recebero o valor
0.
Ex:
int idades[3][3] = { {18, 20, 13},
{4, 25, 30},
{5, 60, 19} };
Array com 3 linhas
e 3 colunas
Arrays Multidimensionais
Declarao com inicializao
Exemplo
int arBi[5][3] = { {1, 2, 3},
{4},
{5, 6, 7} };
As trs primeiras
linhas so iniciadas
explicitamente
O primeiro elemento da
sua segunda linha
iniciado explicitamente

1 2 3
4 0 0
5 6 7
0 0 0
0 0 0
Visualizao em forma de tabela
Arrays Multidimensionais
Acessando elementos individuais
Exemplo:
<nome_array>[<indice1>][indice2]...[indiceN];
float notas[3][30], i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 30; j++) {
scanf(%f, &notas[i][j]);
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 30; j++) {
printf(%f, notas[i][j]);
}
}
Exerccios Nvel 1
(1.1) Escreva um programa que receba cinco valores do
usurio os armazene em um vetor.
(1.2). Faa um programa que crie um vetor com os valores
de 01 a 500 e depois imprima os elementos desse vetor
na tela.
(1.3). Crie um programa para gerar uma matriz de
dimenses 3x3 preenchida com valores aleatrios e os
mostre na tela no formato:
Bruno Jefferson (2014) 20
x x x
x x x
x x x
Exerccios Nvel 2
(2.1) Suponha que se deseje processar um conjunto de valores
representado altura e sexo (M/F) de um grupo de 10 pessoas.
Escreva um programa em C que:
(a) Leia este conjunto de dados e armazene-o em dois arrays
vinculados, um dos quais contm as alturas e o outro contm
os sexos dos indivduos.
(b) Determine a maior e a menor altura dentre esses
indivduos, indicando o sexo do indivduo de maior altura e o
sexo do indivduo de menor altura.
(c) Encontre a mdia de altura entre os indivduos do sexo
feminino (representados no programa pelo caractere 'F') e a
mdia de altura entre os indivduos do sexo masculino
(representados no programa pelo caractere 'M').
(d) Determine o nmero total de indivduos de cada sexo.
Bruno Jefferson (2014) 21
Exerccios Nvel 2
(2.2) Escreva um programa em C que solicita ao
usurio para introduzir n valores inteiros, l estes
nmeros e apresenta, logo antes de encerrar, o seguinte:
(i) Todos os nmeros introduzidos
(ii) O menor valor introduzido
(iii) O maior valor introduzido
(iv) A mdia dos valores introduzidos.
O valor n deve ser o primeiro dado introduzido pelo
usurio, mas voc deve estipular em seu programa um
valor mximo para n (no use nmeros mgicos).
Bruno Jefferson (2014) 22
Exerccios Nvel 2
(2.3) Escreva um programa em C que simula o
lanamento de um dado n vezes e imprime o
percentual de surgimento de cada face do dado. O
valor n introduzido pelo usurio, sendo que 0
encerra o programa. Seu programa dever utilizar
um array para armazenar os nmeros de
aparecimento de cada face. Aproveite-se deste fato
para evitar o uso de instrues condicionais
(switch ou if) no clculo dos percentuais.
Dica: A funo random() de <math.h> gera um
nmero aleoatrio entre 0 e 1.
Bruno Jefferson (2014) 23
Referncias
ASCENCIO, A. F. G., CAMPOS, E. A. V.;
Fundamentos da Programao de
Computadores, 3. Ed., So Paulo: Pearson,
2012.
Schildt, H; C Completo e Total. Makron
Books. 1997.
Oliveira, U.; Programando em C -
Fundamentos. Volume I. Editora Cincia
Moderna. 2008.
Bruno Jefferson (2014) 24

Вам также может понравиться