Você está na página 1de 69

Bacharelado em Cincia e Tecnologia

Processamento da Informao

Vetores Unidimensionais

Vetores
Unimensionais
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Objetivos
Entender a importncia e a necessidade do
uso de Vetores
Definio de Vetores Unidimensionais
Manipulao de Vetores
Inserir elementos em um vetor (usando laos
ou no)
Acessar elementos de um vetor (usando
laos ou no)
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

PROBLEMA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA: a mdia
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA: a mdia

ENTRADA:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA: a mdia

ENTRADA: nota

10 vezes
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA: a mdia

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

SADA: a mdia

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Acumular a nota (somar com as anteriores) 10 vezes
Dividir a soma por 10
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.

LGICA (SOLUO)
Para cada um dos 10 alunos:
Ler a nota N
Acumular a nota (somar com as anteriores)
Media = soma / 10

N N N N N N N N N N SOMA MEDIA
? ? ? ? ? ? ? ? ? ? 0 0
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.
ATENO: a cada nota digitada vai
LGICA (SOLUO) acumulando com a anterior.
Pode-se usar a mesma varivel N
Para cada um dos 10 alunos:
para ler a nota do aluno seguinte
Ler a nota N
Acumular a nota (somar com as anteriores)
Media = soma / 10

N N N N N N N N N N SOMA MEDIA
5.5 ? ? ? ? ? ? ? ? ? 5.5 0
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.
ATENO: a cada nota digitada vai
LGICA (SOLUO) acumulando com a anterior.
Pode-se usar a mesma varivel N
Para cada um dos 10 alunos:
para ler a nota do aluno seguinte
Ler a nota N
Acumular a nota (somar com as anteriores)
Media = soma / 10

N N N N N N N N N N SOMA MEDIA
5.5 6.5 ? ? ? ? ? ? ? ? 11.0 0
E assim por diante ....
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 1
Calcular a mdia de uma classe a partir da
nota de seus 10 alunos.
ATENO: a cada nota digitada vai
LGICA (SOLUO) acumulando com a anterior.
Pode-se usar a mesma varivel N
Para cada um dos 10 alunos:
para ler a nota do aluno seguinte
Ler a nota N
Acumular a nota (somar com as anteriores)
Media = soma / 10

N N N N N N N N N N SOMA MEDIA
5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0 61.0 6.1
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
PORTUGAL
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo Em Portugol Studio


Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
JAVA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais
Soluo Em Java
import java.util.*;

public class Media00 {


public static void main(String[ ] args) {
double media, soma = 0, nota;
int cont = 0;
Scanner teclado = new Scanner(System.in);

while (cont < 10) {


System.out.println("Digite a nota : ");
nota = teclado.nextDouble();
soma = soma + nota;
cont++;
}
media = soma / 10;
System.out.println("Media da Sala = " + media);
}
}
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

AMPLIANDO O
PROBLEMA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Acumular a nota (somar com as anteriores) 10 vezes
Dividir a soma por 10
E O QUE MAIS ?
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Acumular a nota (somar com as anteriores) 10 vezes
Dividir a soma por 10
Para cada uma das 10 notas:
SE nota > media
ENTO contar
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Acumular a nota (somar com as anteriores) 10 vezes
MEDIA = soma / 10
Para cada uma das 10 notas:
SE nota > MEDIA
ENTO contar
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota
de seus 10 alunos e verificar quantos
conseguiram nota acima da mdia da classe:
SADA: mdia, quantidade acima media (cont)

ENTRADA: nota 10 vezes


PROCESSAMENTO:
Acumular a nota (somar com as anteriores) 10 vezes
MEDIA = soma / 10
Para cada uma das 10 notas: Como fazer isso se a MDIA s
SE nota > MEDIA existir quando a dcima nota
ENTO contar for lida?
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Para cada um dos 10 alunos:
Ler a nota N
soma = soma + N //Acumular a nota (somar com as anteriores)
MEDIA = soma / 10
Para cada uma das 10 notas:
SE nota > media
ENTO contar

ATENO: Note que preciso armazenar os 10 valores, para que


depois de calculada a mdia se possa verificar se cada uma das
10 notas esto acima da mdia
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 SOMA MEDIA
5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0 61.0 6.1
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema 2
Calcular a mdia de uma classe a partir da nota de seus 10 alunos e
verificar quantos conseguiram nota acima da mdia da classe:

SE N1 > media ENTO cont = cont + 1


SE N2 > media ENTO cont = cont + 1
SE N3 > media ENTO cont = cont + 1
...
SE N9 > media ENTO cont = cont + 1
SE N10 > media ENTO cont = cont + 1
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
PORTUGOL

Com variveis simples


Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com variveis simples


