Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo [email protected]

19
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

description

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. Vetores. - PowerPoint PPT Presentation

Transcript of Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo [email protected]

Page 1: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 2: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 3: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 4: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 5: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 6: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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:

Page 7: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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:

Page 8: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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:

??

?

?

?

Page 9: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 10: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 11: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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:

Page 12: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Outro exemplo:

Vetores

int v[] = {10, 20, 30}; Memória:

Page 13: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 14: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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

Page 15: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 16: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 17: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 18: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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;

Page 19: Algoritmos e linguagens de programação 1 (aula 10) Prof. Alessandro Bernardo alebernardo@unb.br

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