FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Algoritmos e linguagens de
programação 1
(aula 10)
Prof. Alessandro Bernardo
[email protected]
http://bsi.k6.com.br
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Até o momento, as variáveis armazenavam apenas um valor. Por exemplo a linha
abaixo:
int var;
Nessa linha, declara-se uma variável chamada var que pode armazenar apenas
um número inteiro.
Agora considere os exemplos:
(a) Faça um programa que leia e armazene três números reais e escreva a média
deles;
(b) Faça um programa que leia e armazene 200 números reais e escreva a média
deles.
Esse tipo de variável é suficiente para o exemplo mostrado na letra (a). Entretanto
no exemplo da letra (b), seria necessário declarar 200 variáveis!
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
É fácil verificar que declarar 200 variáveis para um exemplo simples como esse
é impraticável. Veja abaixo como seriam as soluções dos exemplos.
// Exemplo letra (a)
// Exemplo letra (b)
float a, b, c;
float a, b, c, d, e, f, ......
cout << “Insira três números:”;
cout << “Insira 200 números:”;
cin >> a >> b >> c;
cin >> a >> b >> c >> d >> ...;
float media = (a + b + c)/3;
float media = (a + b + c + ...)/200;
cout << “Média: “ << media << endl;
cout << “Média: “ << media << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Dessa forma, para esse último exemplo, outro tipo de variável é necessária.
O vetor é adequado para esse caso. Esse tipo de dado constitui em apenas uma
variável que pode armazenar mais de um dado do mesmo tipo.
No exemplo, é necessário armazenar 200 números do tipo float. Para isso, podese declarar um vetor que possua capacidade para armazenar 200 números do
tipo float. Ou seja, ao invés de se declarar
200 variáveis, declara-se um vetor com 200
vetor
campos, onde cada campo armazena um
0
número float.
1
Cada campo
2
A declaração de um vetor é vista abaixo,
armazena
3
um número float
sendo que, ao lado, encontra-se como
.......
esses dados são armazenados na memória.
float vetor[200];
198
199
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Refazendo o exemplo:
(b) Faça um programa que leia e armazene 200 números reais e escreva a média
deles.
float vetor[200];
cout << “Insira 200 números:”;
for (int i = 0; i < 200; i++)
{
cin >> vetor[i];
}
float soma = 0;
for (int i = 0; i < 200; i++)
soma += vetor[i];
cout << “Média: “ << soma/200 << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
SINTAXE:
Declaração:
tipo nome_do_vetor[ dimensão ];
Declaração e inicialização:
tipo nome_do_vetor[] = { var1, var2, var3, ... };
Atribuição:
nome_do_vetor [ posição ] = valor;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplo:
double v[5];
v[1] = 10;
v[4] = 5.5;
v[3] = 7.5;
v[2] = v[4] + v[3];
cout << v[2] << endl;
cout << v[1] << endl;
Memória:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplo:
double v[5];
v[1] = 10;
v[4] = 5.5;
v[3] = 7.5;
v[2] = v[4] + v[3];
cout << v[2] << endl;
cout << v[1] << endl;
Memória:
vetor
0
1
2
3
4
?
?
?
?
?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplo:
double v[5];
v[1] = 10;
v[4] = 5.5;
v[3] = 7.5;
v[2] = v[4] + v[3];
cout << v[2] << endl;
cout << v[1] << endl;
Memória:
vetor
0
1
2
3
4
?
10
?
7.5
5.5
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplo:
double v[5];
v[1] = 10;
v[4] = 5.5;
v[3] = 7.5;
v[2] = v[4] + v[3];
cout << v[2] << endl;
cout << v[1] << endl;
Memória:
vetor
0
1
2
3
4
?
10
13
7.5
5.5
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplo:
double v[5];
Memória:
v[1] = 10;
v[4] = 5.5;
v[3] = 7.5;
vetor
0
1
2
3
4
v[2] = v[4] + v[3];
cout << v[2] << endl;
cout << v[1] << endl;
Monitor:
13
10
?
10
13
7.5
5.5
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Outro exemplo:
int v[] = {10, 20, 30};
Memória:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Outro exemplo:
int v[] = {10, 20, 30};
Memória:
vetor
0
1
2
10
20
30
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exemplos:
(1) Faça um programa que leia e armazene 10 números em um vetor de float e,
em um laço separado, escreva no monitor o quadrado e o dobro dos números
armazenados.
(2) Faça um programa que leia e armazene 10 valores em um vetor de números
inteiros. Posteriormente, esse programa deverá mostrar os valores
armazenados no primeiro, terceiro, quinto, sétimo e nono 0 números reais.
(3) Faça um programa que leia e armazene N valores em um vetor de números
reais, sendo que N é um valor inserido pelo usuário. Em um laço for
separado, esse programa deverá calcular quantos números positivos foram
armazenados.
(4) Faça um programa que leia e armazene 10 números inteiros. Em um laço for
separado, esse programa deverá calcular quantos números pares ou ímpares
foram armazenados.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
(1) Faça um programa que leia e armazene 10 números em um vetor de float e,
em um laço separado, escreva no monitor o quadrado e o dobro dos números
armazenados.
cout << "Insira 10 números:" << endl;
float vet[10];
for (int i = 0; i < 10; i++)
cin >> vet[i];
cout << "O quadrado desses números são:" << endl;
for (int i = 0; i < 10; i++)
cout << vet[i]*vet[i] << endl;
cout << "O dobro desses números são:" << endl;
for (int i = 0; i < 10; i++)
cout << 2*vet[i] << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
(2) Faça um programa que leia e armazene 10 valores em um vetor de números
inteiros. Posteriormente, esse programa deverá mostrar os valores
armazenados no primeiro, terceiro, quinto, sétimo e nono 0 números reais.
cout << "Insira 10 números:" << endl;
int vet[10];
for (int i = 0; i < 10; i++)
cin >> vet[i];
cout << "Os valores do 1o, 3o, 5o, 7o e 9o campos são:" << endl;
for (int i = 0; i < 10; i+=2)
cout << vet[i] << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
(3) Faça um programa que leia e armazene N valores em um vetor de números
reais, sendo que N é um valor inserido pelo usuário. Em um laço for
separado, esse programa deverá calcular quantos números positivos foram
armazenados.
cout << "Insira a quantidade de números a serem inseridos: " ;
int qtd;
cin >> qtd;
double vet[qtd];
cout << "Insira " << qtd << " números: " << endl;
for (int i = 0; i < qtd; i++)
cin >> vet[i];
int qpos = 0;
for (int i = 0; i < qtd; i++)
if (vet[i] > 0)
qpos++;
cout << "Quantidade de números positivos: " << qpos << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
(4) Faça um programa que leia e armazene 10 números inteiros. Em um laço for
separado, esse programa deverá calcular quantos números pares ou ímpares
foram armazenados.
int vet[10];
cout << "Insira 10 números inteiros: " << endl;
for (int i = 0; i < 10; i++)
cin >> vet[i];
int qpar = 0, qimp = 0;
for (int i = 0; i < 10; i++)
if (vet[i] % 2 == 0)
qpar++;
else
qimp++;
cout << "Quantidade de números pares: " << qpar << endl;
cout << "Quantidade de números ímpares: " << qimp << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
Tecnologia em Redes de Computadores
Vetores
Exercícios:
(1) Faça um programa que leia e armazene 10 números reais e, em um laço
separado, calcule quantos deles são positivos, negativos ou zero.
(2) Faça um programa que leia e armazene 10 números em um vetor de float e,
em um laço separado, calcule o somatório e a média entre esses números.
(3) Faça um programa que leia e armazene N números em um vetor de int,
sendo que N é um número inserido pelo usuário. Esse programa, em um laço
separado, deverá contar quantos pares e ímpares foram inseridos e deverá
calcular o somatório desses números.
Download

aula10 - GEOCITIES.ws