funcao inicio( )
{
real media, soma = 0, n1, n2, n3, n4, n5, n5, n6, n7, n8, n9, n10
inteiro cont = 0

escreva("Digite a nota n1: ");


leia(n1)

escreva ("Digite a nota n2: ");


leia(n2)

escreva ("Digite a nota n3: ");


leia(n3)
...
CONTINUA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com variveis simples


...
escreva ("Digite a nota n10");
leia(n10)

soma = n1+ n2 + n3 + n4 + n5 + n6 + n7 + n8, + n9 + n10


media = soma / 10

se (n1>media) cont=cont+1
se (n2>media) cont=cont+1 10 se
se (n3>media) cont=cont+1
...
...
se (n9>media) cont=cont+1
se (n10>media) cont=cont+1

escreva("Existem ", cont, " notas cima da media ", media)

}
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
JAVA

Com variveis simples


Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com variveis simples


import java.io.*;

public class Media01 {


public static void main(String[ ] args) {
float media, soma = 0, n1, n2, n3, n4, n5, n5, n6, n7, n8, n9, n10;
int cont = 0;
Scanner teclado = new Scanner(System.in);

System.out.println("Digite a nota n1: ");


n1 = teclado.nextFloat(); ...

System.out.println("Digite a nota n2: ");


n2 = teclado.nextFloat(); ...

System.out.println("Digite a nota n3: ");


n3 = teclado.nextFloat(); ...
... CONTINUA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com variveis simples


...
System.out.println("Digite a nota n10");
n10 = teclado.nextFloat(); ...

soma = n1+ n2 + n3 + n4 + n5 + n6 + n7 + n8, + n9 + n10;


media = soma / 10;

if (n1>media) cont=cont+1;
if (n2>media) cont=cont+1; 10 ifs
if (n3>media) cont=cont+1;
...
...
if (n9>media) cont=cont+1;
if (n10>media) cont=cont+1;

System.out.println("Existem " + cont + " notas cima da media " + media);


}
}
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema

E se fosse uma turma de 500 alunos ?


500 variveis ?
500 ifs ?

A maioria das linguagens


implementam variveis do tipo
CONJUNTO, chamadas de VETOR
ou ARRAY
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR
(ARRAY)
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR
Permite a declarao de variveis do tipo CONJUNTO
Uma varivel do tipo CONJUNTO pode armazenar mais de um
valor.
No ato da declarao da varivel deve-se informar o seu
tamanho.
Para o problema de armazenar 10 notas, pode-se definir uma
varivel de tamanho 10 do tipo real.

nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR No Portugol Studio


Para o problema de armazenar 10 notas, pode-se definir uma
varivel de tamanho 10 do tipo real.

Declarao: real nota [ 10 ]


nome
da varivel

A declarao acima cria em memria uma varivel do tipo REAL, chamada


NOTA e tamanho 10. As 10 posies so numeradas de 0 a 9 (ndice)
nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR No Portugol Studio

Declarao: real nota [ 10 ]


nome
da varivel

As 10 posies so numeradas de 0 a 9 (ndice)

nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR No Portugol Studio

Declarao: real nota [ 10 ]


nome
da varivel
nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9

Acesso a varivel:
Para acessar cada posio deve-se usar o nome da varivel e a sua
posio (ou ndice) entre colchetes. A instruo abaixo imprime a
terceira nota (ndice = 2) da varivel.
O ndice pode ser uma
escreva( A terceira nota = , nota [ 2 ] ) varivel: Ex. nota [ x ]
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
PORTUGOL

COM VETOR
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

L as notas via
teclado e guarda
no vetor

? ? ? ? ? ? ? ? ? ?
0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetor no Portugol Studio

Verifica se cada nota


armazenada est
acima da mdia

nota media
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
6.1
ndice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR
EM JAVA
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

VETOR No Portugol Studio


Para o problema de armazenar 10 notas...

Declarao: double nota[ ] = new double [ 10 ]


nome
tamanho
da varivel
A declarao acima cria em memria uma varivel do tipo double,
chamada NOTA e tamanho 10. As 10 posies so numeradas de 0 a 9 (ndice)
nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetores
Um vetor representado por:
Identificador - nome do vetor
Tamanho (dimenso) - quantidade de elementos
(dados)
Tipo - tipo de dado armazenado (integer, real, string)
Sintaxe:
tipo identificador [ ] = new tipo[tamanho];

double nota [ ] = new double [10];


45
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

SOLUO EM
JAVA

COM VETOR
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com VETOR


import java.io.*;
public class Media02 {
public static void main(String[ ] args) {
double nota [ ] = new double [10];
double media, soma = 0;
int indice = 0, cont = 0;

Scanner teclado = new Scanner(System.in);

while (indice < 10) {

System.out.println("Digite a nota :");

nota [ indice ] = teclado.nextDouble();


soma = soma + nota [ indice ];
indice++; CONTINUA
}
media = soma / 10;

Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com VETOR

/* ------- verificar quem est acima da mdia ------------ */

indice = 0; /* recomea a percorrer a partir da posio ZERO !!! */

while ( indice < 10) {


if ( nota [ indice ] > media ) {
cont++;
}
indice++;
}

System.out.println("Existem " + cont + " notas cima da media " + media);

}
}
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Respondendo pergunta:

