Buscar

Variáveis Indexadas (Vetores)

Prévia do material em texto

C5_Algoritmos.indd 14 27/04/2018 14:12:37
Variáveis indexadas (vetores)
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Declarar estruturas de dados de uma dimensão (vetores) em pseu-
docódigo e linguagem MATLAB.
  Construir algoritmos com estruturas de dados homogêneas (vetores) 
em pseudocódigo e linguagem MATLAB.
  Aplicar as estruturas de dados homogêneas (vetores) na solução de 
problemas.
Introdução
Vetores, arranjos simples ou estruturas de dados homogêneas de uma 
dimensão representam coleções lineares de elementos armazenados em 
sequência que são identificados por índices. A linguagem MATLAB fornece 
recursos poderosos para trabalhar com vetores, que vão desde simples 
operações até funções complexas, que realizam cálculos avançados com 
o objetivo de encontrar soluções para diversas questões do mundo real 
que podem ser representadas por expressões matemáticas.
Neste capítulo, você vai estudar sobre a declaração de estruturas de 
dados homogêneas de uma dimensão e a construção de algoritmos em 
pseudocódigo e em MATLAB na solução de problemas.
Estruturas de dados de uma dimensão (vetores) 
em pseudocódigo e linguagem MATLAB
Uma estrutura de dados de uma dimensão, também conhecida como vetor, 
array ou arranjo simples (unidimensional), é uma lista ou relação de elementos 
dispostos em sequência. Essa estrutura, em comparação com uma tabela, é 
representada por uma linha ou uma coluna (PALM, 2013).
Um vetor é uma estrutura de elementos homogêneos, isto é, seus elementos 
são todos do mesmo tipo de dados, como uma relação de números inteiros, de 
C5_Algoritmos.indd 1 27/04/2018 14:12:33
números reais ou de strings. Isso significa que não é possível inserir elementos 
de tipos diferentes em um vetor, mesmo que a linguagem de programação não 
exija que a declaração do tipo de dados seja explícita (GILAT, 2012).
Algumas linguagens de programação exigem que as variáveis sejam declaradas com 
um tipo de dados específico, como Pascal, C, Java e outras. No entanto, há linguagens 
que realizam a conversão implícita de dados e, assim, não requerem que o tipo seja 
informado na declaração, como MATLAB, Visual Basic, PHP, etc. Nesse caso, um vetor que 
contém números inteiros e reais terá seus elementos convertidos para números reais.
Vetores são organizados por índices ou subscritos, que representam cada 
uma das posições da estrutura. Na linguagem MATLAB, o índice de um vetor 
inicia a partir da primeira posição, seguindo até o número total de elementos 
da estrutura, conforme ilustrado na Figura 1 (GILAT, 2012).
Figura 1. Estrutura de um vetor.
Os elementos de um vetor são armazenados em posições contíguas da 
memória do dispositivo ou da máquina virtual que o armazenam, por isso 
os elementos podem ser acessados diretamente por meio de seus índices 
(DEITEL; DEITEL, 2011).
A linguagem MATLAB foi desenvolvida especificamente para tratar com 
vetores de quaisquer dimensões. Dessa forma, qualquer relação de elementos 
pode ser tratada como um vetor, por exemplo, dados estatísticos de determinada 
população (GILAT, 2012). 
Variáveis indexadas (vetores)2
C5_Algoritmos.indd 2 27/04/2018 14:12:33
A declaração de um vetor em pseudocódigo pode ser realizada pela indica-
ção de um nome para a variável que representa o arranjo seguida da atribuição 
dos valores da lista, ou seja, dos valores dos elementos de cada posição:
Esse exemplo cria um vetor de cinco posições, cujos elementos foram 
inseridos automaticamente na sua declaração. É possível, ainda, declarar um 
vetor sem indicar os elementos na sua criação, podendo inseri-los posterior-
mente por meio de uma estrutura de repetição, conforme será apresentado 
adiante neste capítulo.
No MATLAB, a declaração é muito semelhante, bastando substituir o 
caractere-chave por colchete, além de substituir, opcionalmente, as vírgulas 
que separam os elementos pelo caractere espaço. Esse tipo de declaração se 
chama vetor de linha (PALM, 2013):
Um vetor de coluna no MATLAB é declarado quando seus elementos são 
separados pelo caractere ponto e vírgula, pela indicação de uma aspa simples 
no final ou por quebras de linha (operador de transposição). Nesse tipo de 
vetor, os elementos são exibidos um abaixo do outro (PALM, 2013):
É possível, ainda, criar um vetor com elementos espaçados de um fator 
constante no MATLAB. Para isso, deve-se indicar o valor do primeiro ele-
mento, o incremento e o valor do último elemento. Nesse tipo de declaração, os 
caracteres colchetes ou parênteses são opcionais (CHAPRA, 2013). Observe:
3Variáveis indexadas (vetores)
C5_Algoritmos.indd 3 27/04/2018 14:12:33
Se o incremento, que representa o parâmetro do meio, não for informado, 
o interpretador do MATLAB usará o valor 1, incrementando a sequência a 
cada número inteiro. No entanto, se o incremento superar o último valor, o 
vetor receberá até o último valor que não exceder o valor final (CHAPRA, 
2013). Observe:
Outra opção para declarar um vetor com atribuição de valores se dá por 
meio da função . Essa função cria um vetor com espaçamento linear, 
que identifica automaticamente os elementos intermediários do vetor por meio 
de um parâmetro que especifica a quantidade de elementos (GILAT, 2012).
Nesse exemplo, a função é usada para atribuir quatro valores, 
entre 1 e 10, para o vetor:
Algoritmos com estruturas de dados 
homogêneas (vetores) em pseudocódigo e 
linguagem MATLAB
Uma vez defi nidas as declarações das estruturas de dados homogêneas uni-
dimensionais, isto é, dos vetores, conforme visto anteriormente, é possível 
executar diversas ações com esses dados, como pesquisar, editar, concatenar 
e acrescentar elementos, entre outras.
Acessar elementos
Sabendo que o índice de um vetor inicia na posição 1, é possível acessar 
diretamente qualquer elemento do vetor a partir de seu índice, informando 
apenas a posição ou um intervalo, de acordo com os seguintes exemplos:
Variáveis indexadas (vetores)4
C5_Algoritmos.indd 4 27/04/2018 14:12:34
Editar elementos
A edição de um vetor também ocorre pela seleção do índice de seus ele-
mentos. Essa edição pode modifi car um único elemento ou uma faixa que 
indica a posição inicial e a posição fi nal. Se houver a atribuição para uma 
posição inexistente, essa posição será criada e seus elementos intermediários 
receberão 0 (CHAPRA, 2013). 
Além disso, é possível excluir elementos de um vetor pela atribuição de 
um valor nulo para determinada posição ou para uma faixa de posições. Nesse 
caso, o vetor reduz o seu tamanho para a quantidade de itens restantes.
Concatenar vetores
A concatenação de dois vetores se dá pela união de seus elementos. O resultado 
pode ser atribuído a outra variável ou a qualquer uma das variáveis que estão 
sendo concatenadas:
Operações com vetores
É possível realizar diversas operações com vetores, como soma, subtração, 
divisão, multiplicação, exponenciação e outras. As operações adição, subtração 
e multiplicação por um escalar podem ser realizadas de forma direta, usando 
os operadores conhecidos da computação: +, - e * (GILAT, 2012).
5Variáveis indexadas (vetores)
C5_Algoritmos.indd 5 27/04/2018 14:12:34
No entanto, as operações multiplicação, divisão e potenciação exigem 
uma representação um pouco diferente. Para isso, utiliza-se um ponto antes 
do operador na expressão, em uma representação conhecida no MATLAB 
por operações elemento por elemento (GILAT, 2012):
Para realizar operações entre vetores, é necessário que eles tenham a mesma dimensão, 
isto é, não é possível, por exemplo, somar dois vetores de dimensões diferentes, sendo 
um com cinco elementos e o outro com quatro. Caso haja uma tentativa de realizar 
uma operação com vetores de dimensões diferentes, o seguinte erro será apresentado 
pelo MATLAB: matrix dimensions must agree.
Percorrer vetores
É possível percorrer um vetor para realizar comparações ou operações com 
seus elementos. A navegação em um vetor sedá pelo índice dos elementos, 
que apontam para o conteúdo de cada posição, entre um e o número total de 
itens do arranjo (PALM, 2013).
O pseudocódigo de uma estrutura de repetição em um vetor é apresentado 
a seguir. Nessa estrutura, uma variável chamada índice indica a posição de 
cada elemento pela navegação na estrutura, permitindo, assim, imprimir o 
conteúdo de cada elemento:
Variáveis indexadas (vetores)6
C5_Algoritmos.indd 6 27/04/2018 14:12:34
Para percorrer um vetor de elementos com o MATLAB, é preciso usar uma 
das estruturas de repetição, como ou . O seguinte exemplo navega 
em um vetor de cinco posições e multiplica por dois apenas os elementos pares 
que compõem a estrutura. Observe:
Estruturas de dados homogêneas (vetores) na 
solução de problemas
A linguagem MATLAB é uma poderosa ferramenta para a solução de pro-
blemas matemáticos. Inúmeras funções nativas estão disponíveis para o uso 
em vetores, que facilitam e agilizam cálculos e operações nessas estruturas, 
conforme será apresentado a seguir.
Contagem de elementos
A instrução pode ser utilizada para obter a dimensão de um vetor, 
cujo resultado apresenta dois números: a quantidade de linhas e de colunas 
(CHAPRA, 2013). Outra forma de encontrar o número de elementos de um 
vetor se dá pela função , conforme os seguintes exemplos:
7Variáveis indexadas (vetores)
C5_Algoritmos.indd 7 27/04/2018 14:12:35
Seleção de elementos
Não raras vezes, é necessário encontrar e/ou selecionar elementos de um vetor 
de acordo com determinados critérios, como menor e maior, média, mediana 
e soma, entre outros (CHAPRA, 2013).
Seleção de índices e valores
Utilize a função para selecionar os índices dos elementos que satisfaçam 
a determinados critérios de pesquisa (GILAT, 2012). No exemplo a seguir, 
os índices são identifi cados e os valores dos elementos têm valor maior que 
o número 4.
Funções nativas
Diversas funções matemáticas estão disponíveis para o uso com vetores 
no MATLAB. Essas funções servem de apoio para a execução de cálculos 
avançados, que vão desde a soma e o produto de um vetor até funções mais 
complexas, como produto escalar, produto vetorial, seno, cosseno e tangente, 
entre outros (GILAT, 2012).
Variáveis indexadas (vetores)8
C5_Algoritmos.indd 8 27/04/2018 14:12:35
Geração de números aleatórios
Números aleatórios são importantes para a geração de dados que servem 
de base para diversas atividades da Engenharia, por exemplo, simulações. 
O MATLAB tem três formas diferentes de gerar números aleatórios para 
vetores, que produzem números diferentes a cada execução, conforme segue 
(GILAT, 2012).
Instrução rand
Essa instrução gera números aleatórios entre 0 e 1 uniformemente distribuídos. 
Se apenas um parâmetro for passado, uma matriz quadrada será produzida 
com números aleatórios. No entanto, para produzir um vetor com números 
aleatórios por meio da função , utilize um parâmetro para forçar a 
geração de apenas uma linha ou coluna.
9Variáveis indexadas (vetores)
C5_Algoritmos.indd 9 27/04/2018 14:12:35
Instrução randi
Essa instrução gera números aleatórios inteiros uniformemente distribuídos, 
entre 1 e o número passado como parâmetro. Havendo necessidade de gerar 
números por determinada faixa, utilize um parâmetro adicional que recebe 
um vetor e a dimensão da matriz, indicando a quantidade de linhas e colunas, 
conforme os seguintes exemplos.
Instrução randn
Essa instrução gera uma distribuição normalizada de números defi nidos pela 
média 0 e desvio padrão 1. Com isso, pode gerar variáveis escalares, vetoriais 
ou matriciais, cujos parâmetros defi nem as linhas e as colunas da matriz.
Você pode utilizar lookfor para obter detalhes das instruções e palavras reservadas 
do MATLAB. Exemplo: lookfor randi.
randi – pseudorandom integers from a uniform discrete distribution.
rng – control the random number generator used by RAND, RANDI, and RANDN.
randi – pseudorandom integers from a uniform discrete distribution.
randi – CODISTRIBUTED.RANDI Create a codistributed array of random integers.
randiLike – randiLike codistributed array.
randi – codistributed array of normally distributed pseudorandom numbers using 
codistributor.
randi – codistributed array of normally distributed pseudorandom numbers using 
codistributor.
randi – DISTRIBUTED.RANDI Create a distributed array of random integers.
randi – build a gpuArray of uniformly distributed pseudo-random integers.
randi – GPUARRAY.RANDI Create a gpuArray of random integers.
Variáveis indexadas (vetores)10
C5_Algoritmos.indd 10 27/04/2018 14:12:36
Entrada e saída de dados em vetores
Embora muitos problemas possam ser resolvidos pela defi nição de dados fi xos 
em variáveis, em outros casos pode ser necessário promover a interação do 
usuário com a aplicação, por meio da entrada e da saída de dados. 
Entrada de dados
No MATLAB, a entrada de dados em vetores pode ser realizada pelo teclado 
ou pela leitura de arquivos armazenados em alguma pasta no disco rígido ou 
em memória auxiliar, como um pen drive, por exemplo. Para isso, a instrução 
 pode ser utilizada para enviar uma mensagem ao usuário e, ao mesmo 
