Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo [email protected]
description
Transcript of Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo [email protected]
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Algoritmos e linguagens de programação 1
(aula 10)
Prof. Alessandro [email protected]://bsi.k6.com.br
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
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!
Vetores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
É 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.
Vetores
// Exemplo letra (a)
float a, b, c;
cout << “Insira três números:”;
cin >> a >> b >> c;
float media = (a + b + c)/3;
cout << “Média: “ << media << endl;
// Exemplo letra (b)
float a, b, c, d, e, f, ......
cout << “Insira 200 números:”;
cin >> a >> b >> c >> d >> ...;
float media = (a + b + c + ...)/200;
cout << “Média: “ << media << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
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, pode-se declarar um vetor que possua capacidade para armazenar 200 números do tipo float. Ou seja, ao invés de se declarar200 variáveis, declara-se um vetor com 200campos, onde cada campo armazena um número float.
A declaração de um vetor é vista abaixo, sendo que, ao lado, encontra-se como esses dados são armazenados na memória.
float vetor[200];
Vetores
.......
0123
198199
vetor
Cada campo armazena um número float
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Refazendo o exemplo: (b) Faça um programa que leia e armazene 200 números reais e escreva a média deles.
Vetores
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ÓGICASTecnologia em Redes de Computadores
Vetores
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;
SINTAXE:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exemplo:
Vetores
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ÓGICASTecnologia em Redes de Computadores
Exemplo:
Vetores
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;
01234
vetor
Memória:
??
?
?
?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exemplo:
Vetores
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;
01234
vetor
Memória:
?10
?
7.5
5.5
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exemplo:
Vetores
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;
01234
vetor
Memória:
?10
13
7.5
5.5
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exemplo:
Vetores
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;
01234
vetor
Memória:
?10
13
7.5
5.5
1310
Monitor:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Outro exemplo:
Vetores
int v[] = {10, 20, 30}; Memória:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Outro exemplo:
Vetores
int v[] = {10, 20, 30};
012
vetor
Memória:
1020
30
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
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.
Vetores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
(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.
Vetores
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ÓGICASTecnologia em Redes de Computadores
(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.
Vetores
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ÓGICASTecnologia em Redes de Computadores
(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.
Vetores
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ÓGICASTecnologia em Redes de Computadores
(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.
Vetores
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ÓGICASTecnologia em Redes de Computadores
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.
Vetores