E se fosse uma
turma de 500
alunos ?
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

EM
PORTUGOL

COM VETOR
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

[500]

? ? ? ? ? ? ? ? ? ?

500 0 1 2 3 4 5 6 7 8 9

500
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetor no Portugol Studio

500
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

EM
JAVA

COM VETOR
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com VETOR


import java.io.*;
public class Media02 {
public static void main(String[ ] args) {

double nota [ ] = new double [ 500];


double media, soma = 0;
int indice = 0, cont = 0;

Scanner teclado = new Scanner(System.in);

while (indice < 500) {


System.out.println("Digite a nota :");

nota [ indice ] = teclado.nextDouble ();

soma = soma + nota [ indice ];


indice++;
}

media = soma / 500 ;



Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Soluo com VETOR



/* ------- verificar quem est acima da mdia ------------ */

indice = 0; /* recomea a percorrer a partir da posio ZERO !!! */

while ( indice < 500 ){


if ( nota [ indice ] > media ) {
cont++;
}
ind++;
}

System.out.println("Existem " + cont + " notas cima da media " + media);

}
}
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Conceituando
Vetores
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetores

Definio de vetores:
Coleo de variveis de mesmo tipo.
Estrutura de dados homognea.
Porque homognea?
Agrupam vrias informaes
Dentro de uma mesma varivel e
Com o mesmo tipo de dado
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetores
Ex: armazernar as mdias de 5 alunos
posio Medias

0 4.5
1 6.5 Mesmo tipo
2 8.0 de dado
tipo REAL
3 3.5
4 6.0

E onde ficam armazenados os dados?


R: De forma agrupada na Memria Principal !
58
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetores
Um vetor representado por:
Identificador - nome do vetor
Tamanho (dimenso) - quantidade de elementos
(dados)
Tipo - tipo de dado armazenado (inteiro, real, cadeia)
Sintaxe:
tipo identificador [tamanho]

inteiro idade[50]
59
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Manipulao de Vetores
Cada elemento de um vetor tratado como se fosse uma
varivel simples.
Para referncia a um elemento do vetor utiliza-se o nome do
vetor e o seu ndice entre colchetes.
O ndice indica a posio do dado (contedo) no vetor

nota
contedo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
ndice 0 1 2 3 4 5 6 7 8 9

60
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Manipulao de Vetores
Vetor media
4.5 6.5 8.0 3.5 6.0
0 1 2 3 4

media [0] = 4.5


media [1] = 6.5
Atribuio de
media[2] = 8.0 valores
media[3] = 3.5 em um vetor
media [4] = 6.0

ndice dados 61
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

OUTROS TIPOS DE DADOS

Vetor de Caracter
caracter conceitos [50]
// declara um vetor para armazenar o conceito de 50 alunos

Vetor de Cadeia (string)


cadeia nomes [100]
// declara um vetor para armazenar o nome de 100 pessoas

62
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Alerta !!!
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Vetores: Erros Comuns


inteiro A [5]
inteiro B [5]

Jamais fazer: B = A, se a inteno copiar os elementos de A para B.


A atribuio de dois vetores tem que ser feito elemento por elemento.
Ex: B[0] = A[0]
B[1] = A[1] e assim por diante

Jamais fazer leia (A), se a inteno ler os elementos do vetor A


Tem que ler elemento por elemento.
Ex: leia(A[0]) ou leia(A[ind])
Jamais fazer escreva (A), se a inteno mostrar os elementos do
vetor A. Tem que ler elemento por elemento.
Ex: escreva(A[0]) ou escreva(A[ind])
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

RESUMINDO...
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Coisas para no esquecer:


Vetor permite armazenar um CONJUNTO de valores
SIMULTANEAMENTE

Sintaxe para declarao de vetor:


tipo identificador [tamanho]

Sintaxe para acesso ao vetor:


identificador [posio]
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

AGORA
PRATICAR!!!
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

EXERCCIOS
Bacharelado em Cincia e Tecnologia
Processamento da Informao

Vetores Unidimensionais

Problema
Escreva um programa para preencher um vetor
de inteiro com 20 termos de uma PA cujo termo
inicial e a razo dever ser informada pelo
usurio. Somente aps o preenchimento
completo do vetor, o mesmo dever ser exibido
na tela

SADA: Quais os resultados que o algoritmo dever fornecer ?


ENTRADA: Quais os insumos necessrios para se obter a sada?
PROCESSAMENTO: Como transformar os insumos na sada?