tempo, capturar a resposta inserida na aplicação (GILAT, 2012). 
Nesse exemplo, declaramos um vetor vazio e implementamos um laço 
de repetição para realizar a leitura de três posições. A instrução 
converte um número para string para formar a mensagem exibida ao usuário 
e a função captura a leitura para dentro do vetor. Observe:
Existem diversas formas de ler arquivos no MATLAB, porém, foge ao 
escopo deste capítulo explicar cada uma delas. Nesse sentido, trataremos a 
forma mais simplificada, que simplesmente carrega para um vetor os dados 
de um arquivo que estejam em formato compatível.
Essa entrada de dados facilita a execução de programas que têm dados já 
armazenados, isto é, que foram capturados por outras fontes, mas que podem 
ser trabalhados no MATLAB. Para carregar um arquivo, utilize a instrução 
 (GILAT, 2012).
Nesse exemplo, o MATLAB cria uma variável com o nome do arquivo 
e atribui o conteúdo do arquivo a ela. Na sequência, um laço de repetição 
percorre o vetor para exibir cada um dos elementos. Observe: o conteúdo do 
arquivo deve ser compatível com um vetor (Figura 2).
11Variáveis indexadas (vetores)
C5_Algoritmos.indd 11 27/04/2018 14:12:36
Figura 2. Arquivo que contém os dados de um vetor.
Saída de dados
No MATLAB, a saída pode ser realizada pela simples execução de uma 
variável – modo como foi apresentado até agora –, ou pelas instruções disp e 
fprintf. Para ambos os modos, é possível apresentar os dados de um vetor de 
forma única ou pela navegação em seus elementos por meio de uma estrutura 
de repetição (PALM, 2013).
A instrução é muito simples e exibe o conteúdo de uma variável, 
sem qualquer parâmetro adicional:
Já a função é mais elaborada e se comporta de forma seme-
lhante ao comando da linguagem C. Assim, é possível controlar a 
apresentação da saída dos dados, como definir o formato dos números, inserir 
quebras de linhas, etc.
Variáveis indexadas (vetores)12
C5_Algoritmos.indd 12 27/04/2018 14:12:36
Acesse o link ou o código a seguir e descubra outras infor-
mações sobre entrada e saída de dados no MATLAB.
https://goo.gl/h3kzMD 
CHAPRA, S. C. Métodos numéricos aplicados com MATLAB® para engenheiros e cientistas. 
3. ed. Porto Alegre: AMGH, 2013.
DEITEL, P. J.; DEITEL, H. M. Como Programar em C. 6. ed. São Paulo: Pearson, 2011.
GILAT, A. MATLAB com aplicações em engenharia. 4. ed. Porto Alegre: Bookman, 2012.
PALM III, W. J. Introdução ao MATLAB para engenheiros. 3. ed. Porto Alegre: AMGH, 2013.
13Variáveis indexadas (vetores)
C5_Algoritmos.indd 13 27/04/2018 14:12:37
https://goo.gl/h3kzMD
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.

Continue navegando